@pepperi-addons/ngx-lib 0.4.2-beta.314 → 0.4.2-beta.316

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.
@@ -13,6 +13,7 @@ import { PepCarouselModule } from '@pepperi-addons/ngx-lib/carousel';
13
13
  import { PepIconModule, pepIconArrowDown, pepIconArrowEither, pepIconArrowUp, pepIconSystemMust, pepIconArrowRight, pepIconArrowRightAlt, pepIconArrowLeft, pepIconArrowLeftAlt, } from '@pepperi-addons/ngx-lib/icon';
14
14
  import { PepFormModule } from '@pepperi-addons/ngx-lib/form';
15
15
  import { PepMenuModule } from '@pepperi-addons/ngx-lib/menu';
16
+ import { PepSelectModule } from '@pepperi-addons/ngx-lib/select';
16
17
  import { PepTextboxModule } from '@pepperi-addons/ngx-lib/textbox';
17
18
  // import { PepListOldComponent } from './list_old.component';
18
19
  import { PepListComponent } from './list.component';
@@ -85,6 +86,7 @@ PepListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
85
86
  PepIconModule,
86
87
  PepFormModule,
87
88
  PepMenuModule,
89
+ PepSelectModule,
88
90
  PepTextboxModule,
89
91
  VirtualScrollerModule], exports: [
90
92
  // PepListOldComponent,
@@ -112,6 +114,7 @@ PepListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
112
114
  PepIconModule,
113
115
  PepFormModule,
114
116
  PepMenuModule,
117
+ PepSelectModule,
115
118
  PepTextboxModule,
116
119
  VirtualScrollerModule] });
117
120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepListModule, decorators: [{
@@ -134,6 +137,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
134
137
  PepIconModule,
135
138
  PepFormModule,
136
139
  PepMenuModule,
140
+ PepSelectModule,
137
141
  PepTextboxModule,
138
142
  VirtualScrollerModule
139
143
  ],
@@ -141,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
141
145
  declarations: [listComponents, listPipes],
142
146
  }]
