mirror of
https://forge.chapril.org/tykayn/caisse-bliss
synced 2025-06-20 01:44:42 +02:00
up to sf 7
This commit is contained in:
parent
a39b6239b0
commit
501795a8fa
16586 changed files with 19384005 additions and 0 deletions
156
v1/public/bundles/apiplatform/init-swagger-ui.js
Normal file
156
v1/public/bundles/apiplatform/init-swagger-ui.js
Normal file
|
@ -0,0 +1,156 @@
|
|||
'use strict';
|
||||
|
||||
window.onload = function() {
|
||||
manageWebbyDisplay();
|
||||
|
||||
new MutationObserver(function (mutations, self) {
|
||||
const op = document.getElementById(`operations-${data.shortName}-${data.operationId}`);
|
||||
if (!op) return;
|
||||
|
||||
self.disconnect();
|
||||
|
||||
op.querySelector('.opblock-summary').click();
|
||||
const tryOutObserver = new MutationObserver(function (mutations, self) {
|
||||
const tryOut = op.querySelector('.try-out__btn');
|
||||
if (!tryOut) return;
|
||||
|
||||
self.disconnect();
|
||||
|
||||
tryOut.click();
|
||||
if (data.id) {
|
||||
const inputId = op.querySelector('.parameters input[placeholder="id"]');
|
||||
inputId.value = data.id;
|
||||
reactTriggerChange(inputId);
|
||||
}
|
||||
|
||||
for (const input of op.querySelectorAll('.parameters input')) {
|
||||
if (input.placeholder in data.queryParameters) {
|
||||
input.value = data.queryParameters[input.placeholder];
|
||||
reactTriggerChange(input);
|
||||
}
|
||||
}
|
||||
|
||||
// Wait input values to be populated before executing the query
|
||||
setTimeout(function(){
|
||||
op.querySelector('.execute').click();
|
||||
op.scrollIntoView();
|
||||
}, 500);
|
||||
});
|
||||
|
||||
tryOutObserver.observe(document, {childList: true, subtree: true});
|
||||
}).observe(document, {childList: true, subtree: true});
|
||||
|
||||
const data = JSON.parse(document.getElementById('swagger-data').innerText);
|
||||
const ui = SwaggerUIBundle(Object.assign({
|
||||
spec: data.spec,
|
||||
dom_id: '#swagger-ui',
|
||||
validatorUrl: null,
|
||||
oauth2RedirectUrl: data.oauth.redirectUrl,
|
||||
presets: [
|
||||
SwaggerUIBundle.presets.apis,
|
||||
SwaggerUIStandalonePreset,
|
||||
],
|
||||
plugins: [
|
||||
SwaggerUIBundle.plugins.DownloadUrl,
|
||||
],
|
||||
layout: 'StandaloneLayout',
|
||||
}, data.extraConfiguration));
|
||||
|
||||
if (data.oauth.enabled) {
|
||||
ui.initOAuth({
|
||||
clientId: data.oauth.clientId,
|
||||
clientSecret: data.oauth.clientSecret,
|
||||
realm: data.oauth.type,
|
||||
appName: data.spec.info.title,
|
||||
scopeSeparator: ' ',
|
||||
additionalQueryStringParams: {},
|
||||
usePkceWithAuthorizationCodeGrant: data.oauth.pkce,
|
||||
});
|
||||
}
|
||||
|
||||
// Workaround for https://github.com/swagger-api/swagger-ui/issues/3028
|
||||
// Adapted from https://github.com/vitalyq/react-trigger-change/blob/master/lib/change.js
|
||||
// Copyright (c) 2017 Vitaly Kuznetsov
|
||||
// MIT License
|
||||
function reactTriggerChange(node) {
|
||||
// Do not try to delete non-configurable properties.
|
||||
// Value and checked properties on DOM elements are non-configurable in PhantomJS.
|
||||
function deletePropertySafe(elem, prop) {
|
||||
const desc = Object.getOwnPropertyDescriptor(elem, prop);
|
||||
if (desc && desc.configurable) {
|
||||
delete elem[prop];
|
||||
}
|
||||
}
|
||||
|
||||
// React 16
|
||||
// Cache artificial value property descriptor.
|
||||
// Property doesn't exist in React <16, descriptor is undefined.
|
||||
const descriptor = Object.getOwnPropertyDescriptor(node, 'value');
|
||||
|
||||
// React 0.14: IE9
|
||||
// React 15: IE9-IE11
|
||||
// React 16: IE9
|
||||
// Dispatch focus.
|
||||
const focusEvent = document.createEvent('UIEvents');
|
||||
focusEvent.initEvent('focus', false, false);
|
||||
node.dispatchEvent(focusEvent);
|
||||
|
||||
// React 0.14: IE9
|
||||
// React 15: IE9-IE11
|
||||
// React 16
|
||||
// In IE9-10 imperative change of node value triggers propertychange event.
|
||||
// Update inputValueTracking cached value.
|
||||
// Remove artificial value property.
|
||||
// Restore initial value to trigger event with it.
|
||||
const initialValue = node.value;
|
||||
node.value = initialValue + '#';
|
||||
deletePropertySafe(node, 'value');
|
||||
node.value = initialValue;
|
||||
|
||||
// React 15: IE11
|
||||
// For unknown reason React 15 added listener for propertychange with addEventListener.
|
||||
// This doesn't work, propertychange events are deprecated in IE11,
|
||||
// but allows us to dispatch fake propertychange which is handled by IE11.
|
||||
const propertychangeEvent = document.createEvent('HTMLEvents');
|
||||
propertychangeEvent.initEvent('propertychange', false, false);
|
||||
propertychangeEvent.propertyName = 'value';
|
||||
node.dispatchEvent(propertychangeEvent);
|
||||
|
||||
// React 0.14: IE10-IE11, non-IE
|
||||
// React 15: non-IE
|
||||
// React 16: IE10-IE11, non-IE
|
||||
const inputEvent = document.createEvent('HTMLEvents');
|
||||
inputEvent.initEvent('input', true, false);
|
||||
node.dispatchEvent(inputEvent);
|
||||
|
||||
// React 16
|
||||
// Restore artificial value property descriptor.
|
||||
if (descriptor) {
|
||||
Object.defineProperty(node, 'value', descriptor);
|
||||
}
|
||||
}
|
||||
|
||||
function manageWebbyDisplay() {
|
||||
const webby = document.getElementsByClassName('webby')[0];
|
||||
if (!webby) return;
|
||||
|
||||
const web = document.getElementsByClassName('web')[0];
|
||||
webby.classList.add('calm');
|
||||
web.classList.add('calm');
|
||||
webby.addEventListener('click', () => {
|
||||
if (webby.classList.contains('frighten')) {
|
||||
return;
|
||||
}
|
||||
webby.classList.replace('calm', 'frighten');
|
||||
web.classList.replace('calm', 'frighten');
|
||||
setTimeout(() => {
|
||||
webby.classList.replace('frighten', 'calm');
|
||||
web.classList.replace('frighten', 'calm');
|
||||
}, 10000);
|
||||
});
|
||||
}
|
||||
|
||||
// Make SwaggerUIBundle and data available for some other scripts
|
||||
window.swaggerUI = ui;
|
||||
window.swaggerData = data;
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue