@resolveio/client-lib-core 1.0.2 → 1.0.4

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.
@@ -41,7 +41,9 @@ import { Auth365Component } from './auth/auth365.component';
41
41
  import { UserSettingsModule } from './user-settings/user-settings.module';
42
42
  import { HomeComponent } from './home/home.component';
43
43
  import { CollapseTableModule } from './widgets/collapse-table/collapse-table.module';
44
+ import { DialogSelectWithButtonsURLContent } from './widgets/dialog/dialog.select-with-buttons-url.content';
44
45
  import { DialogSelectArrayObjsContent } from './widgets/dialog/dialog.select-array-objs.content';
46
+ import { DialogSelectArrayContent } from './widgets/dialog/dialog.select-array.content';
45
47
  import * as i0 from "@angular/core";
46
48
  import * as i1 from "ngx-toastr";
47
49
  import * as i2 from "ngx-localstorage";
@@ -66,7 +68,9 @@ CoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13
66
68
  DialogSelectDataLabelsContent,
67
69
  DialogLoginContent,
68
70
  DialogRegisterContent,
69
- DialogSelectArrayObjsContent], imports: [SharedModule,
71
+ DialogSelectWithButtonsURLContent,
72
+ DialogSelectArrayObjsContent,
73
+ DialogSelectArrayContent], imports: [SharedModule,
70
74
  HttpClientModule,
71
75
  NgbModule, i1.ToastrModule, i2.NgxLocalStorageModule, UserSettingsModule,
72
76
  BrowserAnimationsModule,
@@ -143,7 +147,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
143
147
  DialogSelectDataLabelsContent,
144
148
  DialogLoginContent,
145
149
  DialogRegisterContent,
146
- DialogSelectArrayObjsContent
150
+ DialogSelectWithButtonsURLContent,
151
+ DialogSelectArrayObjsContent,
152
+ DialogSelectArrayContent
147
153
  ],
148
154
  providers: [
149
155
  CoreService,
@@ -177,4 +183,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
177
183
  ]
178
184
  }]
179
185
  }] });