143
147
  }], ctorParameters: function () { return [{ type: i1.PepIconRegistry }]; } });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2xpc3QvbGlzdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFDSCxhQUFhLEVBRWIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBQ2hCLG1CQUFtQixHQUN0QixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxF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Q2Isa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIscUJBQXFCO3FCQUN4QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7b0JBQ3pCLFlBQVksRUFBRSxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUM7aUJBQzVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IE1hdENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5cbmltcG9ydCB7IFBlcE5neExpYk1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IFBlcEJyZWFkQ3J1bWJzTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvYnJlYWQtY3J1bWJzJztcbmltcG9ydCB7IFBlcEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2J1dHRvbic7XG5pbXBvcnQgeyBQZXBDYXJvdXNlbE1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2Nhcm91c2VsJztcbmltcG9ydCB7XG4gICAgUGVwSWNvbk1vZHVsZSxcbiAgICBQZXBJY29uUmVnaXN0cnksXG4gICAgcGVwSWNvbkFycm93RG93bixcbiAgICBwZXBJY29uQXJyb3dFaXRoZXIsXG4gICAgcGVwSWNvbkFycm93VXAsXG4gICAgcGVwSWNvblN5c3RlbU11c3QsXG4gICAgcGVwSWNvbkFycm93UmlnaHQsXG4gICAgcGVwSWNvbkFycm93UmlnaHRBbHQsXG4gICAgcGVwSWNvbkFycm93TGVmdCxcbiAgICBwZXBJY29uQXJyb3dMZWZ0QWx0LFxufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9pY29uJztcbmltcG9ydCB7IFBlcEZvcm1Nb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9mb3JtJztcbmltcG9ydCB7IFBlcE1lbnVNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9tZW51JztcbmltcG9ydCB7IFBlcFRleHRib3hNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi90ZXh0Ym94JztcblxuLy8gaW1wb3J0IHsgUGVwTGlzdE9sZENvbXBvbmVudCB9IGZyb20gJy4vbGlzdF9vbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcExpc3RDb21wb25lbnQgfSBmcm9tICcuL2xpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcExpc3RBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9saXN0LWFjdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcExpc3RDYXJvdXNlbENvbXBvbmVudCB9IGZyb20gJy4vbGlzdC1jYXJvdXNlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVwTGlzdENob29zZXJDb21wb25lbnQgfSBmcm9tICcuL2xpc3QtY2hvb3Nlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVwTGlzdFBhZ2VyQ29tcG9uZW50IH0gZnJvbSAnLi9saXN0LXBhZ2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXBMaXN0U29ydGluZ0NvbXBvbmVudCB9IGZyb20gJy4vbGlzdC1zb3J0aW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXBMaXN0VG90YWxDb21wb25lbnQgfSBmcm9tICcuL2xpc3QtdG90YWwuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcExpc3RWaWV3c0NvbXBvbmVudCB9IGZyb20gJy4vbGlzdC12aWV3cy5jb21wb25lbnQnO1xuXG5jb25zdCBsaXN0Q29tcG9uZW50cyA9IFtcbiAgICAvLyBQZXBMaXN0T2xkQ29tcG9uZW50LFxuICAgIFBlcExpc3RDb21wb25lbnQsXG4gICAgUGVwTGlzdEFjdGlvbnNDb21wb25lbnQsXG4gICAgUGVwTGlzdENhcm91c2VsQ29tcG9uZW50LFxuICAgIFBlcExpc3RDaG9vc2VyQ29tcG9uZW50LFxuICAgIFBlcExpc3RQYWdlckNvbXBvbmVudCxcbiAgICBQZXBMaXN0U29ydGluZ0NvbXBvbmVudCxcbiAgICBQZXBMaXN0VG90YWxDb21wb25lbnQsXG4gICAgUGVwTGlzdFZpZXdzQ29tcG9uZW50LFxuXTtcblxuaW1wb3J0IHsgSXNJdGVtRGlzYWJsZWRQaXBlLCBJc0l0ZW1TZWxlY3RlZFBpcGUgfSBmcm9tICcuL2xpc3QucGlwZXMnO1xuXG5jb25zdCBsaXN0UGlwZXMgPSBbXG4gICAgSXNJdGVtU2VsZWN0ZWRQaXBlLFxuICAgIElzSXRlbURpc2FibGVkUGlwZVxuXTtcblxuaW1wb3J0IHsgVmlydHVhbFNjcm9sbGVyTW9kdWxlIH0gZnJvbSAnLi92aXJ0dWFsLXNjcm9sbGVyJztcbi8vIGltcG9ydCB7IFBlcFZpcnR1YWxTY3JvbGxDb21wb25lbnQgfSBmcm9tICcuL3ZpcnR1YWwtc2Nyb2xsLmNvbXBvbmVudCc7XG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICAvLyBNYXRlcmlhbCBtb2R1bGVzLFxuICAgICAgICBNYXRDb21tb25Nb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgICAgIE1hdFJhZGlvTW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBNYXRNZW51TW9kdWxlLFxuICAgICAgICAvLyBuZ3gtbGliIG1vZHVsZXNcbiAgICAgICAgUGVwTmd4TGliTW9kdWxlLFxuICAgICAgICBQZXBCcmVhZENydW1ic01vZHVsZSxcbiAgICAgICAgUGVwQnV0dG9uTW9kdWxlLFxuICAgICAgICBQZXBDYXJvdXNlbE1vZHVsZSxcbiAgICAgICAgUGVwSWNvbk1vZHVsZSxcbiAgICAgICAgUGVwRm9ybU1vZHVsZSxcbiAgICAgICAgUGVwTWVudU1vZHVsZSxcbiAgICAgICAgUGVwVGV4dGJveE1vZHVsZSxcbiAgICAgICAgVmlydHVhbFNjcm9sbGVyTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbbGlzdENvbXBvbmVudHNdLFxuICAgIGRlY2xhcmF0aW9uczogW2xpc3RDb21wb25lbnRzLCBsaXN0UGlwZXNdLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBMaXN0TW9kdWxlIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBlcEljb25SZWdpc3RyeTogUGVwSWNvblJlZ2lzdHJ5KSB7XG4gICAgICAgIHRoaXMucGVwSWNvblJlZ2lzdHJ5LnJlZ2lzdGVySWNvbnMoW1xuICAgICAgICAgICAgcGVwSWNvbkFycm93RG93bixcbiAgICAgICAgICAgIHBlcEljb25BcnJvd0VpdGhlcixcbiAgICAgICAgICAgIHBlcEljb25BcnJvd1VwLFxuICAgICAgICAgICAgcGVwSWNvblN5c3RlbU11c3QsXG4gICAgICAgICAgICBwZXBJY29uQXJyb3dSaWdodCxcbiAgICAgICAgICAgIHBlcEljb25BcnJvd1JpZ2h0QWx0LFxuICAgICAgICAgICAgcGVwSWNvbkFycm93TGVmdCxcbiAgICAgICAgICAgIHBlcEljb25BcnJvd0xlZnRBbHQsXG4gICAgICAgIF0pO1xuICAgIH1cbn1cbiJdfQ==
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2xpc3QvbGlzdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFDSCxhQUFhLEVBRWIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBQ2hCLG1CQUFtQixHQUN0QixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxF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ZTt3QkFDZixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixxQkFBcUI7cUJBQ3hCO29CQUNELE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDekIsWUFBWSxFQUFFLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQztpQkFDNUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgTWF0Q29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcblxuaW1wb3J0IHsgUGVwTmd4TGliTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgUGVwQnJlYWRDcnVtYnNNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9icmVhZC1jcnVtYnMnO1xuaW1wb3J0IHsgUGVwQnV0dG9uTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvYnV0dG9uJztcbmltcG9ydCB7IFBlcENhcm91c2VsTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvY2Fyb3VzZWwnO1xuaW1wb3J0IHtcbiAgICBQZXBJY29uTW9kdWxlLFxuICAgIFBlcEljb25SZWdpc3RyeSxcbiAgICBwZXBJY29uQXJyb3dEb3duLFxuICAgIHBlcEljb25BcnJvd0VpdGhlcixcbiAgICBwZXBJY29uQXJyb3dVcCxcbiAgICBwZXBJY29uU3lzdGVtTXVzdCxcbiAgICBwZXBJY29uQXJyb3dSaWdodCxcbiAgICBwZXBJY29uQXJyb3dSaWdodEFsdCxcbiAgICBwZXBJY29uQXJyb3dMZWZ0LFxuICAgIHBlcEljb25BcnJvd0xlZnRBbHQsXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ljb24nO1xuaW1wb3J0IHsgUGVwRm9ybU1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2Zvcm0nO1xuaW1wb3J0IHsgUGVwTWVudU1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL21lbnUnO1xuaW1wb3J0IHsgUGVwU2VsZWN0TW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvc2VsZWN0JztcbmltcG9ydCB7IFBlcFRleHRib3hNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi90ZXh0Ym94JztcblxuLy8gaW1wb3J0IHsgUGVwTGlzdE9sZENvbXBvbmVudCB9IGZyb20gJy4vbGlzdF9vbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcExpc3RDb21wb25lbnQgfSBmcm9tICcuL2xpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcExpc3RBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9saXN0LWFjdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcExpc3RDYXJvdXNlbENvbXBvbmVudCB9IGZyb20gJy4vbGlzdC1jYXJvdXNlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVwTGlzdENob29zZXJDb21wb25lbnQgfSBmcm9tICcuL2xpc3QtY2hvb3Nlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVwTGlzdFBhZ2VyQ29tcG9uZW50IH0gZnJvbSAnLi9saXN0LXBhZ2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXBMaXN0U29ydGluZ0NvbXBvbmVudCB9IGZyb20gJy4vbGlzdC1zb3J0aW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXBMaXN0VG90YWxDb21wb25lbnQgfSBmcm9tICcuL2xpc3QtdG90YWwuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcExpc3RWaWV3c0NvbXBvbmVudCB9IGZyb20gJy4vbGlzdC12aWV3cy5jb21wb25lbnQnO1xuXG5jb25zdCBsaXN0Q29tcG9uZW50cyA9IFtcbiAgICAvLyBQZXBMaXN0T2xkQ29tcG9uZW50LFxuICAgIFBlcExpc3RDb21wb25lbnQsXG4gICAgUGVwTGlzdEFjdGlvbnNDb21wb25lbnQsXG4gICAgUGVwTGlzdENhcm91c2VsQ29tcG9uZW50LFxuICAgIFBlcExpc3RDaG9vc2VyQ29tcG9uZW50LFxuICAgIFBlcExpc3RQYWdlckNvbXBvbmVudCxcbiAgICBQZXBMaXN0U29ydGluZ0NvbXBvbmVudCxcbiAgICBQZXBMaXN0VG90YWxDb21wb25lbnQsXG4gICAgUGVwTGlzdFZpZXdzQ29tcG9uZW50LFxuXTtcblxuaW1wb3J0IHsgSXNJdGVtRGlzYWJsZWRQaXBlLCBJc0l0ZW1TZWxlY3RlZFBpcGUgfSBmcm9tICcuL2xpc3QucGlwZXMnO1xuXG5jb25zdCBsaXN0UGlwZXMgPSBbXG4gICAgSXNJdGVtU2VsZWN0ZWRQaXBlLFxuICAgIElzSXRlbURpc2FibGVkUGlwZVxuXTtcblxuaW1wb3J0IHsgVmlydHVhbFNjcm9sbGVyTW9kdWxlIH0gZnJvbSAnLi92aXJ0dWFsLXNjcm9sbGVyJztcbi8vIGltcG9ydCB7IFBlcFZpcnR1YWxTY3JvbGxDb21wb25lbnQgfSBmcm9tICcuL3ZpcnR1YWwtc2Nyb2xsLmNvbXBvbmVudCc7XG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICAvLyBNYXRlcmlhbCBtb2R1bGVzLFxuICAgICAgICBNYXRDb21tb25Nb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgICAgIE1hdFJhZGlvTW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBNYXRNZW51TW9kdWxlLFxuICAgICAgICAvLyBuZ3gtbGliIG1vZHVsZXNcbiAgICAgICAgUGVwTmd4TGliTW9kdWxlLFxuICAgICAgICBQZXBCcmVhZENydW1ic01vZHVsZSxcbiAgICAgICAgUGVwQnV0dG9uTW9kdWxlLFxuICAgICAgICBQZXBDYXJvdXNlbE1vZHVsZSxcbiAgICAgICAgUGVwSWNvbk1vZHVsZSxcbiAgICAgICAgUGVwRm9ybU1vZHVsZSxcbiAgICAgICAgUGVwTWVudU1vZHVsZSxcbiAgICAgICAgUGVwU2VsZWN0TW9kdWxlLFxuICAgICAgICBQZXBUZXh0Ym94TW9kdWxlLFxuICAgICAgICBWaXJ0dWFsU2Nyb2xsZXJNb2R1bGVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtsaXN0Q29tcG9uZW50c10sXG4gICAgZGVjbGFyYXRpb25zOiBbbGlzdENvbXBvbmVudHMsIGxpc3RQaXBlc10sXG59KVxuZXhwb3J0IGNsYXNzIFBlcExpc3RNb2R1bGUge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcGVwSWNvblJlZ2lzdHJ5OiBQZXBJY29uUmVnaXN0cnkpIHtcbiAgICAgICAgdGhpcy5wZXBJY29uUmVnaXN0cnkucmVnaXN0ZXJJY29ucyhbXG4gICAgICAgICAgICBwZXBJY29uQXJyb3dEb3duLFxuICAgICAgICAgICAgcGVwSWNvbkFycm93RWl0aGVyLFxuICAgICAgICAgICAgcGVwSWNvbkFycm93VXAsXG4gICAgICAgICAgICBwZXBJY29uU3lzdGVtTXVzdCxcbiAgICAgICAgICAgIHBlcEljb25BcnJvd1JpZ2h0LFxuICAgICAgICAgICAgcGVwSWNvbkFycm93UmlnaHRBbHQsXG4gICAgICAgICAgICBwZXBJY29uQXJyb3dMZWZ0LFxuICAgICAgICAgICAgcGVwSWNvbkFycm93TGVmdEFsdCxcbiAgICAgICAgXSk7XG4gICAgfVxufVxuIl19
@@ -78,16 +78,50 @@ export class PepRemoteLoaderElementComponent {
78
78
  // The host (Angular) may destroy/remove the element subtree while the remote (React) is still
79
79
  // unmounting, which can surface as `NotFoundError: Failed to execute 'removeChild' on 'Node'`.
80
80
  // If the remote element exposes `pepperiUnmount()`, call it here to let it cleanup before DOM removal.
81
- const anyEl = this.element;
81
+ const elToUnmount = this.element;
82
+ let parkedContainer = null;
83
+ const cleanup = () => {
84
+ try {
85
+ if (parkedContainer?.parentNode) {
86
+ parkedContainer.parentNode.removeChild(parkedContainer);
87
+ }
88
+ }
89
+ catch {
90
+ // ignore
91
+ }
92
+ };
93
+ // Detach the remote element subtree so Angular destroying this host won't remove it while React is still unmounting.
94
+ try {
95
+ if (typeof document !== 'undefined' && elToUnmount?.parentNode && document.body) {
96
+ parkedContainer = document.createElement('div');
97
+ parkedContainer.style.display = 'none';
98
+ document.body.appendChild(parkedContainer);
99
+ parkedContainer.appendChild(elToUnmount);
100
+ }
101
+ }
102
+ catch {
103
+ // ignore
104
+ }
105
+ const anyEl = elToUnmount;
82
106
  const maybeUnmount = anyEl?.pepperiUnmount;
83
107
  if (typeof maybeUnmount === 'function') {
84
108
  try {
85
- maybeUnmount.call(anyEl);
109
+ const res = maybeUnmount.call(anyEl);
110
+ if (res && typeof res.then === 'function') {
111
+ res.finally(() => cleanup());
112
+ }
113
+ else {
114
+ cleanup();
115
+ }
86
116
  }
87
117
  catch {
88
118
  // ignore
119
+ cleanup();
89
120
  }
90
121
  }
122
+ else {
123
+ cleanup();
124
+ }
91
125
  }
