mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-10-08 14:51:14 +00:00
* dev tools extension project * code editor integration * latest editor, offline setup * override extension config (session only) * schema support * wire external plugins with experimental flag * update package scripts * sidebar extensions scaffold * propagate extension tabs to info drawer * separate tab components for info drawer * extensibility for info drawer * support tab icons
133 lines
4.3 KiB
TypeScript
133 lines
4.3 KiB
TypeScript
/*!
|
|
* @license
|
|
* Alfresco Example Content Application
|
|
*
|
|
* Copyright (C) 2005 - 2018 Alfresco Software Limited
|
|
*
|
|
* This file is part of the Alfresco Example Content Application.
|
|
* If the software was purchased under a paid Alfresco license, the terms of
|
|
* the paid license agreement will prevail. Otherwise, the software is
|
|
* provided under the following open source license terms:
|
|
*
|
|
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
/**
|
|
* This file includes polyfills needed by Angular and is loaded before the app.
|
|
* You can add your own extra polyfills to this file.
|
|
*
|
|
* This file is divided into 2 sections:
|
|
* 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
|
|
* 2. Application imports. Files imported after ZoneJS that should be loaded before your main
|
|
* file.
|
|
*
|
|
* The current setup is for so-called "evergreen" browsers; the last versions of browsers that
|
|
* automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
|
|
* Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
|
|
*
|
|
* Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html
|
|
*/
|
|
|
|
/***************************************************************************************************
|
|
* BROWSER POLYFILLS
|
|
*/
|
|
|
|
/** IE9, IE10 and IE11 requires all of the following polyfills. **/
|
|
// import 'core-js/es6/symbol';
|
|
// import 'core-js/es6/object';
|
|
// import 'core-js/es6/function';
|
|
// import 'core-js/es6/parse-int';
|
|
// import 'core-js/es6/parse-float';
|
|
// import 'core-js/es6/number';
|
|
// import 'core-js/es6/math';
|
|
// import 'core-js/es6/string';
|
|
// import 'core-js/es6/date';
|
|
// import 'core-js/es6/array';
|
|
// import 'core-js/es6/regexp';
|
|
// import 'core-js/es6/map';
|
|
// import 'core-js/es6/weak-map';
|
|
// import 'core-js/es6/set';
|
|
|
|
/** IE10 and IE11 requires the following for NgClass support on SVG elements */
|
|
// import 'classlist.js'; // Run `npm install --save classlist.js`.
|
|
|
|
/** Evergreen browsers require these. **/
|
|
import 'core-js/es6/reflect';
|
|
import 'core-js/es7/reflect';
|
|
|
|
|
|
/**
|
|
* Required to support Web Animations `@angular/platform-browser/animations`.
|
|
* Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation
|
|
**/
|
|
import 'web-animations-js'; // Run `npm install --save web-animations-js`.
|
|
|
|
|
|
|
|
/***************************************************************************************************
|
|
* Zone JS is required by Angular itself.
|
|
*/
|
|
import 'zone.js/dist/zone'; // Included with Angular CLI.
|
|
|
|
|
|
|
|
/***************************************************************************************************
|
|
* APPLICATION IMPORTS
|
|
*/
|
|
|
|
/**
|
|
* Date, currency, decimal and percent pipes.
|
|
* Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10
|
|
*/
|
|
// import 'intl'; // Run `npm install --save intl`.
|
|
/**
|
|
* Need to import at least one locale-data with intl.
|
|
*/
|
|
// import 'intl/locale-data/jsonp/en';
|
|
|
|
// workaround for https://github.com/Microsoft/monaco-editor/issues/790
|
|
|
|
Promise.all = function(values: any): Promise<any> {
|
|
let resolve: (v: any) => void;
|
|
let reject: (v: any) => void;
|
|
const promise = new this((res, rej) => {
|
|
resolve = res;
|
|
reject = rej;
|
|
});
|
|
let count = 0;
|
|
let index = 0;
|
|
const resolvedValues: any[] = [];
|
|
for (let value of values) {
|
|
if (!(value && value.then)) {
|
|
value = this.resolve(value);
|
|
}
|
|
value.then(
|
|
(idx => (val: any) => {
|
|
resolvedValues[idx] = val;
|
|
count--;
|
|
if (!count) {
|
|
resolve(resolvedValues);
|
|
}
|
|
})(index),
|
|
reject
|
|
);
|
|
count++;
|
|
index++;
|
|
}
|
|
if (!count) {
|
|
resolve(resolvedValues);
|
|
}
|
|
return promise;
|
|
};
|