@trimble-oss/moduswebcomponents-angular 1.4.0-ng18 → 1.4.0-ng19
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 +8 -14
- package/fesm2022/trimble-oss-moduswebcomponents-angular.mjs +171 -179
- package/fesm2022/trimble-oss-moduswebcomponents-angular.mjs.map +1 -1
- package/lib/modus-wc-angular.module.d.ts +1 -1
- package/lib/stencil-generated/components.d.ts +51 -51
- package/package.json +3 -5
- package/esm2022/lib/modus-wc-angular.module.mjs +0 -42
- package/esm2022/lib/stencil-generated/angular-component-lib/utils.mjs +0 -59
- package/esm2022/lib/stencil-generated/components.mjs +0 -1419
- package/esm2022/lib/stencil-generated/index.mjs +0 -55
- package/esm2022/public-api.mjs +0 -7
- package/esm2022/trimble-oss-moduswebcomponents-angular.mjs +0 -5
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trimble-oss/moduswebcomponents-angular",
|
|
3
|
-
"version": "1.4.0-
|
|
3
|
+
"version": "1.4.0-ng19",
|
|
4
4
|
"description": "Trimble Modus Angular Component Library",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Trimble Inc.",
|
|
7
7
|
"peerDependencies": {
|
|
8
|
-
"@angular/common": "^
|
|
9
|
-
"@angular/core": "^
|
|
8
|
+
"@angular/common": "^19.0.0",
|
|
9
|
+
"@angular/core": "^19.0.0",
|
|
10
10
|
"@trimble-oss/moduswebcomponents": "1.4.0"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
@@ -24,8 +24,6 @@
|
|
|
24
24
|
},
|
|
25
25
|
".": {
|
|
26
26
|
"types": "./index.d.ts",
|
|
27
|
-
"esm2022": "./esm2022/trimble-oss-moduswebcomponents-angular.mjs",
|
|
28
|
-
"esm": "./esm2022/trimble-oss-moduswebcomponents-angular.mjs",
|
|
29
27
|
"default": "./fesm2022/trimble-oss-moduswebcomponents-angular.mjs"
|
|
30
28
|
}
|
|
31
29
|
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { APP_INITIALIZER, NgModule } from '@angular/core';
|
|
2
|
-
import { defineCustomElements } from '@trimble-oss/moduswebcomponents/loader';
|
|
3
|
-
import { setAssetPath } from '@trimble-oss/moduswebcomponents/components';
|
|
4
|
-
import { DIRECTIVES } from './stencil-generated';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "./stencil-generated/components";
|
|
7
|
-
export class ModusAngularComponentsModule {
|
|
8
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusAngularComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: ModusAngularComponentsModule, declarations: [i1.ModusWcAccordion, i1.ModusWcAlert, i1.ModusWcAutocomplete, i1.ModusWcAvatar, i1.ModusWcBadge, i1.ModusWcBreadcrumbs, i1.ModusWcButton, i1.ModusWcButtonGroup, i1.ModusWcCard, i1.ModusWcCheckbox, i1.ModusWcChip, i1.ModusWcCollapse, i1.ModusWcDate, i1.ModusWcDivider, i1.ModusWcDropdownMenu, i1.ModusWcFileDropzone, i1.ModusWcHandle, i1.ModusWcIcon, i1.ModusWcInputFeedback, i1.ModusWcInputLabel, i1.ModusWcLoader, i1.ModusWcLogo, i1.ModusWcMenu, i1.ModusWcMenuItem, i1.ModusWcModal, i1.ModusWcNavbar, i1.ModusWcNumberInput, i1.ModusWcPagination, i1.ModusWcPanel, i1.ModusWcProfileMenu, i1.ModusWcProgress, i1.ModusWcRadio, i1.ModusWcRating, i1.ModusWcSelect, i1.ModusWcSideNavigation, i1.ModusWcSkeleton, i1.ModusWcSlider, i1.ModusWcStepper, i1.ModusWcSwitch, i1.ModusWcTable, i1.ModusWcTabs, i1.ModusWcTextInput, i1.ModusWcTextarea, i1.ModusWcThemeProvider, i1.ModusWcThemeSwitcher, i1.ModusWcTimeInput, i1.ModusWcToast, i1.ModusWcToolbar, i1.ModusWcTooltip, i1.ModusWcTypography, i1.ModusWcUtilityPanel], exports: [i1.ModusWcAccordion, i1.ModusWcAlert, i1.ModusWcAutocomplete, i1.ModusWcAvatar, i1.ModusWcBadge, i1.ModusWcBreadcrumbs, i1.ModusWcButton, i1.ModusWcButtonGroup, i1.ModusWcCard, i1.ModusWcCheckbox, i1.ModusWcChip, i1.ModusWcCollapse, i1.ModusWcDate, i1.ModusWcDivider, i1.ModusWcDropdownMenu, i1.ModusWcFileDropzone, i1.ModusWcHandle, i1.ModusWcIcon, i1.ModusWcInputFeedback, i1.ModusWcInputLabel, i1.ModusWcLoader, i1.ModusWcLogo, i1.ModusWcMenu, i1.ModusWcMenuItem, i1.ModusWcModal, i1.ModusWcNavbar, i1.ModusWcNumberInput, i1.ModusWcPagination, i1.ModusWcPanel, i1.ModusWcProfileMenu, i1.ModusWcProgress, i1.ModusWcRadio, i1.ModusWcRating, i1.ModusWcSelect, i1.ModusWcSideNavigation, i1.ModusWcSkeleton, i1.ModusWcSlider, i1.ModusWcStepper, i1.ModusWcSwitch, i1.ModusWcTable, i1.ModusWcTabs, i1.ModusWcTextInput, i1.ModusWcTextarea, i1.ModusWcThemeProvider, i1.ModusWcThemeSwitcher, i1.ModusWcTimeInput, i1.ModusWcToast, i1.ModusWcToolbar, i1.ModusWcTooltip, i1.ModusWcTypography, i1.ModusWcUtilityPanel] });
|
|
10
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusAngularComponentsModule, providers: [
|
|
11
|
-
{
|
|
12
|
-
provide: APP_INITIALIZER,
|
|
13
|
-
useFactory: () => () => {
|
|
14
|
-
// Configure asset path for Angular applications
|
|
15
|
-
// Assets should be copied to /assets/ via angular.json configuration
|
|
16
|
-
setAssetPath('/assets/');
|
|
17
|
-
defineCustomElements(window);
|
|
18
|
-
},
|
|
19
|
-
multi: true,
|
|
20
|
-
}
|
|
21
|
-
] });
|
|
22
|
-
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ModusAngularComponentsModule, decorators: [{
|
|
24
|
-
type: NgModule,
|
|
25
|
-
args: [{
|
|
26
|
-
declarations: [...DIRECTIVES],
|
|
27
|
-
exports: [...DIRECTIVES],
|
|
28
|
-
providers: [
|
|
29
|
-
{
|
|
30
|
-
provide: APP_INITIALIZER,
|
|
31
|
-
useFactory: () => () => {
|
|
32
|
-
// Configure asset path for Angular applications
|
|
33
|
-
// Assets should be copied to /assets/ via angular.json configuration
|
|
34
|
-
setAssetPath('/assets/');
|
|
35
|
-
defineCustomElements(window);
|
|
36
|
-
},
|
|
37
|
-
multi: true,
|
|
38
|
-
}
|
|
39
|
-
]
|
|
40
|
-
}]
|
|
41
|
-
}] });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdXMtd2MtYW5ndWxhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmltYmxlLW9zcy9tb2R1c3dlYmNvbXBvbmVudHMtYW5ndWxhci9zcmMvbGliL21vZHVzLXdjLWFuZ3VsYXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQWtCakQsTUFBTSxPQUFPLDRCQUE0Qjt1R0FBNUIsNEJBQTRCO3dHQUE1Qiw0QkFBNEI7d0dBQTVCLDRCQUE0QixhQWI1QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxlQUFlO2dCQUN4QixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFO29CQUNyQixnREFBZ0Q7b0JBQ2hELHFFQUFxRTtvQkFDckUsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUN6QixvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDL0IsQ0FBQztnQkFDRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Y7OzJGQUVVLDRCQUE0QjtrQkFoQnhDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7b0JBQzdCLE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO29CQUN4QixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGVBQWU7NEJBQ3hCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUU7Z0NBQ3JCLGdEQUFnRDtnQ0FDaEQscUVBQXFFO2dDQUNyRSxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7Z0NBQ3pCLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDOzRCQUMvQixDQUFDOzRCQUNELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudHMgfSBmcm9tICdAdHJpbWJsZS1vc3MvbW9kdXN3ZWJjb21wb25lbnRzL2xvYWRlcic7XG5pbXBvcnQgeyBzZXRBc3NldFBhdGggfSBmcm9tICdAdHJpbWJsZS1vc3MvbW9kdXN3ZWJjb21wb25lbnRzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgRElSRUNUSVZFUyB9IGZyb20gJy4vc3RlbmNpbC1nZW5lcmF0ZWQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFsuLi5ESVJFQ1RJVkVTXSxcbiAgZXhwb3J0czogWy4uLkRJUkVDVElWRVNdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiAoKSA9PiB7XG4gICAgICAgIC8vIENvbmZpZ3VyZSBhc3NldCBwYXRoIGZvciBBbmd1bGFyIGFwcGxpY2F0aW9uc1xuICAgICAgICAvLyBBc3NldHMgc2hvdWxkIGJlIGNvcGllZCB0byAvYXNzZXRzLyB2aWEgYW5ndWxhci5qc29uIGNvbmZpZ3VyYXRpb25cbiAgICAgICAgc2V0QXNzZXRQYXRoKCcvYXNzZXRzLycpO1xuICAgICAgICBkZWZpbmVDdXN0b21FbGVtZW50cyh3aW5kb3cpO1xuICAgICAgfSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBNb2R1c0FuZ3VsYXJDb21wb25lbnRzTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,59 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmltYmxlLW9zcy9tb2R1c3dlYmNvbXBvbmVudHMtYW5ndWxhci9zcmMvbGliL3N0ZW5jaWwtZ2VuZXJhdGVkL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBUSxFQUFFLE1BQWdCLEVBQUUsRUFBRTtJQUN4RCxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO0lBQ2hDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUN0QixNQUFNLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUU7WUFDckMsR0FBRztnQkFDRCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkIsQ0FBQztZQUNELEdBQUcsQ0FBQyxHQUFRO2dCQUNWLElBQUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDeEQsQ0FBQztZQUNEOzs7Ozs7ZUFNRztZQUNILFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBUSxFQUFFLE9BQWlCLEVBQUUsRUFBRTtJQUMxRCxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDO0lBQ2hDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtRQUM3QixTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUc7WUFDdEIsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEYsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxRQUFhLEVBQUUsRUFBTyxFQUFFLE1BQWdCLEVBQUUsRUFBRTtJQUN2RSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsRixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLE9BQWUsRUFBRSxhQUFrQixFQUFFLEVBQUU7SUFDekUsSUFBSSxhQUFhLEtBQUssU0FBUyxJQUFJLE9BQU8sY0FBYyxLQUFLLFdBQVcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN6RyxjQUFjLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNoRCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsaURBQWlEO0FBQ2pELE1BQU0sVUFBVSxRQUFRLENBQUMsSUFBeUU7SUFDaEcsTUFBTSxTQUFTLEdBQUcsVUFBVSxHQUFRO1FBQ2xDLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRXhELElBQUkscUJBQXFCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEMscUJBQXFCLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBRUQsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLFdBQVcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixZQUFZLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsQ0FBQztJQUNGLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuLyogdHNsaW50OmRpc2FibGUgKi9cbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY29uc3QgcHJveHlJbnB1dHMgPSAoQ21wOiBhbnksIGlucHV0czogc3RyaW5nW10pID0+IHtcbiAgY29uc3QgUHJvdG90eXBlID0gQ21wLnByb3RvdHlwZTtcbiAgaW5wdXRzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUHJvdG90eXBlLCBpdGVtLCB7XG4gICAgICBnZXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsW2l0ZW1dO1xuICAgICAgfSxcbiAgICAgIHNldCh2YWw6IGFueSkge1xuICAgICAgICB0aGlzLnoucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gKHRoaXMuZWxbaXRlbV0gPSB2YWwpKTtcbiAgICAgIH0sXG4gICAgICAvKipcbiAgICAgICAqIEluIHRoZSBldmVudCB0aGF0IHByb3h5SW5wdXRzIGlzIGNhbGxlZFxuICAgICAgICogbXVsdGlwbGUgdGltZXMgcmUtZGVmaW5pbmcgdGhlc2UgaW5wdXRzXG4gICAgICAgKiB3aWxsIGNhdXNlIGFuIGVycm9yIHRvIGJlIHRocm93bi4gQXMgYSByZXN1bHRcbiAgICAgICAqIHdlIHNldCBjb25maWd1cmFibGU6IHRydWUgdG8gaW5kaWNhdGUgdGhlc2VcbiAgICAgICAqIHByb3BlcnRpZXMgY2FuIGJlIGNoYW5nZWQuXG4gICAgICAgKi9cbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICB9KTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgcHJveHlNZXRob2RzID0gKENtcDogYW55LCBtZXRob2RzOiBzdHJpbmdbXSkgPT4ge1xuICBjb25zdCBQcm90b3R5cGUgPSBDbXAucHJvdG90eXBlO1xuICBtZXRob2RzLmZvckVhY2goKG1ldGhvZE5hbWUpID0+IHtcbiAgICBQcm90b3R5cGVbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgcmV0dXJuIHRoaXMuei5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLmVsW21ldGhvZE5hbWVdLmFwcGx5KHRoaXMuZWwsIGFyZ3MpKTtcbiAgICB9O1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBwcm94eU91dHB1dHMgPSAoaW5zdGFuY2U6IGFueSwgZWw6IGFueSwgZXZlbnRzOiBzdHJpbmdbXSkgPT4ge1xuICBldmVudHMuZm9yRWFjaCgoZXZlbnROYW1lKSA9PiAoaW5zdGFuY2VbZXZlbnROYW1lXSA9IGZyb21FdmVudChlbCwgZXZlbnROYW1lKSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUN1c3RvbUVsZW1lbnQgPSAodGFnTmFtZTogc3RyaW5nLCBjdXN0b21FbGVtZW50OiBhbnkpID0+IHtcbiAgaWYgKGN1c3RvbUVsZW1lbnQgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgY3VzdG9tRWxlbWVudHMgIT09ICd1bmRlZmluZWQnICYmICFjdXN0b21FbGVtZW50cy5nZXQodGFnTmFtZSkpIHtcbiAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUodGFnTmFtZSwgY3VzdG9tRWxlbWVudCk7XG4gIH1cbn07XG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogb25seS1hcnJvdy1mdW5jdGlvbnNcbmV4cG9ydCBmdW5jdGlvbiBQcm94eUNtcChvcHRzOiB7IGRlZmluZUN1c3RvbUVsZW1lbnRGbj86ICgpID0+IHZvaWQ7IGlucHV0cz86IGFueTsgbWV0aG9kcz86IGFueSB9KSB7XG4gIGNvbnN0IGRlY29yYXRvciA9IGZ1bmN0aW9uIChjbHM6IGFueSkge1xuICAgIGNvbnN0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudEZuLCBpbnB1dHMsIG1ldGhvZHMgfSA9IG9wdHM7XG5cbiAgICBpZiAoZGVmaW5lQ3VzdG9tRWxlbWVudEZuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlZmluZUN1c3RvbUVsZW1lbnRGbigpO1xuICAgIH1cblxuICAgIGlmIChpbnB1dHMpIHtcbiAgICAgIHByb3h5SW5wdXRzKGNscywgaW5wdXRzKTtcbiAgICB9XG4gICAgaWYgKG1ldGhvZHMpIHtcbiAgICAgIHByb3h5TWV0aG9kcyhjbHMsIG1ldGhvZHMpO1xuICAgIH1cbiAgICByZXR1cm4gY2xzO1xuICB9O1xuICByZXR1cm4gZGVjb3JhdG9yO1xufVxuIl19
|