@maggioli-design-system/magma-angular 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # MagmaAngular
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.2.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project magma-angular` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project magma-angular`.
8
+ > Note: Don't forget to add `--project magma-angular` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build magma-angular` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build magma-angular`, go to the dist folder `cd dist/magma-angular` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test magma-angular` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
@@ -0,0 +1,31 @@
1
+ import { APP_INITIALIZER, NgModule } from '@angular/core';
2
+ import { defineCustomElements } from '@maggioli-design-system/magma/loader';
3
+ import { DIRECTIVES } from '../stencil-generated';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../stencil-generated/components";
6
+ export class ComponentLibraryModule {
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ComponentLibraryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: ComponentLibraryModule, declarations: [i1.MdsAccordion, i1.MdsAccordionItem, i1.MdsAccordionTimer, i1.MdsAccordionTimerItem, i1.MdsAuthor, i1.MdsAvatar, i1.MdsBadge, i1.MdsBanner, i1.MdsBenchmarkBar, i1.MdsBibliography, i1.MdsBreadcrumb, i1.MdsBreadcrumbItem, i1.MdsButton, i1.MdsCard, i1.MdsCardContent, i1.MdsCardFooter, i1.MdsCardHeader, i1.MdsCardMedia, i1.MdsChip, i1.MdsDetails, i1.MdsDropdown, i1.MdsEntity, i1.MdsFile, i1.MdsFilePreview, i1.MdsFilter, i1.MdsFilterItem, i1.MdsHeader, i1.MdsHeaderBar, i1.MdsHelp, i1.MdsHorizontalScroll, i1.MdsHr, i1.MdsIcon, i1.MdsImg, i1.MdsInput, i1.MdsInputField, i1.MdsInputRange, i1.MdsInputSelect, i1.MdsInputSwitch, i1.MdsInputTip, i1.MdsInputTipItem, i1.MdsInputUpload, i1.MdsKpi, i1.MdsKpiItem, i1.MdsLabel, i1.MdsList, i1.MdsListItem, i1.MdsModal, i1.MdsNote, i1.MdsNotification, i1.MdsPaginator, i1.MdsPaginatorItem, i1.MdsPref, i1.MdsPrefAnimation, i1.MdsPrefConsumption, i1.MdsPrefContrast, i1.MdsPrefLanguage, i1.MdsPrefLanguageItem, i1.MdsPrefLanguageNav, i1.MdsPrefTheme, i1.MdsPriceTable, i1.MdsPriceTableFeatures, i1.MdsPriceTableFeaturesCell, i1.MdsPriceTableFeaturesRow, i1.MdsPriceTableHeader, i1.MdsPriceTableList, i1.MdsPriceTableListItem, i1.MdsProgress, i1.MdsPushNotification, i1.MdsPushNotifications, i1.MdsQuote, i1.MdsSeparator, i1.MdsSpinner, i1.MdsStepperBar, i1.MdsStepperBarItem, i1.MdsTab, i1.MdsTabBar, i1.MdsTabBarItem, i1.MdsTabItem, i1.MdsTable, i1.MdsTableBody, i1.MdsTableCell, i1.MdsTableFooter, i1.MdsTableHeader, i1.MdsTableHeaderCell, i1.MdsTableRow, i1.MdsText, i1.MdsToast, i1.MdsTooltip, i1.MdsUrlView, i1.MdsUsage, i1.MdsVideoWall, i1.MdsZero], exports: [i1.MdsAccordion, i1.MdsAccordionItem, i1.MdsAccordionTimer, i1.MdsAccordionTimerItem, i1.MdsAuthor, i1.MdsAvatar, i1.MdsBadge, i1.MdsBanner, i1.MdsBenchmarkBar, i1.MdsBibliography, i1.MdsBreadcrumb, i1.MdsBreadcrumbItem, i1.MdsButton, i1.MdsCard, i1.MdsCardContent, i1.MdsCardFooter, i1.MdsCardHeader, i1.MdsCardMedia, i1.MdsChip, i1.MdsDetails, i1.MdsDropdown, i1.MdsEntity, i1.MdsFile, i1.MdsFilePreview, i1.MdsFilter, i1.MdsFilterItem, i1.MdsHeader, i1.MdsHeaderBar, i1.MdsHelp, i1.MdsHorizontalScroll, i1.MdsHr, i1.MdsIcon, i1.MdsImg, i1.MdsInput, i1.MdsInputField, i1.MdsInputRange, i1.MdsInputSelect, i1.MdsInputSwitch, i1.MdsInputTip, i1.MdsInputTipItem, i1.MdsInputUpload, i1.MdsKpi, i1.MdsKpiItem, i1.MdsLabel, i1.MdsList, i1.MdsListItem, i1.MdsModal, i1.MdsNote, i1.MdsNotification, i1.MdsPaginator, i1.MdsPaginatorItem, i1.MdsPref, i1.MdsPrefAnimation, i1.MdsPrefConsumption, i1.MdsPrefContrast, i1.MdsPrefLanguage, i1.MdsPrefLanguageItem, i1.MdsPrefLanguageNav, i1.MdsPrefTheme, i1.MdsPriceTable, i1.MdsPriceTableFeatures, i1.MdsPriceTableFeaturesCell, i1.MdsPriceTableFeaturesRow, i1.MdsPriceTableHeader, i1.MdsPriceTableList, i1.MdsPriceTableListItem, i1.MdsProgress, i1.MdsPushNotification, i1.MdsPushNotifications, i1.MdsQuote, i1.MdsSeparator, i1.MdsSpinner, i1.MdsStepperBar, i1.MdsStepperBarItem, i1.MdsTab, i1.MdsTabBar, i1.MdsTabBarItem, i1.MdsTabItem, i1.MdsTable, i1.MdsTableBody, i1.MdsTableCell, i1.MdsTableFooter, i1.MdsTableHeader, i1.MdsTableHeaderCell, i1.MdsTableRow, i1.MdsText, i1.MdsToast, i1.MdsTooltip, i1.MdsUrlView, i1.MdsUsage, i1.MdsVideoWall, i1.MdsZero] });
9
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ComponentLibraryModule, providers: [
10
+ {
11
+ provide: APP_INITIALIZER,
12
+ useFactory: () => defineCustomElements,
13
+ multi: true
14
+ },
15
+ ] });
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ComponentLibraryModule, decorators: [{
18
+ type: NgModule,
19
+ args: [{
20
+ declarations: [...DIRECTIVES],
21
+ exports: [...DIRECTIVES],
22
+ providers: [
23
+ {
24
+ provide: APP_INITIALIZER,
25
+ useFactory: () => defineCustomElements,
26
+ multi: true
27
+ },
28
+ ]
29
+ }]
30
+ }] });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWxpYnJhcnkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbWFnbWEtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudC1saWJyYXJ5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQWFsRCxNQUFNLE9BQU8sc0JBQXNCO3dHQUF0QixzQkFBc0I7eUdBQXRCLHNCQUFzQjt5R0FBdEIsc0JBQXNCLGFBUnRCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxvQkFBb0I7Z0JBQ3RDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRjs7NEZBRVUsc0JBQXNCO2tCQVhsQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO29CQUM3QixPQUFPLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQztvQkFDeEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxlQUFlOzRCQUN4QixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsb0JBQW9COzRCQUN0QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlZmluZUN1c3RvbUVsZW1lbnRzIH0gZnJvbSAnQG1hZ2dpb2xpLWRlc2lnbi1zeXN0ZW0vbWFnbWEvbG9hZGVyJztcbmltcG9ydCB7IERJUkVDVElWRVMgfSBmcm9tICcuLi9zdGVuY2lsLWdlbmVyYXRlZCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogWy4uLkRJUkVDVElWRVNdLFxuICBleHBvcnRzOiBbLi4uRElSRUNUSVZFU10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IGRlZmluZUN1c3RvbUVsZW1lbnRzLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENvbXBvbmVudExpYnJhcnlNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnZ2lvbGktZGVzaWduLXN5c3RlbS1tYWdtYS1hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbWFnbWEtYW5ndWxhci9zcmMvbWFnZ2lvbGktZGVzaWduLXN5c3RlbS1tYWdtYS1hbmd1bGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,7 @@
1
+ /*
2
+ * Public API Surface of component-library
3
+ */
4
+ export * from './lib/component-library.module';
5
+ export { DIRECTIVES } from './stencil-generated';
6
+ export * from './stencil-generated/components';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL21hZ21hLWFuZ3VsYXIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBjb21wb25lbnQtbGlicmFyeVxuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnQtbGlicmFyeS5tb2R1bGUnO1xuZXhwb3J0IHsgRElSRUNUSVZFUyB9IGZyb20gJy4vc3RlbmNpbC1nZW5lcmF0ZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGVuY2lsLWdlbmVyYXRlZC9jb21wb25lbnRzJztcbiJdfQ==
@@ -0,0 +1,59 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ import { fromEvent } from 'rxjs';
4
+ export const proxyInputs = (Cmp, inputs) => {
5
+ const Prototype = Cmp.prototype;
6
+ inputs.forEach((item) => {
7
+ Object.defineProperty(Prototype, item, {
8
+ get() {
9
+ return this.el[item];
10
+ },
11
+ set(val) {
12
+ this.z.runOutsideAngular(() => (this.el[item] = val));
13
+ },
14
+ /**
15
+ * In the event that proxyInputs is called
16
+ * multiple times re-defining these inputs
17
+ * will cause an error to be thrown. As a result
18
+ * we set configurable: true to indicate these
19
+ * properties can be changed.
20
+ */
21
+ configurable: true,
22
+ });
23
+ });
24
+ };
25
+ export const proxyMethods = (Cmp, methods) => {
26
+ const Prototype = Cmp.prototype;
27
+ methods.forEach((methodName) => {
28
+ Prototype[methodName] = function () {
29
+ const args = arguments;
30
+ return this.z.runOutsideAngular(() => this.el[methodName].apply(this.el, args));
31
+ };
32
+ });
33
+ };
34
+ export const proxyOutputs = (instance, el, events) => {
35
+ events.forEach((eventName) => (instance[eventName] = fromEvent(el, eventName)));
36
+ };
37
+ export const defineCustomElement = (tagName, customElement) => {
38
+ if (customElement !== undefined && typeof customElements !== 'undefined' && !customElements.get(tagName)) {
39
+ customElements.define(tagName, customElement);
40
+ }
41
+ };
42
+ // tslint:disable-next-line: only-arrow-functions
43
+ export function ProxyCmp(opts) {
44
+ const decorator = function (cls) {
45
+ const { defineCustomElementFn, inputs, methods } = opts;
46
+ if (defineCustomElementFn !== undefined) {
47
+ defineCustomElementFn();
48
+ }
49
+ if (inputs) {
50
+ proxyInputs(cls, inputs);
51
+ }
52
+ if (methods) {
53
+ proxyMethods(cls, methods);
54
+ }
55
+ return cls;
56
+ };
57
+ return decorator;
58
+ }
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tYWdtYS1hbmd1bGFyL3NyYy9zdGVuY2lsLWdlbmVyYXRlZC9hbmd1bGFyLWNvbXBvbmVudC1saWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWpDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQVEsRUFBRSxNQUFnQixFQUFFLEVBQUU7SUFDeEQsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQztJQUNoQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDdEIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFO1lBQ3JDLEdBQUc7Z0JBQ0QsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7WUFDRCxHQUFHLENBQUMsR0FBUTtnQkFDVixJQUFJLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3hELENBQUM7WUFDRDs7Ozs7O2VBTUc7WUFDSCxZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQVEsRUFBRSxPQUFpQixFQUFFLEVBQUU7SUFDMUQsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQztJQUNoQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7UUFDN0IsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHO1lBQ3RCLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQztZQUN2QixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsUUFBYSxFQUFFLEVBQU8sRUFBRSxNQUFnQixFQUFFLEVBQUU7SUFDdkUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEYsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxPQUFlLEVBQUUsYUFBa0IsRUFBRSxFQUFFO0lBQ3pFLElBQUksYUFBYSxLQUFLLFNBQVMsSUFBSSxPQUFPLGNBQWMsS0FBSyxXQUFXLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDekcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDaEQsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLGlEQUFpRDtBQUNqRCxNQUFNLFVBQVUsUUFBUSxDQUFDLElBQXlFO0lBQ2hHLE1BQU0sU0FBUyxHQUFHLFVBQVUsR0FBUTtRQUNsQyxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQztRQUV4RCxJQUFJLHFCQUFxQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hDLHFCQUFxQixFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUVELElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxXQUFXLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osWUFBWSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLENBQUM7SUFDRixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cbi8qIHRzbGludDpkaXNhYmxlICovXG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNvbnN0IHByb3h5SW5wdXRzID0gKENtcDogYW55LCBpbnB1dHM6IHN0cmluZ1tdKSA9PiB7XG4gIGNvbnN0IFByb3RvdHlwZSA9IENtcC5wcm90b3R5cGU7XG4gIGlucHV0cy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFByb3RvdHlwZSwgaXRlbSwge1xuICAgICAgZ2V0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbFtpdGVtXTtcbiAgICAgIH0sXG4gICAgICBzZXQodmFsOiBhbnkpIHtcbiAgICAgICAgdGhpcy56LnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+ICh0aGlzLmVsW2l0ZW1dID0gdmFsKSk7XG4gICAgICB9LFxuICAgICAgLyoqXG4gICAgICAgKiBJbiB0aGUgZXZlbnQgdGhhdCBwcm94eUlucHV0cyBpcyBjYWxsZWRcbiAgICAgICAqIG11bHRpcGxlIHRpbWVzIHJlLWRlZmluaW5nIHRoZXNlIGlucHV0c1xuICAgICAgICogd2lsbCBjYXVzZSBhbiBlcnJvciB0byBiZSB0aHJvd24uIEFzIGEgcmVzdWx0XG4gICAgICAgKiB3ZSBzZXQgY29uZmlndXJhYmxlOiB0cnVlIHRvIGluZGljYXRlIHRoZXNlXG4gICAgICAgKiBwcm9wZXJ0aWVzIGNhbiBiZSBjaGFuZ2VkLlxuICAgICAgICovXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgfSk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHByb3h5TWV0aG9kcyA9IChDbXA6IGFueSwgbWV0aG9kczogc3RyaW5nW10pID0+IHtcbiAgY29uc3QgUHJvdG90eXBlID0gQ21wLnByb3RvdHlwZTtcbiAgbWV0aG9kcy5mb3JFYWNoKChtZXRob2ROYW1lKSA9PiB7XG4gICAgUHJvdG90eXBlW21ldGhvZE5hbWVdID0gZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgYXJncyA9IGFyZ3VtZW50cztcbiAgICAgIHJldHVybiB0aGlzLnoucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5lbFttZXRob2ROYW1lXS5hcHBseSh0aGlzLmVsLCBhcmdzKSk7XG4gICAgfTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgcHJveHlPdXRwdXRzID0gKGluc3RhbmNlOiBhbnksIGVsOiBhbnksIGV2ZW50czogc3RyaW5nW10pID0+IHtcbiAgZXZlbnRzLmZvckVhY2goKGV2ZW50TmFtZSkgPT4gKGluc3RhbmNlW2V2ZW50TmFtZV0gPSBmcm9tRXZlbnQoZWwsIGV2ZW50TmFtZSkpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVDdXN0b21FbGVtZW50ID0gKHRhZ05hbWU6IHN0cmluZywgY3VzdG9tRWxlbWVudDogYW55KSA9PiB7XG4gIGlmIChjdXN0b21FbGVtZW50ICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIGN1c3RvbUVsZW1lbnRzICE9PSAndW5kZWZpbmVkJyAmJiAhY3VzdG9tRWxlbWVudHMuZ2V0KHRhZ05hbWUpKSB7XG4gICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKHRhZ05hbWUsIGN1c3RvbUVsZW1lbnQpO1xuICB9XG59O1xuXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG9ubHktYXJyb3ctZnVuY3Rpb25zXG5leHBvcnQgZnVuY3Rpb24gUHJveHlDbXAob3B0czogeyBkZWZpbmVDdXN0b21FbGVtZW50Rm4/OiAoKSA9PiB2b2lkOyBpbnB1dHM/OiBhbnk7IG1ldGhvZHM/OiBhbnkgfSkge1xuICBjb25zdCBkZWNvcmF0b3IgPSBmdW5jdGlvbiAoY2xzOiBhbnkpIHtcbiAgICBjb25zdCB7IGRlZmluZUN1c3RvbUVsZW1lbnRGbiwgaW5wdXRzLCBtZXRob2RzIH0gPSBvcHRzO1xuXG4gICAgaWYgKGRlZmluZUN1c3RvbUVsZW1lbnRGbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZWZpbmVDdXN0b21FbGVtZW50Rm4oKTtcbiAgICB9XG5cbiAgICBpZiAoaW5wdXRzKSB7XG4gICAgICBwcm94eUlucHV0cyhjbHMsIGlucHV0cyk7XG4gICAgfVxuICAgIGlmIChtZXRob2RzKSB7XG4gICAgICBwcm94eU1ldGhvZHMoY2xzLCBtZXRob2RzKTtcbiAgICB9XG4gICAgcmV0dXJuIGNscztcbiAgfTtcbiAgcmV0dXJuIGRlY29yYXRvcjtcbn1cbiJdfQ==