180
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVB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QXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLHFCQUFxQjtxQkFDeEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGVBQWU7cUJBQ2xCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVDb21wb25lbnQgfSBmcm9tICcuL2NvcmUuY29tcG9uZW50JztcbmltcG9ydCB7IEFjY291bnRNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vYWNjb3VudC1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU29ja2V0TWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL3NvY2tldC1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSAnbmd4LWRldmljZS1kZXRlY3Rvcic7XG5pbXBvcnQgeyBOZ2JNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBOYXZiYXJNYWluQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL25hdmJhci1tYWluL25hdmJhci1tYWluLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZiYXJNb2R1bGVDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvbmF2YmFyLW1vZHVsZS9uYXZiYXItbW9kdWxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2dnZXJDb21wb25lbnQgfSBmcm9tICcuL2xvZ2dlci9sb2dnZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvcmVTZXJ2aWNlIH0gZnJvbSAnLi9jb3JlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhHdWFyZCB9IGZyb20gJy4vYXV0aC9hdXRoLWd1YXJkLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FuRGVhY3RpdmF0ZUd1YXJkIH0gZnJvbSAnLi9hdXRoL2Nhbi1kZWFjdGl2YXRlLWd1YXJkLnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuL3V0aWwvdmFsaWRhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4vYXV0aC9hdXRoLXBlcm1pc3Npb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgV2luZG93UmVmU2VydmljZSB9IGZyb20gJy4vdXRpbC93aW5kb3cuc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdHJNb2R1bGUgfSBmcm9tICduZ3gtdG9hc3RyJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4vd2lkZ2V0cy9hbGVydC9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7IEF3c1NlcnZpY2UgfSBmcm9tICcuL3V0aWwvYXdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgU29ja2V0U2VydmljZSB9IGZyb20gJy4vc29ja2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9rZW5NYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vdG9rZW4tbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IE5neExvY2FsU3RvcmFnZU1vZHVsZSB9IGZyb20gJ25neC1sb2NhbHN0b3JhZ2UnO1xuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XG5pbXBvcnQgeyBPZmZsaW5lTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL29mZmxpbmUtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IEZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmUvZm9jdXMnO1xuaW1wb3J0IHsgRm9yZ290UGFzc3dvcmRDb21wb25lbnQgfSBmcm9tICcuL2F1dGgvZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbnJvbGxDb21wb25lbnQgfSBmcm9tICcuL2F1dGgvZW5yb2xsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaWFsb2dDb25maXJtQ29udGVudCB9IGZyb20gJy4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLmNvbmZpcm0uY29udGVudCc7XG5pbXBvcnQgeyBEaWFsb2dFcnJvckNvbnRlbnQgfSBmcm9tICcuL3dpZGdldHMvZGlhbG9nL2RpYWxvZy5lcnJvci5jb250ZW50JztcbmltcG9ydCB7IERpYWxvZ0lucHV0Q29udGVudCB9IGZyb20gJy4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLmlucHV0LmNvbnRlbnQnO1xuaW1wb3J0IHsgRGlhbG9nTm90aWZ5Q29udGVudCB9IGZyb20gJy4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLm5vdGlmeS5jb250ZW50JztcbmltcG9ydCB7IERpYWxvZ1NlbGVjdERhdGVUaW1lQ29udGVudCB9IGZyb20gJy4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLnNlbGVjdC1kYXRldGltZS5jb250ZW50JztcbmltcG9ydCB7IERpYWxvZ1NlbGVjdERhdGFMYWJlbHNDb250ZW50IH0gZnJvbSAnLi93aWRnZXRzL2RpYWxvZy9kaWFsb2cuc2VsZWN0LWRhdGEtbGFiZWxzLmNvbnRlbnQnO1xuaW1wb3J0IHsgRGlhbG9nTG9naW5Db250ZW50IH0gZnJvbSAnLi93aWRnZXRzL2RpYWxvZy9kaWFsb2cubG9naW4uY29udGVudCc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgU2Nyb2xsRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmUvc2Nyb2xsJztcbmltcG9ydCB7IERpYWxvZ1JlZ2lzdGVyQ29udGVudCB9IGZyb20gJy4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLnJlZ2lzdGVyLmNvbnRlbnQnO1xuaW1wb3J0IHsgQXV0aDM2NUNvbXBvbmVudCB9IGZyb20gJy4vYXV0aC9hdXRoMzY1LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVc2VyU2V0dGluZ3NNb2R1bGUgfSBmcm9tICcuL3VzZXItc2V0dGluZ3MvdXNlci1zZXR0aW5ncy5tb2R1bGUnO1xuaW1wb3J0IHsgSG9tZUNvbXBvbmVudCB9IGZyb20gJy4vaG9tZS9ob21lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2xsYXBzZVRhYmxlTW9kdWxlIH0gZnJvbSAnLi93aWRnZXRzL2NvbGxhcHNlLXRhYmxlL2NvbGxhcHNlLXRhYmxlLm1vZHVsZSc7XG5pbXBvcnQgeyBEaWFsb2dTZWxlY3RBcnJheU9ianNDb250ZW50IH0gZnJvbSAnLi93aWRnZXRzL2RpYWxvZy9kaWFsb2cuc2VsZWN0LWFycmF5LW9ianMuY29udGVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBTaGFyZWRNb2R1bGUsXG4gICAgICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgICAgIE5nYk1vZHVsZSxcbiAgICAgICAgVG9hc3RyTW9kdWxlLmZvclJvb3QoKSxcbiAgICAgICAgTmd4TG9jYWxTdG9yYWdlTW9kdWxlLmZvclJvb3Qoe1xuICAgICAgICAgICAgcHJlZml4OiAnUmVzb2x2ZUlPJ1xuICAgICAgICB9KSxcbiAgICAgICAgVXNlclNldHRpbmdzTW9kdWxlLFxuICAgICAgICBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSxcbiAgICAgICAgQ29sbGFwc2VUYWJsZU1vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIENvcmVDb21wb25lbnQsXG4gICAgICAgIEhvbWVDb21wb25lbnQsXG4gICAgICAgIExvZ2dlckNvbXBvbmVudCxcbiAgICAgICAgTmF2YmFyTWFpbkNvbXBvbmVudCxcbiAgICAgICAgTmF2YmFyTW9kdWxlQ29tcG9uZW50LFxuICAgICAgICBGb3Jnb3RQYXNzd29yZENvbXBvbmVudCxcbiAgICAgICAgRW5yb2xsQ29tcG9uZW50LFxuICAgICAgICBBdXRoMzY1Q29tcG9uZW50LFxuICAgICAgICBGb2N1c0RpcmVjdGl2ZSxcbiAgICAgICAgU2Nyb2xsRGlyZWN0aXZlLFxuICAgICAgICBEaWFsb2dDb25maXJtQ29udGVudCxcbiAgICAgICAgRGlhbG9nRXJyb3JDb250ZW50LFxuICAgICAgICBEaWFsb2dJbnB1dENvbnRlbnQsXG4gICAgICAgIERpYWxvZ05vdGlmeUNvbnRlbnQsXG4gICAgICAgIERpYWxvZ1NlbGVjdERhdGVUaW1lQ29udGVudCxcbiAgICAgICAgRGlhbG9nU2VsZWN0RGF0YUxhYmVsc0NvbnRlbnQsXG4gICAgICAgIERpYWxvZ0xvZ2luQ29udGVudCxcbiAgICAgICAgRGlhbG9nUmVnaXN0ZXJDb250ZW50LFxuICAgICAgICBEaWFsb2dTZWxlY3RBcnJheU9ianNDb250ZW50XG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgQ29yZVNlcnZpY2UsXG4gICAgICAgIEF1dGhTZXJ2aWNlLFxuICAgICAgICBBdXRoR3VhcmQsXG4gICAgICAgIENhbkRlYWN0aXZhdGVHdWFyZCxcbiAgICAgICAgRGlhbG9nU2VydmljZSxcbiAgICAgICAgVmFsaWRhdGlvblNlcnZpY2UsXG4gICAgICAgIEF3c1NlcnZpY2UsXG4gICAgICAgIEF1dGhQZXJtaXNzaW9uU2VydmljZSxcbiAgICAgICAgV2luZG93UmVmU2VydmljZSxcbiAgICAgICAgQWxlcnRTZXJ2aWNlLFxuICAgICAgICBTb2NrZXRTZXJ2aWNlLFxuICAgICAgICBTb2NrZXRNYW5hZ2VyU2VydmljZSxcbiAgICAgICAgVG9rZW5NYW5hZ2VyU2VydmljZSxcbiAgICAgICAgQWNjb3VudE1hbmFnZXJTZXJ2aWNlLFxuICAgICAgICBPZmZsaW5lTWFuYWdlclNlcnZpY2UsXG4gICAgICAgIERldmljZURldGVjdG9yU2VydmljZVxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBDb3JlQ29tcG9uZW50LFxuICAgICAgICBIb21lQ29tcG9uZW50LFxuICAgICAgICBMb2dnZXJDb21wb25lbnQsXG4gICAgICAgIE5hdmJhck1haW5Db21wb25lbnQsXG4gICAgICAgIE5hdmJhck1vZHVsZUNvbXBvbmVudCxcbiAgICAgICAgRm9yZ290UGFzc3dvcmRDb21wb25lbnQsXG4gICAgICAgIEVucm9sbENvbXBvbmVudCxcbiAgICAgICAgQXV0aDM2NUNvbXBvbmVudCxcbiAgICAgICAgRm9jdXNEaXJlY3RpdmUsXG4gICAgICAgIFNjcm9sbERpcmVjdGl2ZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQ29yZU1vZHVsZSB7IH1cbiJdfQ==
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVB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WCxTQUFTO3dCQUNULGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLFVBQVU7d0JBQ1YscUJBQXFCO3dCQUNyQixnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLHFCQUFxQjtxQkFDeEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQix1QkFBdUI7d0JBQ3ZCLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGVBQWU7cUJBQ2xCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVDb21wb25lbnQgfSBmcm9tICcuL2NvcmUuY29tcG9uZW50JztcbmltcG9ydCB7IEFjY291bnRNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vYWNjb3VudC1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU29ja2V0TWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL3NvY2tldC1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSAnbmd4LWRldmljZS1kZXRlY3Rvcic7XG5pbXBvcnQgeyBOZ2JNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBOYXZiYXJNYWluQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzL25hdmJhci1tYWluL25hdmJhci1tYWluLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZiYXJNb2R1bGVDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldHMvbmF2YmFyLW1vZHVsZS9uYXZiYXItbW9kdWxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2dnZXJDb21wb25lbnQgfSBmcm9tICcuL2xvZ2dlci9sb2dnZXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvcmVTZXJ2aWNlIH0gZnJvbSAnLi9jb3JlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhHdWFyZCB9IGZyb20gJy4vYXV0aC9hdXRoLWd1YXJkLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FuRGVhY3RpdmF0ZUd1YXJkIH0gZnJvbSAnLi9hdXRoL2Nhbi1kZWFjdGl2YXRlLWd1YXJkLnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuL3V0aWwvdmFsaWRhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4vYXV0aC9hdXRoLXBlcm1pc3Npb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgV2luZG93UmVmU2VydmljZSB9IGZyb20gJy4vdXRpbC93aW5kb3cuc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdHJNb2R1bGUgfSBmcm9tICduZ3gtdG9hc3RyJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4vd2lkZ2V0cy9hbGVydC9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7IEF3c1NlcnZpY2UgfSBmcm9tICcuL3V0aWwvYXdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgU29ja2V0U2VydmljZSB9IGZyb20gJy4vc29ja2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9rZW5NYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vdG9rZW4tbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IE5neExvY2FsU3RvcmFnZU1vZHVsZSB9IGZyb20gJ25neC1sb2NhbHN0b3JhZ2UnO1xuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XG5pbXBvcnQgeyBPZmZsaW5lTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL29mZmxpbmUtbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IEZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmUvZm9jdXMnO1xuaW1wb3J0IHsgRm9yZ290UGFzc3dvcmRDb21wb25lbnQgfSBmcm9tICcuL2F1dGgvZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbnJvbGxDb21wb25lbnQgfSBmcm9tICcuL2F1dGgvZW5yb2xsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaWFsb2dDb25maXJtQ29udGVudCB9IGZyb20gJy4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLmNvbmZpcm0uY29udGVudCc7XG5pbXBvcnQgeyBEaWFsb2dFcnJvckNvbnRlbnQgfSBmcm9tICcuL3dpZGdldHMvZGlhbG9nL2RpYWxvZy5lcnJvci5jb250ZW50JztcbmltcG9ydCB7IERpYWxvZ0lucHV0Q29udGVudCB9IGZyb20gJy4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLmlucHV0LmNvbnRlbnQnO1xuaW1wb3J0IHsgRGlhbG9nTm90aWZ5Q29udGVudCB9IGZyb20gJy4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLm5vdGlmeS5jb250ZW50JztcbmltcG9ydCB7IERpYWxvZ1NlbGVjdERhdGVUaW1lQ29udGVudCB9IGZyb20gJy4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLnNlbGVjdC1kYXRldGltZS5jb250ZW50JztcbmltcG9ydCB7IERpYWxvZ1NlbGVjdERhdGFMYWJlbHNDb250ZW50IH0gZnJvbSAnLi93aWRnZXRzL2RpYWxvZy9kaWFsb2cuc2VsZWN0LWRhdGEtbGFiZWxzLmNvbnRlbnQnO1xuaW1wb3J0IHsgRGlhbG9nTG9naW5Db250ZW50IH0gZnJvbSAnLi93aWRnZXRzL2RpYWxvZy9kaWFsb2cubG9naW4uY29udGVudCc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgU2Nyb2xsRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmUvc2Nyb2xsJztcbmltcG9ydCB7IERpYWxvZ1JlZ2lzdGVyQ29udGVudCB9IGZyb20gJy4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLnJlZ2lzdGVyLmNvbnRlbnQnO1xuaW1wb3J0IHsgQXV0aDM2NUNvbXBvbmVudCB9IGZyb20gJy4vYXV0aC9hdXRoMzY1LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVc2VyU2V0dGluZ3NNb2R1bGUgfSBmcm9tICcuL3VzZXItc2V0dGluZ3MvdXNlci1zZXR0aW5ncy5tb2R1bGUnO1xuaW1wb3J0IHsgSG9tZUNvbXBvbmVudCB9IGZyb20gJy4vaG9tZS9ob21lLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2xsYXBzZVRhYmxlTW9kdWxlIH0gZnJvbSAnLi93aWRnZXRzL2NvbGxhcHNlLXRhYmxlL2NvbGxhcHNlLXRhYmxlLm1vZHVsZSc7XG5pbXBvcnQgeyBEaWFsb2dTZWxlY3RXaXRoQnV0dG9uc1VSTENvbnRlbnQgfSBmcm9tICcuL3dpZGdldHMvZGlhbG9nL2RpYWxvZy5zZWxlY3Qtd2l0aC1idXR0b25zLXVybC5jb250ZW50JztcbmltcG9ydCB7IERpYWxvZ1NlbGVjdEFycmF5T2Jqc0NvbnRlbnQgfSBmcm9tICcuL3dpZGdldHMvZGlhbG9nL2RpYWxvZy5zZWxlY3QtYXJyYXktb2Jqcy5jb250ZW50JztcbmltcG9ydCB7IERpYWxvZ1NlbGVjdEFycmF5Q29udGVudCB9IGZyb20gJy4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLnNlbGVjdC1hcnJheS5jb250ZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFNoYXJlZE1vZHVsZSxcbiAgICAgICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICAgICAgTmdiTW9kdWxlLFxuICAgICAgICBUb2FzdHJNb2R1bGUuZm9yUm9vdCgpLFxuICAgICAgICBOZ3hMb2NhbFN0b3JhZ2VNb2R1bGUuZm9yUm9vdCh7XG4gICAgICAgICAgICBwcmVmaXg6ICdSZXNvbHZlSU8nXG4gICAgICAgIH0pLFxuICAgICAgICBVc2VyU2V0dGluZ3NNb2R1bGUsXG4gICAgICAgIEJyb3dzZXJBbmltYXRpb25zTW9kdWxlLFxuICAgICAgICBDb2xsYXBzZVRhYmxlTW9kdWxlXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgQ29yZUNvbXBvbmVudCxcbiAgICAgICAgSG9tZUNvbXBvbmVudCxcbiAgICAgICAgTG9nZ2VyQ29tcG9uZW50LFxuICAgICAgICBOYXZiYXJNYWluQ29tcG9uZW50LFxuICAgICAgICBOYXZiYXJNb2R1bGVDb21wb25lbnQsXG4gICAgICAgIEZvcmdvdFBhc3N3b3JkQ29tcG9uZW50LFxuICAgICAgICBFbnJvbGxDb21wb25lbnQsXG4gICAgICAgIEF1dGgzNjVDb21wb25lbnQsXG4gICAgICAgIEZvY3VzRGlyZWN0aXZlLFxuICAgICAgICBTY3JvbGxEaXJlY3RpdmUsXG4gICAgICAgIERpYWxvZ0NvbmZpcm1Db250ZW50LFxuICAgICAgICBEaWFsb2dFcnJvckNvbnRlbnQsXG4gICAgICAgIERpYWxvZ0lucHV0Q29udGVudCxcbiAgICAgICAgRGlhbG9nTm90aWZ5Q29udGVudCxcbiAgICAgICAgRGlhbG9nU2VsZWN0RGF0ZVRpbWVDb250ZW50LFxuICAgICAgICBEaWFsb2dTZWxlY3REYXRhTGFiZWxzQ29udGVudCxcbiAgICAgICAgRGlhbG9nTG9naW5Db250ZW50LFxuICAgICAgICBEaWFsb2dSZWdpc3RlckNvbnRlbnQsXG4gICAgICAgIERpYWxvZ1NlbGVjdFdpdGhCdXR0b25zVVJMQ29udGVudCxcbiAgICAgICAgRGlhbG9nU2VsZWN0QXJyYXlPYmpzQ29udGVudCxcbiAgICAgICAgRGlhbG9nU2VsZWN0QXJyYXlDb250ZW50XG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgQ29yZVNlcnZpY2UsXG4gICAgICAgIEF1dGhTZXJ2aWNlLFxuICAgICAgICBBdXRoR3VhcmQsXG4gICAgICAgIENhbkRlYWN0aXZhdGVHdWFyZCxcbiAgICAgICAgRGlhbG9nU2VydmljZSxcbiAgICAgICAgVmFsaWRhdGlvblNlcnZpY2UsXG4gICAgICAgIEF3c1NlcnZpY2UsXG4gICAgICAgIEF1dGhQZXJtaXNzaW9uU2VydmljZSxcbiAgICAgICAgV2luZG93UmVmU2VydmljZSxcbiAgICAgICAgQWxlcnRTZXJ2aWNlLFxuICAgICAgICBTb2NrZXRTZXJ2aWNlLFxuICAgICAgICBTb2NrZXRNYW5hZ2VyU2VydmljZSxcbiAgICAgICAgVG9rZW5NYW5hZ2VyU2VydmljZSxcbiAgICAgICAgQWNjb3VudE1hbmFnZXJTZXJ2aWNlLFxuICAgICAgICBPZmZsaW5lTWFuYWdlclNlcnZpY2UsXG4gICAgICAgIERldmljZURldGVjdG9yU2VydmljZVxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBDb3JlQ29tcG9uZW50LFxuICAgICAgICBIb21lQ29tcG9uZW50LFxuICAgICAgICBMb2dnZXJDb21wb25lbnQsXG4gICAgICAgIE5hdmJhck1haW5Db21wb25lbnQsXG4gICAgICAgIE5hdmJhck1vZHVsZUNvbXBvbmVudCxcbiAgICAgICAgRm9yZ290UGFzc3dvcmRDb21wb25lbnQsXG4gICAgICAgIEVucm9sbENvbXBvbmVudCxcbiAgICAgICAgQXV0aDM2NUNvbXBvbmVudCxcbiAgICAgICAgRm9jdXNEaXJlY3RpdmUsXG4gICAgICAgIFNjcm9sbERpcmVjdGl2ZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQ29yZU1vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,305 @@
1
+ import { Component, Input, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild } from '@angular/core';
2
+ import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@ng-bootstrap/ng-bootstrap";
5
+ import * as i2 from "../responsive-button-group/responsive-button-group.component";
6
+ import * as i3 from "../collapse-table/collapse-table.component";
7
+ import * as i4 from "@ng-select/ng-select";
8
+ import * as i5 from "@angular/common";
9
+ import * as i6 from "@angular/forms";
10
+ // tslint:disable-next-line:component-class-suffix
11
+ export class DialogSelectArrayContent {
12
+ constructor(_activeModal, _cdRef) {
13
+ this._activeModal = _activeModal;
14
+ this._cdRef = _cdRef;
15
+ this.title = '';
16
+ this.array = [];
17
+ this.selectedIndexes = [];
18
+ this.method = 'list';
19
+ this.mappedArray = [];
20
+ this.selectIndexes = [];
21
+ }
22
+ ngOnInit() {
23
+ this.mappedArray = this.array.map((a, index) => {
24
+ return {
25
+ value: index,
26
+ text: a
27
+ };
28
+ });
29
+ this.selectedIndexes.forEach(index => {
30
+ this.selectIndexes.push(index);
31
+ });
32
+ }
33
+ ngAfterViewInit() {
34
+ setTimeout(() => {
35
+ let foundElement = this.recursiveFindFirstElement(this.allElements.nativeElement);
36
+ if (foundElement) {
37
+ foundElement.focus();
38
+ }
39
+ else {
40
+ this.close.nativeElement.focus();
41
+ this.close.nativeElement.blur();
42
+ }
43
+ }, 100);
44
+ }
45
+ recursiveFindFirstElement(element) {
46
+ let foundElement = null;
47
+ let htmlCol = element.children;
48
+ for (let i = 0; i < Object.keys(htmlCol).length; i++) {
49
+ let key = Object.keys(htmlCol)[i];
50
+ let htmlElem = htmlCol[key];
51
+ if (htmlElem.children && htmlElem.children.length) {
52
+ foundElement = this.recursiveFindFirstElement(htmlElem);
53
+ }
54
+ else if (htmlElem.tagName === 'BUTTON' && htmlElem.classList.contains('close')) {
55
+ return null;
56
+ }
57
+ else if ((htmlElem.tagName === 'BUTTON' || htmlElem.tagName === 'INPUT' || htmlElem.tagName === 'SELECT' || htmlElem.tagName === 'TEXTAREA') && !htmlElem.hidden && !htmlElem.disabled) {
58
+ return htmlElem;
59
+ }
60
+ if (foundElement) {
61
+ break;
62
+ }
63
+ }
64
+ return foundElement;
65
+ }
66
+ addDropDown() {
67
+ let firstValue = this.array.filter((a, index) => !this.selectedIndexes.includes(index))[0];
68
+ let firstIndex = this.array.findIndex(a => a === firstValue);
69
+ this.selectedIndexes.push(firstIndex);
70
+ this.selectIndexes.push(firstIndex);
71
+ }
72
+ onSelectDropdown(val, index) {
73
+ this.onSelectItem(this.selectedIndexes[index]);
74
+ this.onSelectItem(val);
75
+ }
76
+ availableAdd() {
77
+ return this.array.filter((a, index) => !this.selectedIndexes.includes(index))[0] ? true : false;
78
+ }
79
+ getFilteredArray(item) {
80
+ return this.mappedArray.filter(a => a.value === item || !this.selectedIndexes.includes(a.value));
81
+ }
82
+ isInSelectedIndex(index) {
83
+ if (this.selectedIndexes.includes(index)) {
84
+ return true;
85
+ }
86
+ return false;
87
+ }
88
+ onSelectItem(index) {
89
+ if (!this.multiple) {
90
+ if (this.selectedIndexes.includes(index)) {
91
+ this.selectedIndexes = [];
92
+ this.selectIndexes = [];
93
+ }
94
+ else {
95
+ this.selectedIndexes = [index];
96
+ this.selectIndexes = [index];
97
+ }
98
+ }
99
+ else {
100
+ if (this.selectedIndexes.includes(index)) {
101
+ this.selectedIndexes.splice(this.selectedIndexes.indexOf(index), 1);
102
+ this.selectIndexes.splice(this.selectIndexes.indexOf(index), 1);
103
+ }
104
+ else {
105
+ this.selectedIndexes.push(index);
106
+ this.selectIndexes.push(index);
107
+ }
108
+ }
109
+ }
110
+ getArray() {
111
+ let res = [];
112
+ this.selectedIndexes.forEach(index => {
113
+ res.push(this.array[index]);
114
+ });
115
+ return res;
116
+ }
117
+ selectAll() {
118
+ this.selectedIndexes = [];
119
+ this.selectIndexes = [];
120
+ this.array.forEach((data, index) => {
121
+ this.selectedIndexes.push(index);
122
+ this.selectIndexes.push(index);
123
+ });
124
+ }
125
+ removeAll() {
126
+ this.selectedIndexes = [];
127
+ this.selectIndexes = [];
128
+ }
129
+ }
130
+ DialogSelectArrayContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: DialogSelectArrayContent, deps: [{ token: i1.NgbActiveModal }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
131
+ DialogSelectArrayContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: DialogSelectArrayContent, selector: "ng-component", inputs: { title: "title", array: "array", multiple: "multiple", selectedIndexes: "selectedIndexes" }, viewQueries: [{ propertyName: "close", first: true, predicate: ["close"], descendants: true }, { propertyName: "allElements", first: true, predicate: ["allElements"], descendants: true }], ngImport: i0, template: `
132
+ <style>
133
+ collapse-table tr:hover {
134
+ background-color: lightblue;
135
+ cursor: pointer;
136
+ }
137
+
138
+ .selected {
139
+ background-color: lightblue;
140
+ }
141
+
142
+ collapse-table {
143
+ width: 100%;
144
+ }
145
+ </style>
146
+ <div #allElements>
147
+ <div class="modal-header">
148
+ <h4 class="modal-title"><i class="fa fa-question-circle" style="color: blue; font-size: 0.85em" aria-hidden="true"></i> {{ title }}</h4>
149
+ <button type="button" class="close" aria-label="Close" (click)="_activeModal.dismiss()" #close>
150
+ <span aria-hidden="true">&times;</span>
151
+ </button>
152
+ </div>
153
+ <div class="modal-body" style="height: 60vh;">
154
+ <responsive-button-group>
155
+ <ng-container *ngIf="multiple">
156
+ <button type="button" class="btn btn-primary" (click)="selectAll()">Select All</button>
157
+ <button type="button" class="btn btn-danger" (click)="removeAll()">Remove All</button>
158
+ </ng-container>
159
+ <button type="button" [ngClass]="['btn', method === 'list' ? 'btn-success' : 'btn-warning']" (click)="method = 'list'">Use List</button>
160
+ <button type="button" [ngClass]="['btn', method === 'dropdown' ? 'btn-success' : 'btn-warning']" (click)="method = 'dropdown'">Use Dropdown</button>
161
+ </responsive-button-group>
162
+ <div style="height: 50vh; overflow-y: auto; margin-top: 10px">
163
+ <ng-container *ngIf="method === 'list'">
164
+ <collapse-table collapseSize="900">
165
+ <thead>
166
+ <tr>
167
+ <th>List</th>
168
+ </tr>
169
+ </thead>
170
+ <tbody>
171
+ <tr *ngFor="let data of array; let i = index" (click)="onSelectItem(i)" [ngClass]="{'selected' : isInSelectedIndex(i)}">
172
+ <td>{{data}}</td>
173
+ </tr>
174
+ </tbody>
175
+ </collapse-table>
176
+ </ng-container>
177
+ <ng-container *ngIf="method === 'dropdown'">
178
+ <collapse-table collapseSize="900">
179
+ <thead>
180
+ <tr>
181
+ <th>Item</th>
182
+ <th>Remove</th>
183
+ </tr>
184
+ </thead>
185
+ <tbody>
186
+ <tr *ngFor="let item of selectIndexes; let i = index">
187
+ <td>
188
+ <ng-select placeholder="Select Item" [ngModel]="item" (change)="onSelectDropdown($event, i)">
189
+ <ng-option *ngFor="let data of getFilteredArray(item)" [value]="data.value">{{data.text}}</ng-option>
190
+ </ng-select>
191
+ </td>
192
+ <td>
193
+ <button type="button" class="btn btn-danger" (click)="onSelectItem(item)">Remove</button>
194
+ </td>
195
+ </tr>
196
+ </tbody>
197
+ </collapse-table>
198
+ <button type="button" class="btn btn-success" *ngIf="multiple || !selectIndexes.length" (click)="addDropDown()" [disabled]="!availableAdd()">Add</button>
199
+ </ng-container>
200
+ </div>
201
+ </div>
202
+ <div class="modal-footer">
203
+ <button type="button" [ngClass]="['btn', selectedIndexes.length ? 'btn-success' : 'btn-danger']" [disabled]="!selectedIndexes.length || this.selectedIndexes.includes(null)" (click)="_activeModal.close(this.multiple ? getArray() : array[selectedIndexes[0]])">Submit</button>
204
+ <button type="button" class="btn btn-secondary" (click)="_activeModal.dismiss()">Cancel</button>
205
+ </div>
206
+ </div>
207
+ `, isInline: true, styles: ["\n\t\t\tcollapse-table tr:hover {\n\t\t\t\tbackground-color: lightblue;\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\n\t\t\t.selected {\n\t\t\t\tbackground-color: lightblue;\n\t\t\t}\n\n\t\t\tcollapse-table {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t"], components: [{ type: i2.ResponsiveButtonGroupComponent, selector: "responsive-button-group", inputs: ["collapseSize"] }, { type: i3.CollapseTableComponent, selector: "collapse-table", inputs: ["collapseSize", "tableFixed", "headerFixed", "secondaryColor", "tertiaryColor"] }, { type: i4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: i4.NgOptionComponent, selector: "ng-option", inputs: ["value", "disabled"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: DialogSelectArrayContent, decorators: [{
209
+ type: Component,
210
+ args: [{
211
+ template: `
212
+ <style>
213
+ collapse-table tr:hover {
214
+ background-color: lightblue;
215
+ cursor: pointer;
216
+ }
217
+
218
+ .selected {
219
+ background-color: lightblue;
220
+ }
221
+
222
+ collapse-table {
223
+ width: 100%;
224
+ }
225
+ </style>
226
+ <div #allElements>
227
+ <div class="modal-header">
228
+ <h4 class="modal-title"><i class="fa fa-question-circle" style="color: blue; font-size: 0.85em" aria-hidden="true"></i> {{ title }}</h4>
229
+ <button type="button" class="close" aria-label="Close" (click)="_activeModal.dismiss()" #close>
230
+ <span aria-hidden="true">&times;</span>
231
+ </button>
232
+ </div>
233
+ <div class="modal-body" style="height: 60vh;">
234
+ <responsive-button-group>
235
+ <ng-container *ngIf="multiple">
236
+ <button type="button" class="btn btn-primary" (click)="selectAll()">Select All</button>
237
+ <button type="button" class="btn btn-danger" (click)="removeAll()">Remove All</button>
238
+ </ng-container>
239
+ <button type="button" [ngClass]="['btn', method === 'list' ? 'btn-success' : 'btn-warning']" (click)="method = 'list'">Use List</button>
240
+ <button type="button" [ngClass]="['btn', method === 'dropdown' ? 'btn-success' : 'btn-warning']" (click)="method = 'dropdown'">Use Dropdown</button>
241
+ </responsive-button-group>
242
+ <div style="height: 50vh; overflow-y: auto; margin-top: 10px">
243
+ <ng-container *ngIf="method === 'list'">
244
+ <collapse-table collapseSize="900">
245
+ <thead>
246
+ <tr>
247
+ <th>List</th>
248
+ </tr>
249
+ </thead>
250
+ <tbody>
251
+ <tr *ngFor="let data of array; let i = index" (click)="onSelectItem(i)" [ngClass]="{'selected' : isInSelectedIndex(i)}">
252
+ <td>{{data}}</td>
253
+ </tr>
254
+ </tbody>
255
+ </collapse-table>
256
+ </ng-container>
257
+ <ng-container *ngIf="method === 'dropdown'">
258
+ <collapse-table collapseSize="900">
259
+ <thead>
260
+ <tr>
261
+ <th>Item</th>
262
+ <th>Remove</th>
263
+ </tr>
264
+ </thead>
265
+ <tbody>
266
+ <tr *ngFor="let item of selectIndexes; let i = index">
267
+ <td>
268
+ <ng-select placeholder="Select Item" [ngModel]="item" (change)="onSelectDropdown($event, i)">
269
+ <ng-option *ngFor="let data of getFilteredArray(item)" [value]="data.value">{{data.text}}</ng-option>
270
+ </ng-select>
271
+ </td>
272
+ <td>
273
+ <button type="button" class="btn btn-danger" (click)="onSelectItem(item)">Remove</button>
274
+ </td>
275
+ </tr>
276
+ </tbody>
277
+ </collapse-table>
278
+ <button type="button" class="btn btn-success" *ngIf="multiple || !selectIndexes.length" (click)="addDropDown()" [disabled]="!availableAdd()">Add</button>
279
+ </ng-container>
280
+ </div>
281
+ </div>
282
+ <div class="modal-footer">
283
+ <button type="button" [ngClass]="['btn', selectedIndexes.length ? 'btn-success' : 'btn-danger']" [disabled]="!selectedIndexes.length || this.selectedIndexes.includes(null)" (click)="_activeModal.close(this.multiple ? getArray() : array[selectedIndexes[0]])">Submit</button>
284
+ <button type="button" class="btn btn-secondary" (click)="_activeModal.dismiss()">Cancel</button>
285
+ </div>
286
+ </div>
287
+ `,
288
+ changeDetection: ChangeDetectionStrategy.OnPush
289
+ }]
290
+ }], ctorParameters: function () { return [{ type: i1.NgbActiveModal }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { title: [{
291
+ type: Input
292
+ }], array: [{
293
+ type: Input
294
+ }], multiple: [{
295
+ type: Input
296
+ }], selectedIndexes: [{
297
+ type: Input
298
+ }], close: [{
299
+ type: ViewChild,
300
+ args: ['close', { static: false }]
301
+ }], allElements: [{
302
+ type: ViewChild,
303
+ args: ['allElements', { static: false }]
304
+ }] } });
305
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlbGVjdC1hcnJheS5jb250ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvZGlhbG9nL2RpYWxvZy5zZWxlY3QtYXJyYXkuY29udGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBaUIsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQVUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzlILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7QUFrRjVELGtEQUFrRDtBQUNsRCxNQUFNLE9BQU8sd0JBQXdCO0lBYXBDLFlBQW1CLFlBQTRCLEVBQVMsTUFBeUI7UUFBOUQsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFaeEUsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFVBQUssR0FBVSxFQUFFLENBQUM7UUFFbEIsb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFLeEMsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixrQkFBYSxHQUFHLEVBQUUsQ0FBQztJQUVpRSxDQUFDO0lBRXJGLFFBQVE7UUFDUCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzlDLE9BQU87Z0JBQ04sS0FBSyxFQUFFLEtBQUs7Z0JBQ1osSUFBSSxFQUFFLENBQUM7YUFDUCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNo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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUE0RVQ7MkZBSVcsd0JBQXdCO2tCQWpGcEMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUE0RVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DO3FJQUdTLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUV1QyxLQUFLO3NCQUFqRCxTQUFTO3VCQUFFLE9BQU8sRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBQ2MsV0FBVztzQkFBNUQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcblxuQENvbXBvbmVudCh7XG5cdHRlbXBsYXRlOiBgXG5cdFx0PHN0eWxlPlxuXHRcdFx0Y29sbGFwc2UtdGFibGUgdHI6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7XG5cdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdH1cblxuXHRcdFx0LnNlbGVjdGVkIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlO1xuXHRcdFx0fVxuXG5cdFx0XHRjb2xsYXBzZS10YWJsZSB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXHRcdDwvc3R5bGU+XG5cdFx0PGRpdiAjYWxsRWxlbWVudHM+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG5cdFx0XHRcdDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+PGkgY2xhc3M9XCJmYSBmYS1xdWVzdGlvbi1jaXJjbGVcIiBzdHlsZT1cImNvbG9yOiBibHVlOyBmb250LXNpemU6IDAuODVlbVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgdGl0bGUgfX08L2g0PlxuXHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIl9hY3RpdmVNb2RhbC5kaXNtaXNzKClcIiAjY2xvc2U+XG5cdFx0XHRcdFx0PHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cblx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCIgc3R5bGU9XCJoZWlnaHQ6IDYwdmg7XCI+XG5cdFx0XHRcdDxyZXNwb25zaXZlLWJ1dHRvbi1ncm91cD5cblx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwibXVsdGlwbGVcIj5cblx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInNlbGVjdEFsbCgpXCI+U2VsZWN0IEFsbDwvYnV0dG9uPlxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRhbmdlclwiIChjbGljayk9XCJyZW1vdmVBbGwoKVwiPlJlbW92ZSBBbGw8L2J1dHRvbj5cblx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbbmdDbGFzc109XCJbJ2J0bicsIG1ldGhvZCA9PT0gJ2xpc3QnID8gJ2J0bi1zdWNjZXNzJyA6ICdidG4td2FybmluZyddXCIgIChjbGljayk9XCJtZXRob2QgPSAnbGlzdCdcIj5Vc2UgTGlzdDwvYnV0dG9uPlxuXHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtuZ0NsYXNzXT1cIlsnYnRuJywgbWV0aG9kID09PSAnZHJvcGRvd24nID8gJ2J0bi1zdWNjZXNzJyA6ICdidG4td2FybmluZyddXCIgKGNsaWNrKT1cIm1ldGhvZCA9ICdkcm9wZG93bidcIj5Vc2UgRHJvcGRvd248L2J1dHRvbj5cblx0XHRcdFx0PC9yZXNwb25zaXZlLWJ1dHRvbi1ncm91cD5cblx0XHRcdFx0PGRpdiBzdHlsZT1cImhlaWdodDogNTB2aDsgb3ZlcmZsb3cteTogYXV0bzsgbWFyZ2luLXRvcDogMTBweFwiPlxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJtZXRob2QgPT09ICdsaXN0J1wiPlxuXHRcdFx0XHRcdFx0PGNvbGxhcHNlLXRhYmxlIGNvbGxhcHNlU2l6ZT1cIjkwMFwiPlxuXHRcdFx0XHRcdFx0XHQ8dGhlYWQ+XG5cdFx0XHRcdFx0XHRcdFx0PHRyPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHRoPkxpc3Q8L3RoPlxuXHRcdFx0XHRcdFx0XHRcdDwvdHI+XG5cdFx0XHRcdFx0XHRcdDwvdGhlYWQ+XG5cdFx0XHRcdFx0XHRcdDx0Ym9keT5cblx0XHRcdFx0XHRcdFx0XHQ8dHIgKm5nRm9yPVwibGV0IGRhdGEgb2YgYXJyYXk7IGxldCBpID0gaW5kZXhcIiAoY2xpY2spPVwib25TZWxlY3RJdGVtKGkpXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZCcgOiBpc0luU2VsZWN0ZWRJbmRleChpKX1cIj5cblx0XHRcdFx0XHRcdFx0XHRcdDx0ZD57e2RhdGF9fTwvdGQ+XG5cdFx0XHRcdFx0XHRcdFx0PC90cj5cblx0XHRcdFx0XHRcdFx0PC90Ym9keT5cblx0XHRcdFx0XHRcdDwvY29sbGFwc2UtdGFibGU+XG5cdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIm1ldGhvZCA9PT0gJ2Ryb3Bkb3duJ1wiPlxuXHRcdFx0XHRcdFx0PGNvbGxhcHNlLXRhYmxlIGNvbGxhcHNlU2l6ZT1cIjkwMFwiPlxuXHRcdFx0XHRcdFx0XHQ8dGhlYWQ+XG5cdFx0XHRcdFx0XHRcdFx0PHRyPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHRoPkl0ZW08L3RoPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHRoPlJlbW92ZTwvdGg+XG5cdFx0XHRcdFx0XHRcdFx0PC90cj5cblx0XHRcdFx0XHRcdFx0PC90aGVhZD5cblx0XHRcdFx0XHRcdFx0PHRib2R5PlxuXHRcdFx0XHRcdFx0XHRcdDx0ciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzZWxlY3RJbmRleGVzOyBsZXQgaSA9IGluZGV4XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGQ+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxuZy1zZWxlY3QgcGxhY2Vob2xkZXI9XCJTZWxlY3QgSXRlbVwiIFtuZ01vZGVsXT1cIml0ZW1cIiAoY2hhbmdlKT1cIm9uU2VsZWN0RHJvcGRvd24oJGV2ZW50LCBpKVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxuZy1vcHRpb24gKm5nRm9yPVwibGV0IGRhdGEgb2YgZ2V0RmlsdGVyZWRBcnJheShpdGVtKVwiIFt2YWx1ZV09XCJkYXRhLnZhbHVlXCI+e3tkYXRhLnRleHR9fTwvbmctb3B0aW9uPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L25nLXNlbGVjdD5cblx0XHRcdFx0XHRcdFx0XHRcdDwvdGQ+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGQ+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1kYW5nZXJcIiAoY2xpY2spPVwib25TZWxlY3RJdGVtKGl0ZW0pXCI+UmVtb3ZlPC9idXR0b24+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3RkPlxuXHRcdFx0XHRcdFx0XHRcdDwvdHI+XG5cdFx0XHRcdFx0XHRcdDwvdGJvZHk+XG5cdFx0XHRcdFx0XHQ8L2NvbGxhcHNlLXRhYmxlPlxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIiAqbmdJZj1cIm11bHRpcGxlIHx8ICFzZWxlY3RJbmRleGVzLmxlbmd0aFwiIChjbGljayk9XCJhZGREcm9wRG93bigpXCIgW2Rpc2FibGVkXT1cIiFhdmFpbGFibGVBZGQoKVwiPkFkZDwvYnV0dG9uPlxuXHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuXHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbbmdDbGFzc109XCJbJ2J0bicsIHNlbGVjdGVkSW5kZXhlcy5sZW5ndGggPyAnYnRuLXN1Y2Nlc3MnIDogJ2J0bi1kYW5nZXInXVwiIFtkaXNhYmxlZF09XCIhc2VsZWN0ZWRJbmRleGVzLmxlbmd0aCB8fCB0aGlzLnNlbGVjdGVkSW5kZXhlcy5pbmNsdWRlcyhudWxsKVwiIChjbGljayk9XCJfYWN0aXZlTW9kYWwuY2xvc2UodGhpcy5tdWx0aXBsZSA/IGdldEFycmF5KCkgOiBhcnJheVtzZWxlY3RlZEluZGV4ZXNbMF1dKVwiPlN1Ym1pdDwvYnV0dG9uPlxuXHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cIl9hY3RpdmVNb2RhbC5kaXNtaXNzKClcIj5DYW5jZWw8L2J1dHRvbj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHRgLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgRGlhbG9nU2VsZWN0QXJyYXlDb250ZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblx0QElucHV0KCkgdGl0bGUgPSAnJztcblx0QElucHV0KCkgYXJyYXk6IGFueVtdID0gW107XG5cdEBJbnB1dCgpIG11bHRpcGxlOiBib29sZWFuO1xuXHRASW5wdXQoKSBzZWxlY3RlZEluZGV4ZXM6IG51bWJlcltdID0gW107XG5cblx0QFZpZXdDaGlsZCAoJ2Nsb3NlJywge3N0YXRpYzogZmFsc2V9KSBwdWJsaWMgY2xvc2U7XG5cdEBWaWV3Q2hpbGQoJ2FsbEVsZW1lbnRzJywge3N0YXRpYzogZmFsc2V9KSBwdWJsaWMgYWxsRWxlbWVudHM7XG5cblx0bWV0aG9kID0gJ2xpc3QnO1xuXHRtYXBwZWRBcnJheSA9IFtdO1xuXHRzZWxlY3RJbmRleGVzID0gW107XG5cblx0Y29uc3RydWN0b3IocHVibGljIF9hY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwsIHB1YmxpYyBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMubWFwcGVkQXJyYXkgPSB0aGlzLmFycmF5Lm1hcCgoYSwgaW5kZXgpID0+IHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHZhbHVlOiBpbmRleCxcblx0XHRcdFx0dGV4dDogYVxuXHRcdFx0fTtcblx0XHR9KTtcblxuXHRcdHRoaXMuc2VsZWN0ZWRJbmRleGVzLmZvckVhY2goaW5kZXggPT4ge1xuXHRcdFx0dGhpcy5zZWxlY3RJbmRleGVzLnB1c2goaW5kZXgpO1xuXHRcdH0pO1xuXHR9XG5cblx0bmdBZnRlclZpZXdJbml0KCkge1xuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0bGV0IGZvdW5kRWxlbWVudCA9IHRoaXMucmVjdXJzaXZlRmluZEZpcnN0RWxlbWVudCh0aGlzLmFsbEVsZW1lbnRzLm5hdGl2ZUVsZW1lbnQpO1xuXHRcdFx0aWYgKGZvdW5kRWxlbWVudCkge1xuXHRcdFx0XHRmb3VuZEVsZW1lbnQuZm9jdXMoKTtcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHR0aGlzLmNsb3NlLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblx0XHRcdFx0dGhpcy5jbG9zZS5uYXRpdmVFbGVtZW50LmJsdXIoKTtcblx0XHRcdH1cblx0XHR9LCAxMDApO1xuXHR9XG5cblx0cmVjdXJzaXZlRmluZEZpcnN0RWxlbWVudChlbGVtZW50KSB7XG5cdFx0bGV0IGZvdW5kRWxlbWVudCA9IG51bGw7XG5cdFx0bGV0IGh0bWxDb2w6IEhUTUxDb2xsZWN0aW9uID0gZWxlbWVudC5jaGlsZHJlbjtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IE9iamVjdC5rZXlzKGh0bWxDb2wpLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRsZXQga2V5ID0gT2JqZWN0LmtleXMoaHRtbENvbClbaV07XG5cblx0XHRcdGxldCBodG1sRWxlbSA9IGh0bWxDb2xba2V5XTtcblx0XHRcdGlmIChodG1sRWxlbS5jaGlsZHJlbiAmJiBodG1sRWxlbS5jaGlsZHJlbi5sZW5ndGgpIHtcblx0XHRcdFx0Zm91bmRFbGVtZW50ID0gdGhpcy5yZWN1cnNpdmVGaW5kRmlyc3RFbGVtZW50KGh0bWxFbGVtKTtcblx0XHRcdH1cblx0XHRcdGVsc2UgaWYgKGh0bWxFbGVtLnRhZ05hbWUgPT09ICdCVVRUT04nICYmIGh0bWxFbGVtLmNsYXNzTGlzdC5jb250YWlucygnY2xvc2UnKSkge1xuXHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdH1cblx0XHRcdGVsc2UgaWYgKChodG1sRWxlbS50YWdOYW1lID09PSAnQlVUVE9OJyB8fCBodG1sRWxlbS50YWdOYW1lID09PSAnSU5QVVQnIHx8IGh0bWxFbGVtLnRhZ05hbWUgPT09ICdTRUxFQ1QnIHx8IGh0bWxFbGVtLnRhZ05hbWUgPT09ICdURVhUQVJFQScpICYmICFodG1sRWxlbS5oaWRkZW4gJiYgIWh0bWxFbGVtLmRpc2FibGVkKSB7XG5cdFx0XHRcdHJldHVybiBodG1sRWxlbTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKGZvdW5kRWxlbWVudCkge1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZm91bmRFbGVtZW50O1xuXHR9XG5cblx0YWRkRHJvcERvd24oKSB7XG5cdFx0bGV0IGZpcnN0VmFsdWUgPSB0aGlzLmFycmF5LmZpbHRlcigoYSwgaW5kZXgpID0+ICF0aGlzLnNlbGVjdGVkSW5kZXhlcy5pbmNsdWRlcyhpbmRleCkpWzBdO1xuXHRcdGxldCBmaXJzdEluZGV4ID0gdGhpcy5hcnJheS5maW5kSW5kZXgoYSA9PiBhID09PSBmaXJzdFZhbHVlKTtcblx0XHR0aGlzLnNlbGVjdGVkSW5kZXhlcy5wdXNoKGZpcnN0SW5kZXgpO1xuXHRcdHRoaXMuc2VsZWN0SW5kZXhlcy5wdXNoKGZpcnN0SW5kZXgpO1xuXHR9XG5cblx0b25TZWxlY3REcm9wZG93bih2YWwsIGluZGV4KSB7XG5cdFx0dGhpcy5vblNlbGVjdEl0ZW0odGhpcy5zZWxlY3RlZEluZGV4ZXNbaW5kZXhdKTtcblx0XHR0aGlzLm9uU2VsZWN0SXRlbSh2YWwpO1xuXHR9XG5cblx0YXZhaWxhYmxlQWRkKCkge1xuXHRcdHJldHVybiB0aGlzLmFycmF5LmZpbHRlcigoYSwgaW5kZXgpID0+ICF0aGlzLnNlbGVjdGVkSW5kZXhlcy5pbmNsdWRlcyhpbmRleCkpWzBdID8gdHJ1ZSA6IGZhbHNlO1xuXHR9XG5cblx0Z2V0RmlsdGVyZWRBcnJheShpdGVtKSB7XG5cdFx0cmV0dXJuIHRoaXMubWFwcGVkQXJyYXkuZmlsdGVyKGEgPT4gYS52YWx1ZSA9PT0gaXRlbSB8fCAhdGhpcy5zZWxlY3RlZEluZGV4ZXMuaW5jbHVkZXMoYS52YWx1ZSkpO1xuXHR9XG5cblx0aXNJblNlbGVjdGVkSW5kZXgoaW5kZXg6IG51bWJlcikge1xuXHRcdGlmICh0aGlzLnNlbGVjdGVkSW5kZXhlcy5pbmNsdWRlcyhpbmRleCkpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdG9uU2VsZWN0SXRlbShpbmRleDogbnVtYmVyKSB7XG5cdFx0aWYgKCF0aGlzLm11bHRpcGxlKSB7XG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZEluZGV4ZXMuaW5jbHVkZXMoaW5kZXgpKSB7XG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRJbmRleGVzID0gW107XG5cdFx0XHRcdHRoaXMuc2VsZWN0SW5kZXhlcyA9IFtdO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRJbmRleGVzID0gW2luZGV4XTtcblx0XHRcdFx0dGhpcy5zZWxlY3RJbmRleGVzID0gW2luZGV4XTtcblx0XHRcdH1cblx0XHR9XG5cdFx0ZWxzZSB7XG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZEluZGV4ZXMuaW5jbHVkZXMoaW5kZXgpKSB7XG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRJbmRleGVzLnNwbGljZSh0aGlzLnNlbGVjdGVkSW5kZXhlcy5pbmRleE9mKGluZGV4KSwgMSk7XG5cdFx0XHRcdHRoaXMuc2VsZWN0SW5kZXhlcy5zcGxpY2UodGhpcy5zZWxlY3RJbmRleGVzLmluZGV4T2YoaW5kZXgpLCAxKTtcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHR0aGlzLnNlbGVjdGVkSW5kZXhlcy5wdXNoKGluZGV4KTtcblx0XHRcdFx0dGhpcy5zZWxlY3RJbmRleGVzLnB1c2goaW5kZXgpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGdldEFycmF5KCkge1xuXHRcdGxldCByZXMgPSBbXTtcblxuXHRcdHRoaXMuc2VsZWN0ZWRJbmRleGVzLmZvckVhY2goaW5kZXggPT4ge1xuXHRcdFx0cmVzLnB1c2godGhpcy5hcnJheVtpbmRleF0pO1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHJlcztcblx0fVxuXG5cdHNlbGVjdEFsbCgpIHtcblx0XHR0aGlzLnNlbGVjdGVkSW5kZXhlcyA9IFtdO1xuXHRcdHRoaXMuc2VsZWN0SW5kZXhlcyA9IFtdO1xuXG5cdFx0dGhpcy5hcnJheS5mb3JFYWNoKChkYXRhLCBpbmRleCkgPT4ge1xuXHRcdFx0dGhpcy5zZWxlY3RlZEluZGV4ZXMucHVzaChpbmRleCk7XG5cdFx0XHR0aGlzLnNlbGVjdEluZGV4ZXMucHVzaChpbmRleCk7XG5cdFx0fSk7XG5cdH1cblxuXHRyZW1vdmVBbGwoKSB7XG5cdFx0dGhpcy5zZWxlY3RlZEluZGV4ZXMgPSBbXTtcblx0XHR0aGlzLnNlbGVjdEluZGV4ZXMgPSBbXTtcblx0fVxufVxuIl19
@@ -0,0 +1,162 @@
1
+ import { Component, Input, ViewChild } from '@angular/core';
2
+ import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
3
+ import { AccountManagerService } from '../../account-manager.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@ng-bootstrap/ng-bootstrap";
6
+ import * as i2 from "../../account-manager.service";
7
+ import * as i3 from "@angular/common";
8
+ // tslint:disable-next-line:component-class-suffix
9
+ export class DialogSelectWithButtonsURLContent {
10
+ constructor(_activeModal, _account) {
11
+ this._activeModal = _activeModal;
12
+ this._account = _account;
13
+ this.url = '';
14
+ this.title = 'Select Window Type';
15
+ this.selectedType = '';
16
+ this.options = [
17
+ { value: 'same_tab', text: 'Same Tab' },
18
+ { value: 'new_tab', text: 'New Tab' },
19
+ { value: 'new_window', text: 'New Window' }
20
+ ];
21
+ }
22
+ ngOnInit() {
23
+ if (this._account.getUser().settings.routing_preference && this._account.getUser().settings.routing_preference !== 'alwaysAsk') {
24
+ if (this._account.getUser().settings.routing_preference === 'sameTab') {
25
+ window.open(this.url, '_self');
26
+ }
27
+ if (this._account.getUser().settings.routing_preference === 'newTab') {
28
+ window.open(this.url, '_blank');
29
+ }
30
+ if (this._account.getUser().settings.routing_preference === 'newWindow') {
31
+ window.open(this.url, '_blank', 'toolbar=1,location=1,menubar=1');
32
+ }
33
+ this._activeModal.close();
34
+ }
35
+ }
36
+ ngAfterViewInit() {
37
+ setTimeout(() => {
38
+ let foundElement = this.recursiveFindFirstElement(this.allElements.nativeElement);
39
+ if (foundElement) {
40
+ foundElement.focus();
41
+ }
42
+ else {
43
+ this.close.nativeElement.focus();
44
+ this.close.nativeElement.blur();
45
+ }
46
+ }, 100);
47
+ }
48
+ recursiveFindFirstElement(element) {
49
+ let foundElement = null;
50
+ let htmlCol = element.children;
51
+ for (let i = 0; i < Object.keys(htmlCol).length; i++) {
52
+ let key = Object.keys(htmlCol)[i];
53
+ let htmlElem = htmlCol[key];
54
+ if (htmlElem.children && htmlElem.children.length) {
55
+ foundElement = this.recursiveFindFirstElement(htmlElem);
56
+ }
57
+ else if (htmlElem.tagName === 'BUTTON' && htmlElem.classList.contains('close')) {
58
+ return null;
59
+ }
60
+ else if ((htmlElem.tagName === 'BUTTON' || htmlElem.tagName === 'INPUT' || htmlElem.tagName === 'SELECT' || htmlElem.tagName === 'TEXTAREA') && !htmlElem.hidden && !htmlElem.disabled) {
61
+ return htmlElem;
62
+ }
63
+ if (foundElement) {
64
+ break;
65
+ }
66
+ }
67
+ return foundElement;
68
+ }
69
+ onSelectType(type) {
70
+ this.selectedType = type;
71
+ this.submit();
72
+ }
73
+ submit() {
74
+ if (this.selectedType === 'same_tab') {
75
+ window.open(this.url, '_self');
76
+ }
77
+ if (this.selectedType === 'new_tab') {
78
+ window.open(this.url, '_blank');
79
+ }
80
+ if (this.selectedType === 'new_window') {
81
+ window.open(this.url, '_blank', 'toolbar=1,location=1,menubar=1');
82
+ }
83
+ this._activeModal.close();
84
+ }
85
+ }
86
+ DialogSelectWithButtonsURLContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: DialogSelectWithButtonsURLContent, deps: [{ token: i1.NgbActiveModal }, { token: i2.AccountManagerService }], target: i0.ɵɵFactoryTarget.Component });
87
+ DialogSelectWithButtonsURLContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: DialogSelectWithButtonsURLContent, selector: "ng-component", inputs: { url: "url" }, viewQueries: [{ propertyName: "close", first: true, predicate: ["close"], descendants: true }, { propertyName: "allElements", first: true, predicate: ["allElements"], descendants: true }], ngImport: i0, template: `
88
+ <style>
89
+ collapse-table tr:hover {
90
+ background-color: lightblue;
91
+ cursor: pointer;
92
+ }
93
+
94
+ .selected {
95
+ background-color: lightblue;
96
+ }
97
+
98
+ collapse-table {
99
+ width: 100%;
100
+ }
101
+ </style>
102
+ <div #allElements>
103
+ <div class="modal-header">
104
+ <h4 class="modal-title"><i class="fa fa-question-circle" style="color: blue; font-size: 0.85em" aria-hidden="true"></i> {{ title }}</h4>
105
+ <button type="button" class="close" aria-label="Close" (click)="_activeModal.dismiss()" #close>
106
+ <span aria-hidden="true">&times;</span>
107
+ </button>
108
+ </div>
109
+ <div class="modal-body">
110
+ <div class="row">
111
+ <div class="col" *ngFor="let option of options">
112
+ <button style="width: 100%" type="button" [ngClass]="['btn', selectedType === option.value ? 'btn-success' : 'btn-warning']" (click)="onSelectType(option.value)">{{option.text}}</button>
113
+ </div>
114
+ </div>
115
+ </div>
116
+ </div>
117
+ `, isInline: true, styles: ["\n\t\t\tcollapse-table tr:hover {\n\t\t\t\tbackground-color: lightblue;\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\n\t\t\t.selected {\n\t\t\t\tbackground-color: lightblue;\n\t\t\t}\n\n\t\t\tcollapse-table {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t"], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: DialogSelectWithButtonsURLContent, decorators: [{
119
+ type: Component,
120
+ args: [{
121
+ template: `
122
+ <style>
123
+ collapse-table tr:hover {
124
+ background-color: lightblue;
125
+ cursor: pointer;
126
+ }
127
+
128
+ .selected {
129
+ background-color: lightblue;
130
+ }
131
+
132
+ collapse-table {
133
+ width: 100%;
134
+ }
135
+ </style>
136
+ <div #allElements>
137
+ <div class="modal-header">
138
+ <h4 class="modal-title"><i class="fa fa-question-circle" style="color: blue; font-size: 0.85em" aria-hidden="true"></i> {{ title }}</h4>
139
+ <button type="button" class="close" aria-label="Close" (click)="_activeModal.dismiss()" #close>
140
+ <span aria-hidden="true">&times;</span>
141
+ </button>
142
+ </div>
143
+ <div class="modal-body">
144
+ <div class="row">
145
+ <div class="col" *ngFor="let option of options">
146
+ <button style="width: 100%" type="button" [ngClass]="['btn', selectedType === option.value ? 'btn-success' : 'btn-warning']" (click)="onSelectType(option.value)">{{option.text}}</button>
147
+ </div>
148
+ </div>
149
+ </div>
150
+ </div>
151
+ `
152
+ }]
153
+ }], ctorParameters: function () { return [{ type: i1.NgbActiveModal }, { type: i2.AccountManagerService }]; }, propDecorators: { url: [{
154
+ type: Input
155
+ }], close: [{
156
+ type: ViewChild,
157
+ args: ['close', { static: false }]
158
+ }], allElements: [{
159
+ type: ViewChild,
160
+ args: ['allElements', { static: false }]
161
+ }] } });
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlbGVjdC13aXRoLWJ1dHRvbnMtdXJsLmNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLnNlbGVjdC13aXRoLWJ1dHRvbnMtdXJsLmNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUF3QixNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7O0FBbUN0RSxrREFBa0Q7QUFDbEQsTUFBTSxPQUFPLGlDQUFpQztJQWdCN0MsWUFBbUIsWUFBNEIsRUFBVSxRQUErQjtRQUFyRSxpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUF1QjtRQWQvRSxRQUFHLEdBQUcsRUFBRSxDQUFDO1FBS2xCLFVBQUssR0FBRyxvQkFBb0IsQ0FBQztRQUM3QixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUVsQixZQUFPLEdBQUc7WUFDVCxFQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBQztZQUNyQyxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBQztZQUNuQyxFQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBQztTQUN6QyxDQUFDO0lBRXlGLENBQUM7SUFFNUYsUUFBUTtRQUNQLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLEtBQUssV0FBVyxF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Q0FBQyxZQUFZLEtBQUssVUFBVSxFQUFFO1lBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUMvQjtRQUVELElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUU7WUFDcEMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ2hDO1FBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLFlBQVksRUFBRTtZQUN2QyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLGdDQUFnQyxDQUFDLENBQUM7U0FDbEU7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7OzhIQS9GVyxpQ0FBaUM7a0hBQWpDLGlDQUFpQyx5UUFqQ25DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUE4QlQ7MkZBR1csaUNBQWlDO2tCQWxDN0MsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQThCVDtpQkFDRDt5SUFJUyxHQUFHO3NCQUFYLEtBQUs7Z0JBRXVDLEtBQUs7c0JBQWpELFNBQVM7dUJBQUUsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFDYyxXQUFXO3NCQUE1RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGQsIEFmdGVyVmlld0luaXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IEFjY291bnRNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL2FjY291bnQtbWFuYWdlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG5cdHRlbXBsYXRlOiBgXG5cdFx0PHN0eWxlPlxuXHRcdFx0Y29sbGFwc2UtdGFibGUgdHI6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7XG5cdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdH1cblxuXHRcdFx0LnNlbGVjdGVkIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlO1xuXHRcdFx0fVxuXG5cdFx0XHRjb2xsYXBzZS10YWJsZSB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXHRcdDwvc3R5bGU+XG5cdFx0PGRpdiAjYWxsRWxlbWVudHM+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG5cdFx0XHRcdDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+PGkgY2xhc3M9XCJmYSBmYS1xdWVzdGlvbi1jaXJjbGVcIiBzdHlsZT1cImNvbG9yOiBibHVlOyBmb250LXNpemU6IDAuODVlbVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgdGl0bGUgfX08L2g0PlxuXHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIl9hY3RpdmVNb2RhbC5kaXNtaXNzKClcIiAjY2xvc2U+XG5cdFx0XHRcdFx0PHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cblx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sXCIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCI+XG5cdFx0XHRcdFx0XHQ8YnV0dG9uIHN0eWxlPVwid2lkdGg6IDEwMCVcIiB0eXBlPVwiYnV0dG9uXCIgW25nQ2xhc3NdPVwiWydidG4nLCBzZWxlY3RlZFR5cGUgPT09IG9wdGlvbi52YWx1ZSA/ICdidG4tc3VjY2VzcycgOiAnYnRuLXdhcm5pbmcnXVwiIChjbGljayk9XCJvblNlbGVjdFR5cGUob3B0aW9uLnZhbHVlKVwiPnt7b3B0aW9uLnRleHR9fTwvYnV0dG9uPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHRgXG59KVxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBEaWFsb2dTZWxlY3RXaXRoQnV0dG9uc1VSTENvbnRlbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQge1xuXG5cdEBJbnB1dCgpIHVybCA9ICcnO1xuXG5cdEBWaWV3Q2hpbGQgKCdjbG9zZScsIHtzdGF0aWM6IGZhbHNlfSkgcHVibGljIGNsb3NlO1xuXHRAVmlld0NoaWxkKCdhbGxFbGVtZW50cycsIHtzdGF0aWM6IGZhbHNlfSkgcHVibGljIGFsbEVsZW1lbnRzO1xuXG5cdHRpdGxlID0gJ1NlbGVjdCBXaW5kb3cgVHlwZSc7XG5cdHNlbGVjdGVkVHlwZSA9ICcnO1xuXG5cdG9wdGlvbnMgPSBbXHRcblx0XHR7dmFsdWU6ICdzYW1lX3RhYicsIHRleHQ6ICdTYW1lIFRhYid9LFxuXHRcdHt2YWx1ZTogJ25ld190YWInLCB0ZXh0OiAnTmV3IFRhYid9LFxuXHRcdHt2YWx1ZTogJ25ld193aW5kb3cnLCB0ZXh0OiAnTmV3IFdpbmRvdyd9XG5cdF07XG5cblx0Y29uc3RydWN0b3IocHVibGljIF9hY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwsIHByaXZhdGUgX2FjY291bnQ6IEFjY291bnRNYW5hZ2VyU2VydmljZSkge31cblxuXHRuZ09uSW5pdCgpIHtcdFxuXHRcdGlmICh0aGlzLl9hY2NvdW50LmdldFVzZXIoKS5zZXR0aW5ncy5yb3V0aW5nX3ByZWZlcmVuY2UgJiYgdGhpcy5fYWNjb3VudC5nZXRVc2VyKCkuc2V0dGluZ3Mucm91dGluZ19wcmVmZXJlbmNlICE9PSAnYWx3YXlzQXNrJykge1xuXHRcdFx0aWYgKHRoaXMuX2FjY291bnQuZ2V0VXNlcigpLnNldHRpbmdzLnJvdXRpbmdfcHJlZmVyZW5jZSA9PT0gJ3NhbWVUYWInKSB7XG5cdFx0XHRcdHdpbmRvdy5vcGVuKHRoaXMudXJsLCAnX3NlbGYnKTtcblx0XHRcdH1cblx0XG5cdFx0XHRpZiAodGhpcy5fYWNjb3VudC5nZXRVc2VyKCkuc2V0dGluZ3Mucm91dGluZ19wcmVmZXJlbmNlID09PSAnbmV3VGFiJykge1xuXHRcdFx0XHR3aW5kb3cub3Blbih0aGlzLnVybCwgJ19ibGFuaycpO1xuXHRcdFx0fVxuXHRcblx0XHRcdGlmICh0aGlzLl9hY2NvdW50LmdldFVzZXIoKS5zZXR0aW5ncy5yb3V0aW5nX3ByZWZlcmVuY2UgPT09ICduZXdXaW5kb3cnKSB7XG5cdFx0XHRcdHdpbmRvdy5vcGVuKHRoaXMudXJsLCAnX2JsYW5rJywgJ3Rvb2xiYXI9MSxsb2NhdGlvbj0xLG1lbnViYXI9MScpO1xuXHRcdFx0fVxuXHRcblx0XHRcdHRoaXMuX2FjdGl2ZU1vZGFsLmNsb3NlKCk7XG5cdFx0fVxuXHR9XG5cblx0bmdBZnRlclZpZXdJbml0KCkge1xuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0bGV0IGZvdW5kRWxlbWVudCA9IHRoaXMucmVjdXJzaXZlRmluZEZpcnN0RWxlbWVudCh0aGlzLmFsbEVsZW1lbnRzLm5hdGl2ZUVsZW1lbnQpO1xuXHRcdFx0aWYgKGZvdW5kRWxlbWVudCkge1xuXHRcdFx0XHRmb3VuZEVsZW1lbnQuZm9jdXMoKTtcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHR0aGlzLmNsb3NlLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblx0XHRcdFx0dGhpcy5jbG9zZS5uYXRpdmVFbGVtZW50LmJsdXIoKTtcblx0XHRcdH1cblx0XHR9LCAxMDApO1xuXHR9XG5cblx0cmVjdXJzaXZlRmluZEZpcnN0RWxlbWVudChlbGVtZW50KSB7XG5cdFx0bGV0IGZvdW5kRWxlbWVudCA9IG51bGw7XG5cdFx0bGV0IGh0bWxDb2w6IEhUTUxDb2xsZWN0aW9uID0gZWxlbWVudC5jaGlsZHJlbjtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IE9iamVjdC5rZXlzKGh0bWxDb2wpLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRsZXQga2V5ID0gT2JqZWN0LmtleXMoaHRtbENvbClbaV07XG5cblx0XHRcdGxldCBodG1sRWxlbSA9IGh0bWxDb2xba2V5XTtcblx0XHRcdGlmIChodG1sRWxlbS5jaGlsZHJlbiAmJiBodG1sRWxlbS5jaGlsZHJlbi5sZW5ndGgpIHtcblx0XHRcdFx0Zm91bmRFbGVtZW50ID0gdGhpcy5yZWN1cnNpdmVGaW5kRmlyc3RFbGVtZW50KGh0bWxFbGVtKTtcblx0XHRcdH1cblx0XHRcdGVsc2UgaWYgKGh0bWxFbGVtLnRhZ05hbWUgPT09ICdCVVRUT04nICYmIGh0bWxFbGVtLmNsYXNzTGlzdC5jb250YWlucygnY2xvc2UnKSkge1xuXHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdH1cblx0XHRcdGVsc2UgaWYgKChodG1sRWxlbS50YWdOYW1lID09PSAnQlVUVE9OJyB8fCBodG1sRWxlbS50YWdOYW1lID09PSAnSU5QVVQnIHx8IGh0bWxFbGVtLnRhZ05hbWUgPT09ICdTRUxFQ1QnIHx8IGh0bWxFbGVtLnRhZ05hbWUgPT09ICdURVhUQVJFQScpICYmICFodG1sRWxlbS5oaWRkZW4gJiYgIWh0bWxFbGVtLmRpc2FibGVkKSB7XG5cdFx0XHRcdHJldHVybiBodG1sRWxlbTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKGZvdW5kRWxlbWVudCkge1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZm91bmRFbGVtZW50O1xuXHR9XG5cblx0b25TZWxlY3RUeXBlKHR5cGUpIHtcblx0XHR0aGlzLnNlbGVjdGVkVHlwZSA9IHR5cGU7XG5cblx0XHR0aGlzLnN1Ym1pdCgpO1xuXHR9XG5cblx0c3VibWl0KCkge1xuXG5cdFx0aWYgKHRoaXMuc2VsZWN0ZWRUeXBlID09PSAnc2FtZV90YWInKSB7XG5cdFx0XHR3aW5kb3cub3Blbih0aGlzLnVybCwgJ19zZWxmJyk7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuc2VsZWN0ZWRUeXBlID09PSAnbmV3X3RhYicpIHtcblx0XHRcdHdpbmRvdy5vcGVuKHRoaXMudXJsLCAnX2JsYW5rJyk7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuc2VsZWN0ZWRUeXBlID09PSAnbmV3X3dpbmRvdycpIHtcblx0XHRcdHdpbmRvdy5vcGVuKHRoaXMudXJsLCAnX2JsYW5rJywgJ3Rvb2xiYXI9MSxsb2NhdGlvbj0xLG1lbnViYXI9MScpO1xuXHRcdH1cblxuXHRcdHRoaXMuX2FjdGl2ZU1vZGFsLmNsb3NlKCk7XG5cdH1cbn1cbiJdfQ==