92
126
  catch {
93
127
  // ignore
@@ -200,4 +234,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
200
234
  }], load: [{
201
235
  type: Output
202
236
  }] } });
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWxvYWRlci1lbGVtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvcmVtb3RlLWxvYWRlci9yZW1vdGUtbG9hZGVyLWVsZW1lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQXdCLFFBQVEsRUFBRSxNQUFNLEVBQTBDLE1BQU0sZUFBZSxDQUFDO0FBRTdLLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7OztBQTBCekUsTUFBTSxPQUFPLCtCQUErQjtJQVl4QywyQkFBMkI7SUFDM0IseUdBQXlHO0lBQ3pHLGlHQUFpRztJQUNqRyw4RkFBOEY7SUFDOUYsSUFBSTtJQUVKLFlBQ1ksUUFBbUIsRUFDbkIsRUFBYSxFQUNiLGVBQWdDLEVBQ2hDLG1CQUEyQyxFQUMvQixLQUFxQjtRQUpqQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQVc7UUFDYixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF3QjtRQUMvQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQWxCbkMsU0FBSSxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXhELFlBQU8sR0FBZ0IsSUFBSSxDQUFDO1FBRXBCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7SUFlL0IsQ0FBQztJQUVPLGFBQWE7UUFDakIsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6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O2dCQUMzQix3RUFBd0U7Z0JBQ3hFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNmLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7d0JBQ2xDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO29CQUNqQyxDQUFDLENBQUMsQ0FBQztpQkFDTjtxQkFBTTtvQkFDSCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztpQkFDaEM7YUFDSjtTQUNKO1FBQ0QsT0FBTSxLQUFLLEVBQUU7WUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQzs7NEhBM01RLCtCQUErQjtnSEFBL0IsK0JBQStCLG1MQVY5Qjs7S0FFVDsyRkFRUSwrQkFBK0I7a0JBWjNDLFNBQVM7K0JBQ0ksMkJBQTJCLFlBQzNCOztLQUVUOzswQkErQkksUUFBUTs0Q0F0QkosT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUksSUFBSTtzQkFBYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT3B0aW9uYWwsIE91dHB1dCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGxvYWRSZW1vdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci1hcmNoaXRlY3RzL21vZHVsZS1mZWRlcmF0aW9uJztcbmltcG9ydCB7IFBlcEFkZG9uU2VydmljZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IFBlcFJlbW90ZUxvYWRlck9wdGlvbnMgfSBmcm9tICcuL3JlbW90ZS1sb2FkZXIubW9kZWwnO1xuaW1wb3J0IHsgUGVwUmVtb3RlTG9hZGVyU2VydmljZSB9IGZyb20gJy4vcmVtb3RlLWxvYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcyc7XG5cbmludGVyZmFjZSBCbG9ja1JlbW90ZUxvYWRlck9wdGlvbnNEYXRhIHsgXG4gICAgbmFtZT86IHN0cmluZywgXG4gICAgc2x1Z05hbWU/OiBzdHJpbmcsIFxuICAgIGJsb2NrVHlwZT86IHN0cmluZywgXG4gICAgYWRkb25VVUlEPzogc3RyaW5nLCBcbiAgICBibG9ja1JlbW90ZUVudHJ5Pzogc3RyaW5nIFxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1yZW1vdGUtbG9hZGVyLWVsZW1lbnQnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDwhLS08ZGl2ICN2YyBzdHlsZT1cImhlaWdodDogaW5oZXJpdDtcIj48L2Rpdj4tLT5cbiAgICBgLFxuICAgIHN0eWxlczogW2BcbiAgICAgICAgOmhvc3QgeyB3aWR0aDoxMDAlOyBoZWlnaHQ6IGluaGVyaXQ7IG92ZXJmbG93OiBpbmhlcml0OyB9XG4gICAgICAgIDpob3N0OjpuZy1kZWVwID4gKiB7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICBgXSxcbn0pXG5leHBvcnQgY2xhc3MgUGVwUmVtb3RlTG9hZGVyRWxlbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBvcHRpb25zOiBQZXBSZW1vdGVMb2FkZXJPcHRpb25zO1xuICAgIEBJbnB1dCgpIHByb3BzOiB7IFtwcm9wOiBzdHJpbmddOiB1bmtub3duIH07XG4gICAgQElucHV0KCkgZXZlbnRzOiB7IFtldmVudDogc3RyaW5nXTogKGV2ZW50OiBFdmVudCkgPT4gdm9pZCB9O1xuXG4gICAgQE91dHB1dCgpIGxvYWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gIG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gbnVsbDtcblxuICAgIHByaXZhdGUgX2VsZW1lbnROYW1lID0gJyc7XG4gICAgcHJpdmF0ZSBfYmxvY2tUeXBlID0gJyc7XG4gICAgcHJpdmF0ZSBfYWxyZWFkeUxvYWRlZCA9IGZhbHNlO1xuICAgIC8vIC8vIFRoaXMgaXMgZm9yIGRlYm91bmNlLlxuICAgIC8vIHByaXZhdGUgX2dldEJsb2NrUmVtb3RlTG9hZGVyT3B0aW9uc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJsb2NrUmVtb3RlTG9hZGVyT3B0aW9uc0RhdGE+KG51bGwpO1xuICAgIC8vIGdldCBnZXRCbG9ja1JlbW90ZUxvYWRlck9wdGlvbnNEZWJvdW5jZWRTdWJqZWN0JCgpOiBPYnNlcnZhYmxlPEJsb2NrUmVtb3RlTG9hZGVyT3B0aW9uc0RhdGE+IHtcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuX2dldEJsb2NrUmVtb3RlTG9hZGVyT3B0aW9uc1N1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShkZWJvdW5jZVRpbWUoMjUwKSk7XG4gICAgLy8gfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBlbDpFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHBlcEFkZG9uU2VydmljZTogUGVwQWRkb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlbW90ZUxvYWRlclNlcnZpY2U6IFBlcFJlbW90ZUxvYWRlclNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICAgKSB7IFxuXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwb3B1bGF0ZVByb3BzKCkge1xuICAgICAgICBmb3IgKGNvbnN0IHByb3AgaW4gdGhpcy5wcm9wcykge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50W3Byb3BdID0gdGhpcy5wcm9wc1twcm9wXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBFdmVudHMoKSB7XG4gICAgICAgIGZvciAoY29uc3QgZXZlbnQgaW4gdGhpcy5ldmVudHMpIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCB0aGlzLmV2ZW50c1tldmVudF0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBsb2FkT3B0aW9uc0Zyb21Sb3V0ZSgpIHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5yb3V0ZT8uc25hcHNob3QucGFyYW1zO1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5yb3V0ZT8uc25hcHNob3QuZGF0YTtcbiAgICAgICAgdGhpcy5fYmxvY2tUeXBlID0gZGF0YT8uYmxvY2tUeXBlIHx8ICdTZXR0aW5nc0Jsb2NrJztcblxuICAgICAgICBjb25zdCBzbHVnTmFtZSA9IHBhcmFtcz8uc2x1Z05hbWUgfHwgZGF0YT8uc2x1Z05hbWU7XG4gICAgICAgIGNvbnN0IGJsb2NrTmFtZSA9IHBhcmFtcz8uYmxvY2tOYW1lIHx8IGRhdGE/LmJsb2NrTmFtZTtcbiAgICAgICAgXG4gICAgICAgIGlmIChibG9ja05hbWU/Lmxlbmd0aCA+IDAgfHwgKHNsdWdOYW1lPy5sZW5ndGggPiAwICYmIHRoaXMuX2Jsb2NrVHlwZSA9PT0gJ1NldHRpbmdzQmxvY2snKSkge1xuICAgICAgICAgICAgY29uc3QgYWRkb25VVUlEID0gcGFyYW1zPy5hZGRvblVVSUQgfHwgZGF0YT8uYWRkb25VVUlEIHx8ICcnO1xuICAgICAgICAgICAgY29uc3QgYmxvY2tSZW1vdGVFbnRyeSA9IGRhdGE/LmJsb2NrUmVtb3RlRW50cnkgfHwgJyc7XG5cbiAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IGF3YWl0IHRoaXMucmVtb3RlTG9hZGVyU2VydmljZS5nZXRCbG9ja1JlbW90ZUxvYWRlck9wdGlvbnMoe1xuICAgICAgICAgICAgICAgIG5hbWU6IGJsb2NrTmFtZSxcbiAgICAgICAgICAgICAgICBzbHVnTmFtZSxcbiAgICAgICAgICAgICAgICBibG9ja1R5cGU6IHRoaXMuX2Jsb2NrVHlwZSxcbiAgICAgICAgICAgICAgICBhZGRvblVVSUQsXG4gICAgICAgICAgICAgICAgYmxvY2tSZW1vdGVFbnRyeVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGZpbGVOYW1lID0gYCR7dGhpcy5vcHRpb25zWydyZW1vdGVOYW1lJ119LmpzYDtcblxuICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guaW5kZXhPZignZGV2PXRydWUnKSA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnNbJ3JlbW90ZUVudHJ5J10gPSBgaHR0cDovL2xvY2FsaG9zdDo0NDAwLyR7ZmlsZU5hbWV9YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU2V0IHRoZSBkYXRhIGludG8gdGhlIHByb3BzIGNhdXNlIHRoaXMgY29tcG9uZW50IGlzIGxvYWRpbmcgZnJvbSB0aGUgcm91dGUuXG4gICAgICAgICAgICB0aGlzLnByb3BzID0gZGF0YTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZWxlbWVudCkgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMucG9wdWxhdGVQcm9wcygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5lbGVtZW50KSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmV2ZW50cykge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGV2ZW50IGluIHRoaXMuZXZlbnRzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LCB0aGlzLmV2ZW50c1tldmVudF0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWdub3JlXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBBRE8gMTAzNjY2MDogRml4IFJlYWN0IHRlYXJkb3duIHJhY2UgaW4gaG9zdGVkIHdlYi1jb21wb25lbnRzLlxuICAgICAgICAgICAgICAgIC8vIFRoZSBob3N0IChBbmd1bGFyKSBtYXkgZGVzdHJveS9yZW1vdmUgdGhlIGVsZW1lbnQgc3VidHJlZSB3aGlsZSB0aGUgcmVtb3RlIChSZWFjdCkgaXMgc3RpbGxcbiAgICAgICAgICAgICAgICAvLyB1bm1vdW50aW5nLCB3aGljaCBjYW4gc3VyZmFjZSBhcyBgTm90Rm91bmRFcnJvcjogRmFpbGVkIHRvIGV4ZWN1dGUgJ3JlbW92ZUNoaWxkJyBvbiAnTm9kZSdgLlxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSByZW1vdGUgZWxlbWVudCBleHBvc2VzIGBwZXBwZXJpVW5tb3VudCgpYCwgY2FsbCBpdCBoZXJlIHRvIGxldCBpdCBjbGVhbnVwIGJlZm9yZSBET00gcmVtb3ZhbC5cblxuICAgICAgICAgICAgICAgIGNvbnN0IGFueUVsID0gdGhpcy5lbGVtZW50IGFzIGFueTtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXliZVVubW91bnQgPSBhbnlFbD8ucGVwcGVyaVVubW91bnQ7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBtYXliZVVubW91bnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heWJlVW5tb3VudC5jYWxsKGFueUVsKTtcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgIC8vIGlnbm9yZVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTG9hZHMgdGhlIHJlbW90ZSBKUyBidW5kbGUgYXMgYSBzY3JpcHQgdGFnIGZvciB3ZWIgY29tcG9uZW50IHJlbW90ZXMuXG4gICAgICogSWYgdGhlIHNjcmlwdCBpcyBhbHJlYWR5IGxvYWRlZCwgcmVzb2x2ZXMgaW1tZWRpYXRlbHkuXG4gICAgICovXG4gICAgLy8gcHJpdmF0ZSBhc3luYyBsb2FkUmVtb3RlU2NyaXB0KHJlbW90ZUVudHJ5VXJsOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIC8vICAgICByZXR1cm4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgLy8gICAgICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihgc2NyaXB0W3NyYz1cIiR7cmVtb3RlRW50cnlVcmx9XCJdYCkpIHtcbiAgICAvLyAgICAgICAgICAgICAvLyBJZiBzY3JpcHQgaXMgYWxyZWFkeSBsb2FkZWQsIHRyeSB0byBnZXQgdGhlIG1vZHVsZVxuICAgIC8vICAgICAgICAgICAgIGltcG9ydChyZW1vdGVFbnRyeVVybCkudGhlbihtb2R1bGUgPT4ge1xuICAgIC8vICAgICAgICAgICAgICAgICBpZiAobW9kdWxlICYmIG1vZHVsZS5pbml0KSB7XG4gICAgLy8gICAgICAgICAgICAgICAgICAgICBtb2R1bGUuaW5pdCgpO1xuICAgIC8vICAgICAgICAgICAgICAgICB9XG4gICAgLy8gICAgICAgICAgICAgICAgIHJlc29sdmUobW9kdWxlKTtcbiAgICAvLyAgICAgICAgICAgICB9KS5jYXRjaChlcnIgPT4gcmVqZWN0KGVycikpO1xuICAgIC8vICAgICAgICAgICAgIHJldHVybjtcbiAgICAvLyAgICAgICAgIH1cbiAgICBcbiAgICAvLyAgICAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIC8vICAgICAgICAgc2NyaXB0LnR5cGUgPSAnbW9kdWxlJztcbiAgICAvLyAgICAgICAgIHNjcmlwdC5zcmMgPSByZW1vdGVFbnRyeVVybDtcbiAgICAgICAgICAgIFxuICAgIC8vICAgICAgICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+IHtcbiAgICAvLyAgICAgICAgICAgICAvLyBBZnRlciBzY3JpcHQgaXMgbG9hZGVkLCBkeW5hbWljYWxseSBpbXBvcnQgaXQgdG8gZ2V0IHRoZSBtb2R1bGVcbiAgICAvLyAgICAgICAgICAgICBpbXBvcnQocmVtb3RlRW50cnlVcmwpLnRoZW4obW9kdWxlID0+IHtcbiAgICAvLyAgICAgICAgICAgICAgICAgaWYgKG1vZHVsZSAmJiBtb2R1bGUuaW5pdCkge1xuICAgIC8vICAgICAgICAgICAgICAgICAgICAgbW9kdWxlLmluaXQoKTtcbiAgICAvLyAgICAgICAgICAgICAgICAgfVxuICAgIC8vICAgICAgICAgICAgICAgICByZXNvbHZlKG1vZHVsZSk7XG4gICAgLy8gICAgICAgICAgICAgfSkuY2F0Y2goZXJyID0+IHJlamVjdChlcnIpKTtcbiAgICAvLyAgICAgICAgIH07XG4gICAgICAgICAgICBcbiAgICAvLyAgICAgICAgIHNjcmlwdC5vbmVycm9yID0gKGVycikgPT4gcmVqZWN0KGVycik7XG4gICAgLy8gICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgLy8gICAgIH0pO1xuICAgIC8vIH1cblxuICAgIHByaXZhdGUgbG9hZEVsZW1lbnRGcm9tTW9kdWxlKCkge1xuXG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zKSB7XG4gICAgICAgICAgICAvLyB0aHJvdyBuZXcgRXJyb3IoJ05vIG9wdGlvbnMgc3VwcGxpZWQgdG8gdGhlIGNvbXBvbmVudC4nKTtcbiAgICAgICAgICAgIGNvbnNvbGUuaW5mbygnTm8gb3B0aW9ucyBzdXBwbGllZCB0byB0aGUgY29tcG9uZW50LicpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucz8uYWRkb25JZCAmJiAodGhpcy5vcHRpb25zLnR5cGUgPT09ICdtb2R1bGUnIHx8IHRoaXMub3B0aW9ucy50eXBlID09PSAnc2NyaXB0JykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsYXN0U2xhc2hJbmRleCA9IHRoaXMub3B0aW9ucy5yZW1vdGVFbnRyeT8ubGFzdEluZGV4T2YoJy8nKSB8fCAtMTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBpZiAobGFzdFNsYXNoSW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHB1YmxpY1BhdGggPSB0aGlzLm9wdGlvbnMucmVtb3RlRW50cnkuc3Vic3RyaW5nKDAsIGxhc3RTbGFzaEluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGVwQWRkb25TZXJ2aWNlLnNldEFkZG9uU3RhdGljRm9sZGVyKHB1YmxpY1BhdGgsIHRoaXMub3B0aW9ucy5hZGRvbklkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgICAgIC8vIHRoaXMubG9hZFJlbW90ZVNjcmlwdCh0aGlzLm9wdGlvbnNbJ3JlbW90ZUVudHJ5J10pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgbG9hZFJlbW90ZU1vZHVsZSh0aGlzLm9wdGlvbnMpLnRoZW4oKG0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50TmFtZSA9IHRoaXMub3B0aW9ucy5lbGVtZW50TmFtZTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQodGhpcy5fZWxlbWVudE5hbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMucG9wdWxhdGVQcm9wcygpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0dXBFdmVudHMoKTtcbiAgICBcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgdGhpcy5lbGVtZW50KTtcbiAgICBcbiAgICAgICAgICAgICAgICAvLyBGaXggaW50ZXJuYWwgcm91dGluZyBidWcuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2Jsb2NrVHlwZSA9PT0gJ1NldHRpbmdzQmxvY2snKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGVwQWRkb25TZXJ2aWNlLmNvbm5lY3RJbnRlcm5hbFJvdXRlcih0aGlzLl9lbGVtZW50TmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgIFxuICAgICAgICAgICAgICAgIHRoaXMubG9hZC5lbWl0KCk7XG4gICAgICAgICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gaWYgKCF0aGlzLmVsZW1lbnQpIHsgbWF5YmUgdGhlIGxvYWQgb2YgdGhlIGVsZW1lbnQgaXMgdG9vIGxvbmcgc28gY2hhbmdlIHRvIGZsYWcuXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2FscmVhZHlMb2FkZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hbHJlYWR5TG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgb3B0aW9ucyBpcyBub3Qgc3VwcGxpZWQgdGhlbiB3ZSBuZWVkIHRvIGdldCBpdCBmcm9tIHRoZSByb3V0ZS5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMub3B0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRPcHRpb25zRnJvbVJvdXRlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRFbGVtZW50RnJvbU1vZHVsZSgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRFbGVtZW50RnJvbU1vZHVsZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG59Il19
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWxvYWRlci1lbGVtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvcmVtb3RlLWxvYWRlci9yZW1vdGUtbG9hZGVyLWVsZW1lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQXdCLFFBQVEsRUFBRSxNQUFNLEVBQTBDLE1BQU0sZUFBZSxDQUFDO0FBRTdLLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7OztBQTBCekUsTUFBTSxPQUFPLCtCQUErQjtJQVl4QywyQkFBMkI7SUFDM0IseUdBQXlHO0lBQ3pHLGlHQUFpRztJQUNqRyw4RkFBOEY7SUFDOUYsSUFBSTtJQUVKLFlBQ1ksUUFBbUIsRUFDbkIsRUFBYSxFQUNiLGVBQWdDLEVBQ2hDLG1CQUEyQyxFQUMvQixLQUFxQjtRQUpqQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQVc7UUFDYixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF3QjtRQUMvQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQWxCbkMsU0FBSSxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXhELFlBQU8sR0FBZ0IsSUFBSSxDQUFDO1FBRXBCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7SUFlL0IsQ0FBQztJQUVPLGFBQWE7UUFDakIsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6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LENBQUMsR0FBRyxFQUFFO3dCQUNsQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztvQkFDakMsQ0FBQyxDQUFDLENBQUM7aUJBQ047cUJBQU07b0JBQ0gsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7aUJBQ2hDO2FBQ0o7U0FDSjtRQUNELE9BQU0sS0FBSyxFQUFFO1lBQ1QsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN4QjtJQUNMLENBQUM7OzRIQTNPUSwrQkFBK0I7Z0hBQS9CLCtCQUErQixtTEFWOUI7O0tBRVQ7MkZBUVEsK0JBQStCO2tCQVozQyxTQUFTOytCQUNJLDJCQUEyQixZQUMzQjs7S0FFVDs7MEJBK0JJLFFBQVE7NENBdEJKLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVJLElBQUk7c0JBQWIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBPdXRwdXQsIFJlbmRlcmVyMiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBsb2FkUmVtb3RlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXItYXJjaGl0ZWN0cy9tb2R1bGUtZmVkZXJhdGlvbic7XG5pbXBvcnQgeyBQZXBBZGRvblNlcnZpY2UgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5pbXBvcnQgeyBQZXBSZW1vdGVMb2FkZXJPcHRpb25zIH0gZnJvbSAnLi9yZW1vdGUtbG9hZGVyLm1vZGVsJztcbmltcG9ydCB7IFBlcFJlbW90ZUxvYWRlclNlcnZpY2UgfSBmcm9tICcuL3JlbW90ZS1sb2FkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMnO1xuXG5pbnRlcmZhY2UgQmxvY2tSZW1vdGVMb2FkZXJPcHRpb25zRGF0YSB7IFxuICAgIG5hbWU/OiBzdHJpbmcsIFxuICAgIHNsdWdOYW1lPzogc3RyaW5nLCBcbiAgICBibG9ja1R5cGU/OiBzdHJpbmcsIFxuICAgIGFkZG9uVVVJRD86IHN0cmluZywgXG4gICAgYmxvY2tSZW1vdGVFbnRyeT86IHN0cmluZyBcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwZXAtcmVtb3RlLWxvYWRlci1lbGVtZW50JyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8IS0tPGRpdiAjdmMgc3R5bGU9XCJoZWlnaHQ6IGluaGVyaXQ7XCI+PC9kaXY+LS0+XG4gICAgYCxcbiAgICBzdHlsZXM6IFtgXG4gICAgICAgIDpob3N0IHsgd2lkdGg6MTAwJTsgaGVpZ2h0OiBpbmhlcml0OyBvdmVyZmxvdzogaW5oZXJpdDsgfVxuICAgICAgICA6aG9zdDo6bmctZGVlcCA+ICoge1xuICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgYF0sXG59KVxuZXhwb3J0IGNsYXNzIFBlcFJlbW90ZUxvYWRlckVsZW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgb3B0aW9uczogUGVwUmVtb3RlTG9hZGVyT3B0aW9ucztcbiAgICBASW5wdXQoKSBwcm9wczogeyBbcHJvcDogc3RyaW5nXTogdW5rbm93biB9O1xuICAgIEBJbnB1dCgpIGV2ZW50czogeyBbZXZlbnQ6IHN0cmluZ106IChldmVudDogRXZlbnQpID0+IHZvaWQgfTtcblxuICAgIEBPdXRwdXQoKSBsb2FkOiBFdmVudEVtaXR0ZXI8YW55PiA9ICBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudCA9IG51bGw7XG5cbiAgICBwcml2YXRlIF9lbGVtZW50TmFtZSA9ICcnO1xuICAgIHByaXZhdGUgX2Jsb2NrVHlwZSA9ICcnO1xuICAgIHByaXZhdGUgX2FscmVhZHlMb2FkZWQgPSBmYWxzZTtcbiAgICAvLyAvLyBUaGlzIGlzIGZvciBkZWJvdW5jZS5cbiAgICAvLyBwcml2YXRlIF9nZXRCbG9ja1JlbW90ZUxvYWRlck9wdGlvbnNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxCbG9ja1JlbW90ZUxvYWRlck9wdGlvbnNEYXRhPihudWxsKTtcbiAgICAvLyBnZXQgZ2V0QmxvY2tSZW1vdGVMb2FkZXJPcHRpb25zRGVib3VuY2VkU3ViamVjdCQoKTogT2JzZXJ2YWJsZTxCbG9ja1JlbW90ZUxvYWRlck9wdGlvbnNEYXRhPiB7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLl9nZXRCbG9ja1JlbW90ZUxvYWRlck9wdGlvbnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGVib3VuY2VUaW1lKDI1MCkpO1xuICAgIC8vIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgZWw6RWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBwZXBBZGRvblNlcnZpY2U6IFBlcEFkZG9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZW1vdGVMb2FkZXJTZXJ2aWNlOiBQZXBSZW1vdGVMb2FkZXJTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICAgICkgeyBcblxuICAgIH1cblxuICAgIHByaXZhdGUgcG9wdWxhdGVQcm9wcygpIHtcbiAgICAgICAgZm9yIChjb25zdCBwcm9wIGluIHRoaXMucHJvcHMpIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFtwcm9wXSA9IHRoaXMucHJvcHNbcHJvcF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwRXZlbnRzKCkge1xuICAgICAgICBmb3IgKGNvbnN0IGV2ZW50IGluIHRoaXMuZXZlbnRzKSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgdGhpcy5ldmVudHNbZXZlbnRdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgbG9hZE9wdGlvbnNGcm9tUm91dGUoKSB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMucm91dGU/LnNuYXBzaG90LnBhcmFtcztcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMucm91dGU/LnNuYXBzaG90LmRhdGE7XG4gICAgICAgIHRoaXMuX2Jsb2NrVHlwZSA9IGRhdGE/LmJsb2NrVHlwZSB8fCAnU2V0dGluZ3NCbG9jayc7XG5cbiAgICAgICAgY29uc3Qgc2x1Z05hbWUgPSBwYXJhbXM/LnNsdWdOYW1lIHx8IGRhdGE/LnNsdWdOYW1lO1xuICAgICAgICBjb25zdCBibG9ja05hbWUgPSBwYXJhbXM/LmJsb2NrTmFtZSB8fCBkYXRhPy5ibG9ja05hbWU7XG4gICAgICAgIFxuICAgICAgICBpZiAoYmxvY2tOYW1lPy5sZW5ndGggPiAwIHx8IChzbHVnTmFtZT8ubGVuZ3RoID4gMCAmJiB0aGlzLl9ibG9ja1R5cGUgPT09ICdTZXR0aW5nc0Jsb2NrJykpIHtcbiAgICAgICAgICAgIGNvbnN0IGFkZG9uVVVJRCA9IHBhcmFtcz8uYWRkb25VVUlEIHx8IGRhdGE/LmFkZG9uVVVJRCB8fCAnJztcbiAgICAgICAgICAgIGNvbnN0IGJsb2NrUmVtb3RlRW50cnkgPSBkYXRhPy5ibG9ja1JlbW90ZUVudHJ5IHx8ICcnO1xuXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSBhd2FpdCB0aGlzLnJlbW90ZUxvYWRlclNlcnZpY2UuZ2V0QmxvY2tSZW1vdGVMb2FkZXJPcHRpb25zKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBibG9ja05hbWUsXG4gICAgICAgICAgICAgICAgc2x1Z05hbWUsXG4gICAgICAgICAgICAgICAgYmxvY2tUeXBlOiB0aGlzLl9ibG9ja1R5cGUsXG4gICAgICAgICAgICAgICAgYWRkb25VVUlELFxuICAgICAgICAgICAgICAgIGJsb2NrUmVtb3RlRW50cnlcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGAke3RoaXMub3B0aW9uc1sncmVtb3RlTmFtZSddfS5qc2A7XG5cbiAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoLmluZGV4T2YoJ2Rldj10cnVlJykgPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zWydyZW1vdGVFbnRyeSddID0gYGh0dHA6Ly9sb2NhbGhvc3Q6NDQwMC8ke2ZpbGVOYW1lfWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNldCB0aGUgZGF0YSBpbnRvIHRoZSBwcm9wcyBjYXVzZSB0aGlzIGNvbXBvbmVudCBpcyBsb2FkaW5nIGZyb20gdGhlIHJvdXRlLlxuICAgICAgICAgICAgdGhpcy5wcm9wcyA9IGRhdGE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmVsZW1lbnQpIHJldHVybjtcblxuICAgICAgICB0aGlzLnBvcHVsYXRlUHJvcHMoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5ldmVudHMpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBldmVudCBpbiB0aGlzLmV2ZW50cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudCwgdGhpcy5ldmVudHNbZXZlbnRdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlnbm9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gQURPIDEwMzY2NjA6IEZpeCBSZWFjdCB0ZWFyZG93biByYWNlIGluIGhvc3RlZCB3ZWItY29tcG9uZW50cy5cbiAgICAgICAgICAgICAgICAvLyBUaGUgaG9zdCAoQW5ndWxhcikgbWF5IGRlc3Ryb3kvcmVtb3ZlIHRoZSBlbGVtZW50IHN1YnRyZWUgd2hpbGUgdGhlIHJlbW90ZSAoUmVhY3QpIGlzIHN0aWxsXG4gICAgICAgICAgICAgICAgLy8gdW5tb3VudGluZywgd2hpY2ggY2FuIHN1cmZhY2UgYXMgYE5vdEZvdW5kRXJyb3I6IEZhaWxlZCB0byBleGVjdXRlICdyZW1vdmVDaGlsZCcgb24gJ05vZGUnYC5cbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgcmVtb3RlIGVsZW1lbnQgZXhwb3NlcyBgcGVwcGVyaVVubW91bnQoKWAsIGNhbGwgaXQgaGVyZSB0byBsZXQgaXQgY2xlYW51cCBiZWZvcmUgRE9NIHJlbW92YWwuXG5cbiAgICAgICAgICAgICAgICBjb25zdCBlbFRvVW5tb3VudCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICBsZXQgcGFya2VkQ29udGFpbmVyOiBIVE1MRGl2RWxlbWVudCA9IG51bGw7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xlYW51cCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJrZWRDb250YWluZXI/LnBhcmVudE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJrZWRDb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChwYXJrZWRDb250YWluZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlnbm9yZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIC8vIERldGFjaCB0aGUgcmVtb3RlIGVsZW1lbnQgc3VidHJlZSBzbyBBbmd1bGFyIGRlc3Ryb3lpbmcgdGhpcyBob3N0IHdvbid0IHJlbW92ZSBpdCB3aGlsZSBSZWFjdCBpcyBzdGlsbCB1bm1vdW50aW5nLlxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnICYmIGVsVG9Vbm1vdW50Py5wYXJlbnROb2RlICYmIGRvY3VtZW50LmJvZHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmtlZENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFya2VkQ29udGFpbmVyLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHBhcmtlZENvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJrZWRDb250YWluZXIuYXBwZW5kQ2hpbGQoZWxUb1VubW91bnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlnbm9yZVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IGFueUVsID0gZWxUb1VubW91bnQgYXMgYW55O1xuICAgICAgICAgICAgICAgIGNvbnN0IG1heWJlVW5tb3VudCA9IGFueUVsPy5wZXBwZXJpVW5tb3VudDtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG1heWJlVW5tb3VudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzID0gbWF5YmVVbm1vdW50LmNhbGwoYW55RWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAmJiB0eXBlb2YgcmVzLnRoZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuZmluYWxseSgoKSA9PiBjbGVhbnVwKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhbnVwKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWdub3JlXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhbnVwKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjbGVhbnVwKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgLy8gaWdub3JlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuZWxlbWVudCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMb2FkcyB0aGUgcmVtb3RlIEpTIGJ1bmRsZSBhcyBhIHNjcmlwdCB0YWcgZm9yIHdlYiBjb21wb25lbnQgcmVtb3Rlcy5cbiAgICAgKiBJZiB0aGUgc2NyaXB0IGlzIGFscmVhZHkgbG9hZGVkLCByZXNvbHZlcyBpbW1lZGlhdGVseS5cbiAgICAgKi9cbiAgICAvLyBwcml2YXRlIGFzeW5jIGxvYWRSZW1vdGVTY3JpcHQocmVtb3RlRW50cnlVcmw6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgLy8gICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAvLyAgICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBzY3JpcHRbc3JjPVwiJHtyZW1vdGVFbnRyeVVybH1cIl1gKSkge1xuICAgIC8vICAgICAgICAgICAgIC8vIElmIHNjcmlwdCBpcyBhbHJlYWR5IGxvYWRlZCwgdHJ5IHRvIGdldCB0aGUgbW9kdWxlXG4gICAgLy8gICAgICAgICAgICAgaW1wb3J0KHJlbW90ZUVudHJ5VXJsKS50aGVuKG1vZHVsZSA9PiB7XG4gICAgLy8gICAgICAgICAgICAgICAgIGlmIChtb2R1bGUgJiYgbW9kdWxlLmluaXQpIHtcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgIG1vZHVsZS5pbml0KCk7XG4gICAgLy8gICAgICAgICAgICAgICAgIH1cbiAgICAvLyAgICAgICAgICAgICAgICAgcmVzb2x2ZShtb2R1bGUpO1xuICAgIC8vICAgICAgICAgICAgIH0pLmNhdGNoKGVyciA9PiByZWplY3QoZXJyKSk7XG4gICAgLy8gICAgICAgICAgICAgcmV0dXJuO1xuICAgIC8vICAgICAgICAgfVxuICAgIFxuICAgIC8vICAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgLy8gICAgICAgICBzY3JpcHQudHlwZSA9ICdtb2R1bGUnO1xuICAgIC8vICAgICAgICAgc2NyaXB0LnNyYyA9IHJlbW90ZUVudHJ5VXJsO1xuICAgICAgICAgICAgXG4gICAgLy8gICAgICAgICBzY3JpcHQub25sb2FkID0gKCkgPT4ge1xuICAgIC8vICAgICAgICAgICAgIC8vIEFmdGVyIHNjcmlwdCBpcyBsb2FkZWQsIGR5bmFtaWNhbGx5IGltcG9ydCBpdCB0byBnZXQgdGhlIG1vZHVsZVxuICAgIC8vICAgICAgICAgICAgIGltcG9ydChyZW1vdGVFbnRyeVVybCkudGhlbihtb2R1bGUgPT4ge1xuICAgIC8vICAgICAgICAgICAgICAgICBpZiAobW9kdWxlICYmIG1vZHVsZS5pbml0KSB7XG4gICAgLy8gICAgICAgICAgICAgICAgICAgICBtb2R1bGUuaW5pdCgpO1xuICAgIC8vICAgICAgICAgICAgICAgICB9XG4gICAgLy8gICAgICAgICAgICAgICAgIHJlc29sdmUobW9kdWxlKTtcbiAgICAvLyAgICAgICAgICAgICB9KS5jYXRjaChlcnIgPT4gcmVqZWN0KGVycikpO1xuICAgIC8vICAgICAgICAgfTtcbiAgICAgICAgICAgIFxuICAgIC8vICAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSAoZXJyKSA9PiByZWplY3QoZXJyKTtcbiAgICAvLyAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICAvLyAgICAgfSk7XG4gICAgLy8gfVxuXG4gICAgcHJpdmF0ZSBsb2FkRWxlbWVudEZyb21Nb2R1bGUoKSB7XG5cbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMpIHtcbiAgICAgICAgICAgIC8vIHRocm93IG5ldyBFcnJvcignTm8gb3B0aW9ucyBzdXBwbGllZCB0byB0aGUgY29tcG9uZW50LicpO1xuICAgICAgICAgICAgY29uc29sZS5pbmZvKCdObyBvcHRpb25zIHN1cHBsaWVkIHRvIHRoZSBjb21wb25lbnQuJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zPy5hZGRvbklkICYmICh0aGlzLm9wdGlvbnMudHlwZSA9PT0gJ21vZHVsZScgfHwgdGhpcy5vcHRpb25zLnR5cGUgPT09ICdzY3JpcHQnKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RTbGFzaEluZGV4ID0gdGhpcy5vcHRpb25zLnJlbW90ZUVudHJ5Py5sYXN0SW5kZXhPZignLycpIHx8IC0xO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIGlmIChsYXN0U2xhc2hJbmRleCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHVibGljUGF0aCA9IHRoaXMub3B0aW9ucy5yZW1vdGVFbnRyeS5zdWJzdHJpbmcoMCwgbGFzdFNsYXNoSW5kZXggKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wZXBBZGRvblNlcnZpY2Uuc2V0QWRkb25TdGF0aWNGb2xkZXIocHVibGljUGF0aCwgdGhpcy5vcHRpb25zLmFkZG9uSWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICAgICAgLy8gdGhpcy5sb2FkUmVtb3RlU2NyaXB0KHRoaXMub3B0aW9uc1sncmVtb3RlRW50cnknXSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBsb2FkUmVtb3RlTW9kdWxlKHRoaXMub3B0aW9ucykudGhlbigobSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnROYW1lID0gdGhpcy5vcHRpb25zLmVsZW1lbnROYW1lO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCh0aGlzLl9lbGVtZW50TmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3B1bGF0ZVByb3BzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXR1cEV2ZW50cygpO1xuICAgIFxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLmVsZW1lbnQpO1xuICAgIFxuICAgICAgICAgICAgICAgIC8vIEZpeCBpbnRlcm5hbCByb3V0aW5nIGJ1Zy5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fYmxvY2tUeXBlID09PSAnU2V0dGluZ3NCbG9jaycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wZXBBZGRvblNlcnZpY2UuY29ubmVjdEludGVybmFsUm91dGVyKHRoaXMuX2VsZW1lbnROYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkLmVtaXQoKTtcbiAgICAgICAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBpZiAoIXRoaXMuZWxlbWVudCkgeyBtYXliZSB0aGUgbG9hZCBvZiB0aGUgZWxlbWVudCBpcyB0b28gbG9uZyBzbyBjaGFuZ2UgdG8gZmxhZy5cbiAgICAgICAgICAgIGlmICghdGhpcy5fYWxyZWFkeUxvYWRlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FscmVhZHlMb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBvcHRpb25zIGlzIG5vdCBzdXBwbGllZCB0aGVuIHdlIG5lZWQgdG8gZ2V0IGl0IGZyb20gdGhlIHJvdXRlLlxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5vcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZE9wdGlvbnNGcm9tUm91dGUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZEVsZW1lbnRGcm9tTW9kdWxlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZEVsZW1lbnRGcm9tTW9kdWxlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbn0iXX0=