ng-zenduit 2.0.1 → 2.0.3

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,6 +41,7 @@ import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
41
41
  import { TranslateHttpLoader } from '@ngx-translate/http-loader';
42
42
  import { HttpClient } from '@angular/common/http';
43
43
  import { ZenduSelectButtonDirective } from './select/templates/zendu-select-button.directive';
44
+ import { ZenduTimepickerComponent } from './timepicker/zendu-timepicker.component';
44
45
  import { OverlayModule } from '@angular/cdk/overlay';
45
46
  import * as i0 from "@angular/core";
46
47
  import * as i1 from "@ngx-translate/core";
@@ -83,7 +84,8 @@ NgZenduitModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
83
84
  ZenHlsPlayerComponent,
84
85
  ZenSnapshotPlayerComponent,
85
86
  ZenWebRTCPlayerComponent,
86
- ZenduSelectButtonDirective], imports: [CommonModule,
87
+ ZenduSelectButtonDirective,
88
+ ZenduTimepickerComponent], imports: [CommonModule,
87
89
  FormsModule,
88
90
  DragDropModule,
89
91
  AngularSignaturePadModule,
@@ -116,7 +118,8 @@ NgZenduitModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
116
118
  ZenduProgress,
117
119
  ZenduLocationSearch,
118
120
  ZenLiveViewPlayerComponent,
119
- ZenduSelectButtonDirective] });
121
+ ZenduSelectButtonDirective,
122
+ ZenduTimepickerComponent] });
120
123
  NgZenduitModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NgZenduitModule, providers: [
121
124
  OpenCVService,
122
125
  ], imports: [CommonModule,
@@ -169,7 +172,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
169
172
  ZenHlsPlayerComponent,
170
173
  ZenSnapshotPlayerComponent,
171
174
  ZenWebRTCPlayerComponent,
172
- ZenduSelectButtonDirective
175
+ ZenduSelectButtonDirective,
176
+ ZenduTimepickerComponent
173
177
  ],
174
178
  providers: [
175
179
  OpenCVService,
@@ -218,8 +222,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
218
222
  ZenduProgress,
219
223
  ZenduLocationSearch,
220
224
  ZenLiveViewPlayerComponent,
221
- ZenduSelectButtonDirective
225
+ ZenduSelectButtonDirective,
226
+ ZenduTimepickerComponent
222
227
  ]
223
228
  }]
224
229
  }] });
225
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctemVuZHVpdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy16ZW5kdWl0L3NyYy9saWIvbmctemVuZHVpdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ2hILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSx3QkFB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O3dCQUNmLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQiwwQkFBMEI7d0JBQzFCLDBCQUEwQjtxQkFDM0I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgWmVuZHVDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vY2hlY2tib3gvemVuZHUtY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IFplbmR1Q29sb3JQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbG9ycGlja2VyL3plbmR1LWNvbG9ycGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBaZW5kdUNvbHVtbkNvbmZpZ3VyYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbHVtbi1jb25maWd1cmF0aW9uL3plbmR1LWNvbHVtbi1jb25maWd1cmF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBaZW5kdURhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2RhdGVwaWNrZXIvemVuZHUtZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgWmVuZHVGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2ZpbHRlci96ZW5kdS1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFplbmR1R3JvdXBzQ29tcG9uZW50IH0gZnJvbSAnLi9ncm91cHMvemVuZHUtZ3JvdXBzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBaZW5kdVBhZ2luYXRpb25CYXJDb21wb25lbnQgfSBmcm9tICcuL3BhZ2luYXRpb24tYmFyL3plbmR1LXBhZ2luYXRpb24tYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBaZW5kdVBob25lSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL3Bob25lLWlucHV0L3plbmR1LXBob25lLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBaZW5kdVJhZGlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBaZW5kdVNlYXJjaEJveENvbXBvbmVudCB9IGZyb20gJy4vc2VhcmNoLWJveC96ZW5kdS1zZWFyY2gtYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBaZW5kdVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0L3plbmR1LXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgWmVuZHVTZWxlY3RPcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuL3NlbGVjdC90ZW1wbGF0ZXMvemVuZHUtc2VsZWN0LW9wdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgWmVuZHVTZWxlY3RWYWx1ZURpcmVjdGl2ZSB9IGZyb20gJy4vc2VsZWN0L3RlbXBsYXRlcy96ZW5kdS1zZWxlY3QtdmFsdWUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFplbmR1U29ydEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vc29ydC1oZWFkZXIvemVuZHUtc29ydC1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFplbmR1VG9nZ2xlU2xpZGVDb21wb25lbnQgfSBmcm9tICcuL3RvZ2dsZS1zbGlkZS96ZW5kdS10b2dnbGUtc2xpZGUuY29tcG9uZW50JztcbmltcG9ydCB7IFplbmR1VG9nZ2xlQ29tcG9uZW50IH0gZnJvbSAnLi90b2dnbGUvemVuZHUtdG9nZ2xlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgWmVuZHVJY29uQ29tcG9uZW50IH0gZnJvbSAnLi9pY29uL3plbmR1LWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IFplbmR1Q2FyZEJsb2NrQ29tcG9uZW50IH0gZnJvbSAnLi9jYXJkLWJsb2NrL3plbmR1LWNhcmQtYmxvY2suY29tcG9uZW50JztcbmltcG9ydCB7IFplbmR1TWFwUHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4vbWFwLXByZXZpZXcvemVuZHUtbWFwLXByZXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IFplbmR1U3Bpbm5lciB9IGZyb20gJy4vc3Bpbm5lci96ZW5kdS1zcGlubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBaZW5kdURvY1NjYW5uZXIgfSBmcm9tICcuL2RvYy1zY2FubmVyL3plbmR1LWRvYy1zY2FubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBaZW5kdUJyZWFkY3J1bWJzIH0gZnJvbSAnLi9icmVhZGNydW1icy96ZW5kdS1icmVhZGNydW1icy5jb21wb25lbnQnO1xuaW1wb3J0IHsgWmVuZHVNYXBDb21wb25lbnQgfSBmcm9tICcuL21hcC96ZW5kdS1tYXAuY29tcG9uZW50JztcbmltcG9ydCB7IFplbmR1RmlsZVVwbG9hZCB9IGZyb20gJy4vZmlsZS11cGxvYWQvemVuZHUtZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7IFplbmR1UHJvZ3Jlc3MgfSBmcm9tICcuL3Byb2dyZXNzL3plbmR1LXByb2dyZXNzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPcGVuQ1ZTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9vcGVuY3Yuc2VydmljZSc7XG5pbXBvcnQgeyBaZW5kdUxvY2F0aW9uU2VhcmNoIH0gZnJvbSAnLi9sb2NhdGlvbi1zZWFyY2gvemVuZHUtbG9jYXRpb24tc2VhcmNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbmd1bGFyU2lnbmF0dXJlUGFkTW9kdWxlIH0gZnJvbSAnQGFsbW90aGFmYXIvYW5ndWxhci1zaWduYXR1cmUtcGFkJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBaZW5MaXZlVmlld1BsYXllckNvbXBvbmVudCB9IGZyb20gJy4vbGl2ZS12aWV3LXBsYXllci9saXZlLXZpZXctcGxheWVyL2xpdmUtdmlldy1wbGF5ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFplbkhUTUw1VmlkZW9QbGF5ZXJDb21wb25lbnQgfSBmcm9tICcuL2xpdmUtdmlldy1wbGF5ZXIvaHRtbDUtdmlkZW8tcGxheWVyL2h0bWw1LXZpZGVvLXBsYXllci5jb21wb25lbnQnO1xuaW1wb3J0IHsgWmVuRmx2UGxheWVyQ29tcG9uZW50IH0gZnJvbSAnLi9saXZlLXZpZXctcGxheWVyL2Zsdi1wbGF5ZXIvZmx2LXBsYXllci5jb21wb25lbnQnO1xuaW1wb3J0IHsgWmVuSGxzUGxheWVyQ29tcG9uZW50IH0gZnJvbSAnLi9saXZlLXZpZXctcGxheWVyL2hscy1wbGF5ZXIvaGxzLXBsYXllci5jb21wb25lbnQnO1xuaW1wb3J0IHsgWmVuV2ViUlRDUGxheWVyQ29tcG9uZW50IH0gZnJvbSAnLi9saXZlLXZpZXctcGxheWVyL3dlYi1ydGMvd2ViLXJ0Yy1wbGF5ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFplblNuYXBzaG90UGxheWVyQ29tcG9uZW50IH0gZnJvbSAnLi9saXZlLXZpZXctcGxheWVyL3NuYXBzaG90LXBsYXllci9zbmFwc2hvdC1wbGF5ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRyYW5zbGF0ZUxvYWRlciwgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVIdHRwTG9hZGVyIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvaHR0cC1sb2FkZXInO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFplbmR1U2VsZWN0QnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi9zZWxlY3QvdGVtcGxhdGVzL3plbmR1LXNlbGVjdC1idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5cbi8vIEFvVCByZXF1aXJlcyBhbiBleHBvcnRlZCBmdW5jdGlvbiBmb3IgZmFjdG9yaWVzXG5leHBvcnQgZnVuY3Rpb24gSHR0cExvYWRlckZhY3RvcnkoaHR0cENsaWVudDogSHR0cENsaWVudCkge1xuICAgIHJldHVybiBuZXcgVHJhbnNsYXRlSHR0cExvYWRlcihodHRwQ2xpZW50KTtcbn1cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgWmVuZHVDaGVja2JveENvbXBvbmVudCxcbiAgICBaZW5kdVRvZ2dsZUNvbXBvbmVudCxcbiAgICBaZW5kdVRvZ2dsZVNsaWRlQ29tcG9uZW50LFxuICAgIFplbmR1U2VhcmNoQm94Q29tcG9uZW50LFxuICAgIFplbmR1U2VsZWN0Q29tcG9uZW50LFxuICAgIFplbmR1U2VsZWN0T3B0aW9uRGlyZWN0aXZlLFxuICAgIFplbmR1U2VsZWN0VmFsdWVEaXJlY3RpdmUsXG4gICAgWmVuZHVEYXRlcGlja2VyQ29tcG9uZW50LFxuICAgIFplbmR1RmlsdGVyQ29tcG9uZW50LFxuICAgIFplbmR1R3JvdXBzQ29tcG9uZW50LFxuICAgIFplbmR1UGFnaW5hdGlvbkJhckNvbXBvbmVudCxcbiAgICBaZW5kdUNvbHVtbkNvbmZpZ3VyYXRpb25Db21wb25lbnQsXG4gICAgWmVuZHVTb3J0SGVhZGVyQ29tcG9uZW50LFxuICAgIFplbmR1UGhvbmVJbnB1dENvbXBvbmVudCxcbiAgICBaZW5kdUNvbG9yUGlja2VyQ29tcG9uZW50LFxuICAgIFplbmR1UmFkaW9CdXR0b25Db21wb25lbnQsXG4gICAgWmVuZHVJY29uQ29tcG9uZW50LFxuICAgIFplbmR1Q2FyZEJsb2NrQ29tcG9uZW50LFxuICAgIFplbmR1TWFwUHJldmlld0NvbXBvbmVudCxcbiAgICBaZW5kdVNwaW5uZXIsXG4gICAgWmVuZHVEb2NTY2FubmVyLFxuICAgIFplbmR1QnJlYWRjcnVtYnMsXG4gICAgWmVuZHVNYXBDb21wb25lbnQsXG4gICAgWmVuZHVGaWxlVXBsb2FkLFxuICAgIFplbmR1UHJvZ3Jlc3MsXG4gICAgWmVuZHVMb2NhdGlvblNlYXJjaCxcbiAgICBaZW5MaXZlVmlld1BsYXllckNvbXBvbmVudCxcbiAgICBaZW5IVE1MNVZpZGVvUGxheWVyQ29tcG9uZW50LFxuICAgIFplbkZsdlBsYXllckNvbXBvbmVudCxcbiAgICBaZW5IbHNQbGF5ZXJDb21wb25lbnQsXG4gICAgWmVuU25hcHNob3RQbGF5ZXJDb21wb25lbnQsXG4gICAgWmVuV2ViUlRDUGxheWVyQ29tcG9uZW50LFxuICAgIFplbmR1U2VsZWN0QnV0dG9uRGlyZWN0aXZlXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIE9wZW5DVlNlcnZpY2UsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXG4gICAgQW5ndWxhclNpZ25hdHVyZVBhZE1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgT3ZlcmxheU1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUuZm9yUm9vdCh7XG4gICAgICAgIGxvYWRlcjoge1xuICAgICAgICAgICAgcHJvdmlkZTogVHJhbnNsYXRlTG9hZGVyLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogSHR0cExvYWRlckZhY3RvcnksXG4gICAgICAgICAgICBkZXBzOiBbSHR0cENsaWVudF1cbiAgICAgICAgfVxuICAgIH0pXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBaZW5kdUNoZWNrYm94Q29tcG9uZW50LFxuICAgIFplbmR1VG9nZ2xlQ29tcG9uZW50LFxuICAgIFplbmR1VG9nZ2xlU2xpZGVDb21wb25lbnQsXG4gICAgWmVuZHVTZWFyY2hCb3hDb21wb25lbnQsXG4gICAgWmVuZHVTZWxlY3RDb21wb25lbnQsXG4gICAgWmVuZHVTZWxlY3RPcHRpb25EaXJlY3RpdmUsXG4gICAgWmVuZHVTZWxlY3RWYWx1ZURpcmVjdGl2ZSxcbiAgICBaZW5kdURhdGVwaWNrZXJDb21wb25lbnQsXG4gICAgWmVuZHVGaWx0ZXJDb21wb25lbnQsXG4gICAgWmVuZHVHcm91cHNDb21wb25lbnQsXG4gICAgWmVuZHVQYWdpbmF0aW9uQmFyQ29tcG9uZW50LFxuICAgIFplbmR1Q29sdW1uQ29uZmlndXJhdGlvbkNvbXBvbmVudCxcbiAgICBaZW5kdVNvcnRIZWFkZXJDb21wb25lbnQsXG4gICAgWmVuZHVQaG9uZUlucHV0Q29tcG9uZW50LFxuICAgIFplbmR1Q29sb3JQaWNrZXJDb21wb25lbnQsXG4gICAgWmVuZHVSYWRpb0J1dHRvbkNvbXBvbmVudCxcbiAgICBaZW5kdUljb25Db21wb25lbnQsXG4gICAgWmVuZHVDYXJkQmxvY2tDb21wb25lbnQsXG4gICAgWmVuZHVNYXBQcmV2aWV3Q29tcG9uZW50LFxuICAgIFplbmR1U3Bpbm5lcixcbiAgICBaZW5kdURvY1NjYW5uZXIsXG4gICAgWmVuZHVCcmVhZGNydW1icyxcbiAgICBaZW5kdU1hcENvbXBvbmVudCxcbiAgICBaZW5kdUZpbGVVcGxvYWQsXG4gICAgWmVuZHVQcm9ncmVzcyxcbiAgICBaZW5kdUxvY2F0aW9uU2VhcmNoLFxuICAgIFplbkxpdmVWaWV3UGxheWVyQ29tcG9uZW50LFxuICAgIFplbmR1U2VsZWN0QnV0dG9uRGlyZWN0aXZlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTmdaZW5kdWl0TW9kdWxlIHsgfVxuXG4iXX0=
230
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctemVuZHVpdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy16ZW5kdWl0L3NyYy9saWIvbmctemVuZHVpdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ2hILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSx3QkFB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Qix1QkFBdUI7d0JBQ3ZCLHdCQUF3Qjt3QkFDeEIsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQiwwQkFBMEI7d0JBQzFCLDBCQUEwQjt3QkFDMUIsd0JBQXdCO3FCQUN6QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBaZW5kdUNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jaGVja2JveC96ZW5kdS1jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgWmVuZHVDb2xvclBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY29sb3JwaWNrZXIvemVuZHUtY29sb3JwaWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFplbmR1Q29sdW1uQ29uZmlndXJhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29sdW1uLWNvbmZpZ3VyYXRpb24vemVuZHUtY29sdW1uLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFplbmR1RGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZXBpY2tlci96ZW5kdS1kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBaZW5kdUZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vZmlsdGVyL3plbmR1LWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgWmVuZHVHcm91cHNDb21wb25lbnQgfSBmcm9tICcuL2dyb3Vwcy96ZW5kdS1ncm91cHMuY29tcG9uZW50JztcbmltcG9ydCB7IFplbmR1UGFnaW5hdGlvbkJhckNvbXBvbmVudCB9IGZyb20gJy4vcGFnaW5hdGlvbi1iYXIvemVuZHUtcGFnaW5hdGlvbi1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFplbmR1UGhvbmVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vcGhvbmUtaW5wdXQvemVuZHUtcGhvbmUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFplbmR1UmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICcuL3JhZGlvLWJ1dHRvbi9yYWRpby1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFplbmR1U2VhcmNoQm94Q29tcG9uZW50IH0gZnJvbSAnLi9zZWFyY2gtYm94L3plbmR1LXNlYXJjaC1ib3guY29tcG9uZW50JztcbmltcG9ydCB7IFplbmR1U2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QvemVuZHUtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBaZW5kdVNlbGVjdE9wdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vc2VsZWN0L3RlbXBsYXRlcy96ZW5kdS1zZWxlY3Qtb3B0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBaZW5kdVNlbGVjdFZhbHVlRGlyZWN0aXZlIH0gZnJvbSAnLi9zZWxlY3QvdGVtcGxhdGVzL3plbmR1LXNlbGVjdC12YWx1ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgWmVuZHVTb3J0SGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zb3J0LWhlYWRlci96ZW5kdS1zb3J0LWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgWmVuZHVUb2dnbGVTbGlkZUNvbXBvbmVudCB9IGZyb20gJy4vdG9nZ2xlLXNsaWRlL3plbmR1LXRvZ2dsZS1zbGlkZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgWmVuZHVUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuL3RvZ2dsZS96ZW5kdS10b2dnbGUuY29tcG9uZW50JztcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBaZW5kdUljb25Db21wb25lbnQgfSBmcm9tICcuL2ljb24vemVuZHUtaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgWmVuZHVDYXJkQmxvY2tDb21wb25lbnQgfSBmcm9tICcuL2NhcmQtYmxvY2svemVuZHUtY2FyZC1ibG9jay5jb21wb25lbnQnO1xuaW1wb3J0IHsgWmVuZHVNYXBQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi9tYXAtcHJldmlldy96ZW5kdS1tYXAtcHJldmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgWmVuZHVTcGlubmVyIH0gZnJvbSAnLi9zcGlubmVyL3plbmR1LXNwaW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFplbmR1RG9jU2Nhbm5lciB9IGZyb20gJy4vZG9jLXNjYW5uZXIvemVuZHUtZG9jLXNjYW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFplbmR1QnJlYWRjcnVtYnMgfSBmcm9tICcuL2JyZWFkY3J1bWJzL3plbmR1LWJyZWFkY3J1bWJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBaZW5kdU1hcENvbXBvbmVudCB9IGZyb20gJy4vbWFwL3plbmR1LW1hcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgWmVuZHVGaWxlVXBsb2FkIH0gZnJvbSAnLi9maWxlLXVwbG9hZC96ZW5kdS1maWxlLXVwbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgWmVuZHVQcm9ncmVzcyB9IGZyb20gJy4vcHJvZ3Jlc3MvemVuZHUtcHJvZ3Jlc3MuY29tcG9uZW50JztcbmltcG9ydCB7IE9wZW5DVlNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL29wZW5jdi5zZXJ2aWNlJztcbmltcG9ydCB7IFplbmR1TG9jYXRpb25TZWFyY2ggfSBmcm9tICcuL2xvY2F0aW9uLXNlYXJjaC96ZW5kdS1sb2NhdGlvbi1zZWFyY2guY29tcG9uZW50JztcbmltcG9ydCB7IEFuZ3VsYXJTaWduYXR1cmVQYWRNb2R1bGUgfSBmcm9tICdAYWxtb3RoYWZhci9hbmd1bGFyLXNpZ25hdHVyZS1wYWQnO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFplbkxpdmVWaWV3UGxheWVyQ29tcG9uZW50IH0gZnJvbSAnLi9saXZlLXZpZXctcGxheWVyL2xpdmUtdmlldy1wbGF5ZXIvbGl2ZS12aWV3LXBsYXllci5jb21wb25lbnQnO1xuaW1wb3J0IHsgWmVuSFRNTDVWaWRlb1BsYXllckNvbXBvbmVudCB9IGZyb20gJy4vbGl2ZS12aWV3LXBsYXllci9odG1sNS12aWRlby1wbGF5ZXIvaHRtbDUtdmlkZW8tcGxheWVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBaZW5GbHZQbGF5ZXJDb21wb25lbnQgfSBmcm9tICcuL2xpdmUtdmlldy1wbGF5ZXIvZmx2LXBsYXllci9mbHYtcGxheWVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBaZW5IbHNQbGF5ZXJDb21wb25lbnQgfSBmcm9tICcuL2xpdmUtdmlldy1wbGF5ZXIvaGxzLXBsYXllci9obHMtcGxheWVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBaZW5XZWJSVENQbGF5ZXJDb21wb25lbnQgfSBmcm9tICcuL2xpdmUtdmlldy1wbGF5ZXIvd2ViLXJ0Yy93ZWItcnRjLXBsYXllci5jb21wb25lbnQnO1xuaW1wb3J0IHsgWmVuU25hcHNob3RQbGF5ZXJDb21wb25lbnQgfSBmcm9tICcuL2xpdmUtdmlldy1wbGF5ZXIvc25hcHNob3QtcGxheWVyL3NuYXBzaG90LXBsYXllci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTG9hZGVyLCBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZUh0dHBMb2FkZXIgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9odHRwLWxvYWRlcic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgWmVuZHVTZWxlY3RCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuL3NlbGVjdC90ZW1wbGF0ZXMvemVuZHUtc2VsZWN0LWJ1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgWmVuZHVUaW1lcGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lcGlja2VyL3plbmR1LXRpbWVwaWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5cbi8vIEFvVCByZXF1aXJlcyBhbiBleHBvcnRlZCBmdW5jdGlvbiBmb3IgZmFjdG9yaWVzXG5leHBvcnQgZnVuY3Rpb24gSHR0cExvYWRlckZhY3RvcnkoaHR0cENsaWVudDogSHR0cENsaWVudCkge1xuICAgIHJldHVybiBuZXcgVHJhbnNsYXRlSHR0cExvYWRlcihodHRwQ2xpZW50KTtcbn1cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgWmVuZHVDaGVja2JveENvbXBvbmVudCxcbiAgICBaZW5kdVRvZ2dsZUNvbXBvbmVudCxcbiAgICBaZW5kdVRvZ2dsZVNsaWRlQ29tcG9uZW50LFxuICAgIFplbmR1U2VhcmNoQm94Q29tcG9uZW50LFxuICAgIFplbmR1U2VsZWN0Q29tcG9uZW50LFxuICAgIFplbmR1U2VsZWN0T3B0aW9uRGlyZWN0aXZlLFxuICAgIFplbmR1U2VsZWN0VmFsdWVEaXJlY3RpdmUsXG4gICAgWmVuZHVEYXRlcGlja2VyQ29tcG9uZW50LFxuICAgIFplbmR1RmlsdGVyQ29tcG9uZW50LFxuICAgIFplbmR1R3JvdXBzQ29tcG9uZW50LFxuICAgIFplbmR1UGFnaW5hdGlvbkJhckNvbXBvbmVudCxcbiAgICBaZW5kdUNvbHVtbkNvbmZpZ3VyYXRpb25Db21wb25lbnQsXG4gICAgWmVuZHVTb3J0SGVhZGVyQ29tcG9uZW50LFxuICAgIFplbmR1UGhvbmVJbnB1dENvbXBvbmVudCxcbiAgICBaZW5kdUNvbG9yUGlja2VyQ29tcG9uZW50LFxuICAgIFplbmR1UmFkaW9CdXR0b25Db21wb25lbnQsXG4gICAgWmVuZHVJY29uQ29tcG9uZW50LFxuICAgIFplbmR1Q2FyZEJsb2NrQ29tcG9uZW50LFxuICAgIFplbmR1TWFwUHJldmlld0NvbXBvbmVudCxcbiAgICBaZW5kdVNwaW5uZXIsXG4gICAgWmVuZHVEb2NTY2FubmVyLFxuICAgIFplbmR1QnJlYWRjcnVtYnMsXG4gICAgWmVuZHVNYXBDb21wb25lbnQsXG4gICAgWmVuZHVGaWxlVXBsb2FkLFxuICAgIFplbmR1UHJvZ3Jlc3MsXG4gICAgWmVuZHVMb2NhdGlvblNlYXJjaCxcbiAgICBaZW5MaXZlVmlld1BsYXllckNvbXBvbmVudCxcbiAgICBaZW5IVE1MNVZpZGVvUGxheWVyQ29tcG9uZW50LFxuICAgIFplbkZsdlBsYXllckNvbXBvbmVudCxcbiAgICBaZW5IbHNQbGF5ZXJDb21wb25lbnQsXG4gICAgWmVuU25hcHNob3RQbGF5ZXJDb21wb25lbnQsXG4gICAgWmVuV2ViUlRDUGxheWVyQ29tcG9uZW50LFxuICAgIFplbmR1U2VsZWN0QnV0dG9uRGlyZWN0aXZlLFxuICAgIFplbmR1VGltZXBpY2tlckNvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBPcGVuQ1ZTZXJ2aWNlLFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIERyYWdEcm9wTW9kdWxlLFxuICAgIEFuZ3VsYXJTaWduYXR1cmVQYWRNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgIE92ZXJsYXlNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvclJvb3Qoe1xuICAgICAgICBsb2FkZXI6IHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFRyYW5zbGF0ZUxvYWRlcixcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IEh0dHBMb2FkZXJGYWN0b3J5LFxuICAgICAgICAgICAgZGVwczogW0h0dHBDbGllbnRdXG4gICAgICAgIH1cbiAgICB9KVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgWmVuZHVDaGVja2JveENvbXBvbmVudCxcbiAgICBaZW5kdVRvZ2dsZUNvbXBvbmVudCxcbiAgICBaZW5kdVRvZ2dsZVNsaWRlQ29tcG9uZW50LFxuICAgIFplbmR1U2VhcmNoQm94Q29tcG9uZW50LFxuICAgIFplbmR1U2VsZWN0Q29tcG9uZW50LFxuICAgIFplbmR1U2VsZWN0T3B0aW9uRGlyZWN0aXZlLFxuICAgIFplbmR1U2VsZWN0VmFsdWVEaXJlY3RpdmUsXG4gICAgWmVuZHVEYXRlcGlja2VyQ29tcG9uZW50LFxuICAgIFplbmR1RmlsdGVyQ29tcG9uZW50LFxuICAgIFplbmR1R3JvdXBzQ29tcG9uZW50LFxuICAgIFplbmR1UGFnaW5hdGlvbkJhckNvbXBvbmVudCxcbiAgICBaZW5kdUNvbHVtbkNvbmZpZ3VyYXRpb25Db21wb25lbnQsXG4gICAgWmVuZHVTb3J0SGVhZGVyQ29tcG9uZW50LFxuICAgIFplbmR1UGhvbmVJbnB1dENvbXBvbmVudCxcbiAgICBaZW5kdUNvbG9yUGlja2VyQ29tcG9uZW50LFxuICAgIFplbmR1UmFkaW9CdXR0b25Db21wb25lbnQsXG4gICAgWmVuZHVJY29uQ29tcG9uZW50LFxuICAgIFplbmR1Q2FyZEJsb2NrQ29tcG9uZW50LFxuICAgIFplbmR1TWFwUHJldmlld0NvbXBvbmVudCxcbiAgICBaZW5kdVNwaW5uZXIsXG4gICAgWmVuZHVEb2NTY2FubmVyLFxuICAgIFplbmR1QnJlYWRjcnVtYnMsXG4gICAgWmVuZHVNYXBDb21wb25lbnQsXG4gICAgWmVuZHVGaWxlVXBsb2FkLFxuICAgIFplbmR1UHJvZ3Jlc3MsXG4gICAgWmVuZHVMb2NhdGlvblNlYXJjaCxcbiAgICBaZW5MaXZlVmlld1BsYXllckNvbXBvbmVudCxcbiAgICBaZW5kdVNlbGVjdEJ1dHRvbkRpcmVjdGl2ZSxcbiAgICBaZW5kdVRpbWVwaWNrZXJDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ1plbmR1aXRNb2R1bGUgeyB9XG5cbiJdfQ==
@@ -123,10 +123,10 @@ export class ZenduPhoneInputComponent {
123
123
  }
124
124
  }
125
125
  ZenduPhoneInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ZenduPhoneInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
126
- ZenduPhoneInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ZenduPhoneInputComponent, selector: "zen-phone-input", inputs: { phone: "phone", maxLength: "maxLength", disabled: "disabled" }, outputs: { phoneChange: "phoneChange", validChange: "validChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"phone-input-component\">\n <div class=\"material-input\">\n <a class=\"country-select\"\n (click)=\"toggle()\">\n <img class=\"country-flag\"\n [src]=\"selectedCountry.flag\">\n <i class=\"material-icons expand-icon\"\n [ngClass]=\"{'active': isExpanded}\">expand_more</i>\n <div class=\"code\">{{ selectedCountry.countryCallingCode }}</div>\n </a>\n <input class=\"phone-input\"\n type=\"text\"\n [(ngModel)]=\"phoneText\"\n (ngModelChange)=\"phoneChanged(input)\"\n (click)=\"isExpanded = false\"\n [disabled]=\"disabled\"\n country-code=\"selectedCountry.countryCode\"\n [maxlength]=\"maxLength\"\n #input>\n </div>\n\n <div class=\"action-menu country-dropdown-list\"\n *ngIf=\"isExpanded\">\n <div class=\"action-menu-body\">\n <!--Country's List-->\n <a class=\"action-item\"\n *ngFor=\"let country of countryList\"\n [ngClass]=\"{'active': selectedCountry.countryName === country.countryName}\"\n (click)=\"countryChanged(country)\">\n <img class=\"country-flag\"\n [src]=\"country.flag\">\n <div>{{ country.countryName }}</div>\n <div>{{ country.countryCallingCode }}</div>\n </a>\n\n <!--Custom Country-->\n <a class=\"action-item\"\n [ngClass]=\"{'active': selectedCountry.countryName === customCountry.countryName}\"\n (click)=\"countryChanged(customCountry)\">\n <img class=\"country-flag\"\n [src]=\"customCountry.flag\">\n <div>{{ customCountry.countryName }}</div>\n <div>{{ customCountry.countryCallingCode }}</div>\n </a>\n </div>\n </div>\n</div>\n", styles: [".phone-input-component{position:relative;width:100%}.phone-input-component .material-input,.phone-input-component .zen-input{display:flex;align-items:center;gap:8px}.phone-input-component .material-input .country-select,.phone-input-component .zen-input .country-select{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;text-decoration:none;outline:none}.phone-input-component .material-input .country-select .expand-icon,.phone-input-component .zen-input .country-select .expand-icon{color:#60636c;transition:.3s}.phone-input-component .material-input .country-select .expand-icon.active,.phone-input-component .zen-input .country-select .expand-icon.active{color:#2188d9;transform:rotate(180deg)}.phone-input-component .material-input .country-select .code,.phone-input-component .zen-input .country-select .code{font-style:normal;font-weight:400;font-size:16px;line-height:24px;color:#333}.phone-input-component .material-input .country-select:focus .expand-icon,.phone-input-component .zen-input .country-select:focus .expand-icon{color:#2188d9}.phone-input-component .material-input .phone-input,.phone-input-component .zen-input .phone-input{flex:1;border:none;outline:none;font-style:normal;font-weight:400;font-size:16px;line-height:24px;color:#333;background:transparent}.phone-input-component .country-dropdown-list{width:inherit;margin-top:8px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
126
+ ZenduPhoneInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ZenduPhoneInputComponent, selector: "zen-phone-input", inputs: { phone: "phone", maxLength: "maxLength", disabled: "disabled", width: "width" }, outputs: { phoneChange: "phoneChange", validChange: "validChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"phone-input-component\" [style.width]=\"width\">\n <div class=\"material-input\">\n <a class=\"country-select\"\n (click)=\"toggle()\">\n <img class=\"country-flag\"\n [src]=\"selectedCountry.flag\">\n <i class=\"material-icons expand-icon\"\n [ngClass]=\"{'active': isExpanded}\">expand_less</i>\n <div class=\"code\">{{ selectedCountry.countryCallingCode }}</div>\n </a>\n <input class=\"phone-input\"\n type=\"text\"\n [(ngModel)]=\"phoneText\"\n (ngModelChange)=\"phoneChanged(input)\"\n (click)=\"isExpanded = false\"\n [disabled]=\"disabled\"\n country-code=\"selectedCountry.countryCode\"\n [maxlength]=\"maxLength\"\n #input>\n </div>\n\n <div class=\"action-menu country-dropdown-list\"\n *ngIf=\"isExpanded\">\n <div class=\"action-menu-body\">\n <!--Country's List-->\n <a class=\"action-item\"\n *ngFor=\"let country of countryList\"\n [ngClass]=\"{'active': selectedCountry.countryName === country.countryName}\"\n (click)=\"countryChanged(country)\">\n <img class=\"country-flag\"\n [src]=\"country.flag\">\n <div>{{ country.countryName }}</div>\n <div>{{ country.countryCallingCode }}</div>\n </a>\n\n <!--Custom Country-->\n <a class=\"action-item\"\n [ngClass]=\"{'active': selectedCountry.countryName === customCountry.countryName}\"\n (click)=\"countryChanged(customCountry)\">\n <img class=\"country-flag\"\n [src]=\"customCountry.flag\">\n <div>{{ customCountry.countryName }}</div>\n <div>{{ customCountry.countryCallingCode }}</div>\n </a>\n </div>\n </div>\n</div>\n", styles: [":host{display:block;overflow:visible}.phone-input-component{position:relative;width:100%}.phone-input-component .material-input,.phone-input-component .zen-input{display:flex;align-items:center;gap:4px;border:1px solid #D0D5DD;border-radius:10px;padding:8px 14px;background:#FFFFFF;transition:border-color .2s;box-sizing:border-box}.phone-input-component .material-input:focus-within,.phone-input-component .zen-input:focus-within{border-color:#2188d9;z-index:1;position:relative}.phone-input-component .material-input .country-select,.phone-input-component .zen-input .country-select{display:flex;align-items:center;gap:4px;cursor:pointer;-webkit-user-select:none;user-select:none;text-decoration:none;outline:none;flex-shrink:0}.phone-input-component .material-input .country-select .country-flag,.phone-input-component .zen-input .country-select .country-flag{width:24px;height:24px;object-fit:contain}.phone-input-component .material-input .country-select .expand-icon,.phone-input-component .zen-input .country-select .expand-icon{color:#2188d9;font-size:20px;transition:transform .3s}.phone-input-component .material-input .country-select .expand-icon.active,.phone-input-component .zen-input .country-select .expand-icon.active{transform:rotate(180deg)}.phone-input-component .material-input .country-select .code,.phone-input-component .zen-input .country-select .code{font-style:normal;font-weight:500;font-size:15px;line-height:24px;color:#333;min-width:32px}.phone-input-component .material-input .country-select:focus .expand-icon,.phone-input-component .zen-input .country-select:focus .expand-icon{color:#2188d9}.phone-input-component .material-input .phone-input,.phone-input-component .zen-input .phone-input{flex:1;border:none;outline:none;font-style:normal;font-weight:400;font-size:15px;line-height:24px;color:#333;background:transparent;min-width:0}.phone-input-component .country-dropdown-list{width:100%;margin-top:6px;border-radius:12px;box-shadow:0 2px 8px #0000000f,0 1px 3px #0000000a}.phone-input-component .country-dropdown-list .action-menu-body{padding:6px 0}.phone-input-component .country-dropdown-list .action-menu-body .action-item{padding:10px 16px;gap:12px;font-size:16px;font-weight:400;line-height:24px;color:#333}.phone-input-component .country-dropdown-list .action-menu-body .action-item .country-flag{width:28px;height:28px;border-radius:50%;object-fit:cover}.phone-input-component .country-dropdown-list .action-menu-body .action-item.active{background:#F0F4F8}.phone-input-component .country-dropdown-list .action-menu-body .action-item:hover{background:#F4F9FD}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
127
127
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ZenduPhoneInputComponent, decorators: [{
128
128
  type: Component,
129
- args: [{ selector: 'zen-phone-input', template: "<div class=\"phone-input-component\">\n <div class=\"material-input\">\n <a class=\"country-select\"\n (click)=\"toggle()\">\n <img class=\"country-flag\"\n [src]=\"selectedCountry.flag\">\n <i class=\"material-icons expand-icon\"\n [ngClass]=\"{'active': isExpanded}\">expand_more</i>\n <div class=\"code\">{{ selectedCountry.countryCallingCode }}</div>\n </a>\n <input class=\"phone-input\"\n type=\"text\"\n [(ngModel)]=\"phoneText\"\n (ngModelChange)=\"phoneChanged(input)\"\n (click)=\"isExpanded = false\"\n [disabled]=\"disabled\"\n country-code=\"selectedCountry.countryCode\"\n [maxlength]=\"maxLength\"\n #input>\n </div>\n\n <div class=\"action-menu country-dropdown-list\"\n *ngIf=\"isExpanded\">\n <div class=\"action-menu-body\">\n <!--Country's List-->\n <a class=\"action-item\"\n *ngFor=\"let country of countryList\"\n [ngClass]=\"{'active': selectedCountry.countryName === country.countryName}\"\n (click)=\"countryChanged(country)\">\n <img class=\"country-flag\"\n [src]=\"country.flag\">\n <div>{{ country.countryName }}</div>\n <div>{{ country.countryCallingCode }}</div>\n </a>\n\n <!--Custom Country-->\n <a class=\"action-item\"\n [ngClass]=\"{'active': selectedCountry.countryName === customCountry.countryName}\"\n (click)=\"countryChanged(customCountry)\">\n <img class=\"country-flag\"\n [src]=\"customCountry.flag\">\n <div>{{ customCountry.countryName }}</div>\n <div>{{ customCountry.countryCallingCode }}</div>\n </a>\n </div>\n </div>\n</div>\n", styles: [".phone-input-component{position:relative;width:100%}.phone-input-component .material-input,.phone-input-component .zen-input{display:flex;align-items:center;gap:8px}.phone-input-component .material-input .country-select,.phone-input-component .zen-input .country-select{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;text-decoration:none;outline:none}.phone-input-component .material-input .country-select .expand-icon,.phone-input-component .zen-input .country-select .expand-icon{color:#60636c;transition:.3s}.phone-input-component .material-input .country-select .expand-icon.active,.phone-input-component .zen-input .country-select .expand-icon.active{color:#2188d9;transform:rotate(180deg)}.phone-input-component .material-input .country-select .code,.phone-input-component .zen-input .country-select .code{font-style:normal;font-weight:400;font-size:16px;line-height:24px;color:#333}.phone-input-component .material-input .country-select:focus .expand-icon,.phone-input-component .zen-input .country-select:focus .expand-icon{color:#2188d9}.phone-input-component .material-input .phone-input,.phone-input-component .zen-input .phone-input{flex:1;border:none;outline:none;font-style:normal;font-weight:400;font-size:16px;line-height:24px;color:#333;background:transparent}.phone-input-component .country-dropdown-list{width:inherit;margin-top:8px}\n"] }]
129
+ args: [{ selector: 'zen-phone-input', template: "<div class=\"phone-input-component\" [style.width]=\"width\">\n <div class=\"material-input\">\n <a class=\"country-select\"\n (click)=\"toggle()\">\n <img class=\"country-flag\"\n [src]=\"selectedCountry.flag\">\n <i class=\"material-icons expand-icon\"\n [ngClass]=\"{'active': isExpanded}\">expand_less</i>\n <div class=\"code\">{{ selectedCountry.countryCallingCode }}</div>\n </a>\n <input class=\"phone-input\"\n type=\"text\"\n [(ngModel)]=\"phoneText\"\n (ngModelChange)=\"phoneChanged(input)\"\n (click)=\"isExpanded = false\"\n [disabled]=\"disabled\"\n country-code=\"selectedCountry.countryCode\"\n [maxlength]=\"maxLength\"\n #input>\n </div>\n\n <div class=\"action-menu country-dropdown-list\"\n *ngIf=\"isExpanded\">\n <div class=\"action-menu-body\">\n <!--Country's List-->\n <a class=\"action-item\"\n *ngFor=\"let country of countryList\"\n [ngClass]=\"{'active': selectedCountry.countryName === country.countryName}\"\n (click)=\"countryChanged(country)\">\n <img class=\"country-flag\"\n [src]=\"country.flag\">\n <div>{{ country.countryName }}</div>\n <div>{{ country.countryCallingCode }}</div>\n </a>\n\n <!--Custom Country-->\n <a class=\"action-item\"\n [ngClass]=\"{'active': selectedCountry.countryName === customCountry.countryName}\"\n (click)=\"countryChanged(customCountry)\">\n <img class=\"country-flag\"\n [src]=\"customCountry.flag\">\n <div>{{ customCountry.countryName }}</div>\n <div>{{ customCountry.countryCallingCode }}</div>\n </a>\n </div>\n </div>\n</div>\n", styles: [":host{display:block;overflow:visible}.phone-input-component{position:relative;width:100%}.phone-input-component .material-input,.phone-input-component .zen-input{display:flex;align-items:center;gap:4px;border:1px solid #D0D5DD;border-radius:10px;padding:8px 14px;background:#FFFFFF;transition:border-color .2s;box-sizing:border-box}.phone-input-component .material-input:focus-within,.phone-input-component .zen-input:focus-within{border-color:#2188d9;z-index:1;position:relative}.phone-input-component .material-input .country-select,.phone-input-component .zen-input .country-select{display:flex;align-items:center;gap:4px;cursor:pointer;-webkit-user-select:none;user-select:none;text-decoration:none;outline:none;flex-shrink:0}.phone-input-component .material-input .country-select .country-flag,.phone-input-component .zen-input .country-select .country-flag{width:24px;height:24px;object-fit:contain}.phone-input-component .material-input .country-select .expand-icon,.phone-input-component .zen-input .country-select .expand-icon{color:#2188d9;font-size:20px;transition:transform .3s}.phone-input-component .material-input .country-select .expand-icon.active,.phone-input-component .zen-input .country-select .expand-icon.active{transform:rotate(180deg)}.phone-input-component .material-input .country-select .code,.phone-input-component .zen-input .country-select .code{font-style:normal;font-weight:500;font-size:15px;line-height:24px;color:#333;min-width:32px}.phone-input-component .material-input .country-select:focus .expand-icon,.phone-input-component .zen-input .country-select:focus .expand-icon{color:#2188d9}.phone-input-component .material-input .phone-input,.phone-input-component .zen-input .phone-input{flex:1;border:none;outline:none;font-style:normal;font-weight:400;font-size:15px;line-height:24px;color:#333;background:transparent;min-width:0}.phone-input-component .country-dropdown-list{width:100%;margin-top:6px;border-radius:12px;box-shadow:0 2px 8px #0000000f,0 1px 3px #0000000a}.phone-input-component .country-dropdown-list .action-menu-body{padding:6px 0}.phone-input-component .country-dropdown-list .action-menu-body .action-item{padding:10px 16px;gap:12px;font-size:16px;font-weight:400;line-height:24px;color:#333}.phone-input-component .country-dropdown-list .action-menu-body .action-item .country-flag{width:28px;height:28px;border-radius:50%;object-fit:cover}.phone-input-component .country-dropdown-list .action-menu-body .action-item.active{background:#F0F4F8}.phone-input-component .country-dropdown-list .action-menu-body .action-item:hover{background:#F4F9FD}\n"] }]
130
130
  }], ctorParameters: function () { return []; }, propDecorators: { phone: [{
131
131
  type: Input
132
132
  }], maxLength: [{
@@ -137,5 +137,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
137
137
  type: Output
138
138
  }], disabled: [{
139
139
  type: Input
140
+ }], width: [{
141
+ type: Input
140
142
  }] } });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemVuZHUtcGhvbmUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctemVuZHVpdC9zcmMvbGliL3Bob25lLWlucHV0L3plbmR1LXBob25lLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXplbmR1aXQvc3JjL2xpYi9waG9uZS1pbnB1dC96ZW5kdS1waG9uZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBT3hELE1BQU0sT0FBTyx3QkFBd0I7SUE4Q25DO1FBMUNTLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFdEIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXpDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUUzQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRW5CLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFFZixnQkFBVyxHQUE2RjtZQUM3RztnQkFDRSxXQUFXLEVBQUUsSUFBSTtnQkFDakIsV0FBVyxFQUFFLFNBQVM7Z0JBQ3RCLGtCQUFrQixFQUFFLElBQUk7Z0JBQ3hCLElBQUksRUFBRSw0REFBNEQ7YUFDbkU7WUFDRDtnQkFDRSxXQUFXLEVBQUUsSUFBSTtnQkFDakIsV0FBVyxFQUFFLFFBQVE7Z0JBQ3JCLGtCQUFrQixFQUFFLElBQUk7Z0JBQ3hCLElBQUksRUFBRSwrREFBK0Q7YUFDdEU7WUFDRDtnQkFDRSxXQUFXLEVBQUUsSUFBSTtnQkFDakIsV0FBVyxFQUFFLFFBQVE7Z0JBQ3JCLGtCQUFrQixFQUFFLEtBQUs7Z0JBQ3pCLElBQUksRUFBRSwrREFBK0Q7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QWUsQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDeEc7WUFBQyxNQUFNO2dCQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzlCO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUNyQyxDQUFDOztzSEF0SVUsd0JBQXdCOzBHQUF4Qix3QkFBd0IsMk5DUnJDLGsxREErQ0E7NEZEdkNhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSxpQkFBaUI7MEVBTWxCLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTTtnQkFFRSxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQaG9uZU51bWJlclV0aWwgfSBmcm9tICdnb29nbGUtbGlicGhvbmVudW1iZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd6ZW4tcGhvbmUtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vemVuZHUtcGhvbmUtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi96ZW5kdS1waG9uZS1pbnB1dC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFplbmR1UGhvbmVJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBwaG9uZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIG1heExlbmd0aDogbnVtYmVyID0gMTI7XG5cbiAgQE91dHB1dCgpIHBob25lQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQE91dHB1dCgpIHZhbGlkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgcHVibGljIHBob25lVGV4dCA9IFwiXCI7XG5cbiAgcHVibGljIGNvdW50cnlMaXN0OiB7IGNvdW50cnlDb2RlOiBzdHJpbmcsIGNvdW50cnlOYW1lOiBzdHJpbmcsIGNvdW50cnlDYWxsaW5nQ29kZTogc3RyaW5nLCBmbGFnOiBzdHJpbmcgfVtdID0gW1xuICAgIHtcbiAgICAgIGNvdW50cnlDb2RlOiBcIlVTXCIsXG4gICAgICBjb3VudHJ5TmFtZTogXCJBbWVyaWNhXCIsXG4gICAgICBjb3VudHJ5Q2FsbGluZ0NvZGU6IFwiKzFcIixcbiAgICAgIGZsYWc6IFwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbmR1aXQtaWNvbnMvRmxhZ3MvVVNBLnN2Z1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBjb3VudHJ5Q29kZTogXCJDQVwiLFxuICAgICAgY291bnRyeU5hbWU6IFwiQ2FuYWRhXCIsXG4gICAgICBjb3VudHJ5Q2FsbGluZ0NvZGU6IFwiKzFcIixcbiAgICAgIGZsYWc6IFwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbmR1aXQtaWNvbnMvRmxhZ3MvQ2FuYWRhLnN2Z1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBjb3VudHJ5Q29kZTogXCJNWFwiLFxuICAgICAgY291bnRyeU5hbWU6IFwiTWV4aWNvXCIsXG4gICAgICBjb3VudHJ5Q2FsbGluZ0NvZGU6IFwiKzUyXCIsXG4gICAgICBmbGFnOiBcImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS96ZW5kdWl0LWljb25zL0ZsYWdzL01leGljby5zdmdcIlxuICAgIH1cbiAgXTtcblxuICBwdWJsaWMgY3VzdG9tQ291bnRyeSA9IHtcbiAgICBjb3VudHJ5Q29kZTogXCJcIixcbiAgICBjb3VudHJ5TmFtZTogXCJDdXN0b21cIixcbiAgICBjb3VudHJ5Q2FsbGluZ0NvZGU6IFwiXCIsXG4gICAgZmxhZzogXCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vemVuZHVpdC1pY29ucy9GbGFncy9DdXN0b20uc3ZnXCJcbiAgfTtcblxuICBwdWJsaWMgc2VsZWN0ZWRDb3VudHJ5OiB7IGNvdW50cnlDb2RlOiBzdHJpbmcsIGNvdW50cnlOYW1lOiBzdHJpbmcsIGNvdW50cnlDYWxsaW5nQ29kZTogc3RyaW5nLCBmbGFnOiBzdHJpbmcgfTtcblxuICBwdWJsaWMgaXNFeHBhbmRlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuY291bnRyeUxpc3RbMV07XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wYXJzZU51bWJlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1tcInBob25lXCJdICYmICghdGhpcy5zZWxlY3RlZENvdW50cnkgfHwgIXRoaXMuc2VsZWN0ZWRDb3VudHJ5LmNvdW50cnlDb2RlKSkge1xuICAgICAgdGhpcy5wYXJzZU51bWJlcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwYXJzZU51bWJlcigpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5waG9uZVRleHQgPSB0aGlzLnBob25lO1xuXG4gICAgICBpZiAodGhpcy5waG9uZSkge1xuICAgICAgICBjb25zdCBjb3VudHJ5RnJvbUxpc3QgPSB0aGlzLmNvdW50cnlMaXN0LmZpbmQoY291bnRyeSA9PiB0aGlzLnBob25lLnN0YXJ0c1dpdGgoY291bnRyeS5jb3VudHJ5Q2FsbGluZ0NvZGUpIHx8IGArJHt0aGlzLnBob25lfWAuc3RhcnRzV2l0aChjb3VudHJ5LmNvdW50cnlDYWxsaW5nQ29kZSkpO1xuICAgICAgICBpZiAoY291bnRyeUZyb21MaXN0KSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPSBjb3VudHJ5RnJvbUxpc3QgfHwgdGhpcy5jdXN0b21Db3VudHJ5O1xuICAgICAgICAgIGNvbnN0IHBob25lTnVtYmVyVXRpbCA9IFBob25lTnVtYmVyVXRpbC5nZXRJbnN0YW5jZSgpO1xuICAgICAgICAgIGNvbnN0IHBhcnNlZFBob25lID0gcGhvbmVOdW1iZXJVdGlsLnBhcnNlKHRoaXMucGhvbmUgfHwgXCJcIiwgJ1VTJyk7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5waG9uZVRleHQuc3RhcnRzV2l0aCgnKycpKSB7XG4gICAgICAgICAgICAgIHRoaXMucGhvbmVUZXh0ID0gdGhpcy5waG9uZVRleHQucmVwbGFjZShgKyR7cGFyc2VkUGhvbmUuZ2V0Q291bnRyeUNvZGUoKX1gLCBcIlwiKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5waG9uZVRleHQuc3RhcnRzV2l0aChwYXJzZWRQaG9uZS5nZXRDb3VudHJ5Q29kZSgpKSkge1xuICAgICAgICAgICAgICB0aGlzLnBob25lVGV4dCA9IHRoaXMucGhvbmVUZXh0LnJlcGxhY2UocGFyc2VkUGhvbmUuZ2V0Q291bnRyeUNvZGUoKSwgXCJcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnBob25lQ2hhbmdlZCgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5jdXN0b21Db3VudHJ5OyAgXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5jdXN0b21Db3VudHJ5O1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS53YXJuKGBDYW4ndCBwYXJzZSBwaG9uZTogJHt0aGlzLnBob25lfWAsIGVycik7XG4gICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuY3VzdG9tQ291bnRyeTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY291bnRyeUNoYW5nZWQoY291bnRyeSk6IHZvaWQge1xuICAgIHRoaXMuaXNFeHBhbmRlZCA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gY291bnRyeTtcbiAgICB0aGlzLnBob25lQ2hhbmdlZCgpO1xuICB9XG5cbiAgcHVibGljIHBob25lQ2hhbmdlZChpbnB1dD86IEhUTUxJbnB1dEVsZW1lbnQpOiB2b2lkIHtcbiAgICBcbiAgICAvLyBhbGxvdyArIGluIGN1c3RvbSBjb3VudHJ5XG4gICAgbGV0IGN1c3RvbSA9IGZhbHNlO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQ291bnRyeSA9PT0gdGhpcy5jdXN0b21Db3VudHJ5ICYmIHRoaXMucGhvbmVUZXh0LmluY2x1ZGVzKCcrJykpIHtcbiAgICAgIGN1c3RvbSA9IHRydWU7XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IHBob25lVGV4dCA9ICh0aGlzLnBob25lVGV4dCB8fCAnJykucmVwbGFjZSgvXFxEL2csICcnKTtcbiAgICB0aGlzLnBob25lVGV4dCA9IGN1c3RvbSA/IGArJHtwaG9uZVRleHR9YDogcGhvbmVUZXh0XG4gICAgaWYgKGlucHV0ICYmIGlucHV0LnZhbHVlICE9PSB0aGlzLnBob25lVGV4dCkge1xuICAgICAgaW5wdXQudmFsdWUgPSB0aGlzLnBob25lVGV4dDtcbiAgICB9XG4gICAgY29uc3QgZnVsbE51bWJlciA9IGAke3RoaXMuc2VsZWN0ZWRDb3VudHJ5LmNvdW50cnlDYWxsaW5nQ29kZX0ke3RoaXMucGhvbmVUZXh0fWA7XG4gICAgaWYgKHRoaXMucGhvbmUgIT09IGZ1bGxOdW1iZXIpIHtcbiAgICAgIHRoaXMucGhvbmVDaGFuZ2UuZW1pdChmdWxsTnVtYmVyKTtcbiAgICB9XG4gICAgY29uc3QgcGhvbmVOdW1iZXJVdGlsID0gUGhvbmVOdW1iZXJVdGlsLmdldEluc3RhbmNlKCk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID09PSB0aGlzLmN1c3RvbUNvdW50cnkpIHtcbiAgICAgIHRoaXMudmFsaWRDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy52YWxpZENoYW5nZS5lbWl0KHBob25lTnVtYmVyVXRpbC5pc1ZhbGlkTnVtYmVyKHBob25lTnVtYmVyVXRpbC5wYXJzZUFuZEtlZXBSYXdJbnB1dChmdWxsTnVtYmVyKSkpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHRoaXMudmFsaWRDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhpZGVEcm9wRG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmlzRXhwYW5kZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGUoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc0V4cGFuZGVkID0gIXRoaXMuaXNFeHBhbmRlZDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInBob25lLWlucHV0LWNvbXBvbmVudFwiPlxuICAgPGRpdiBjbGFzcz1cIm1hdGVyaWFsLWlucHV0XCI+XG4gICAgICA8YSBjbGFzcz1cImNvdW50cnktc2VsZWN0XCJcbiAgICAgICAgIChjbGljayk9XCJ0b2dnbGUoKVwiPlxuICAgICAgICAgPGltZyBjbGFzcz1cImNvdW50cnktZmxhZ1wiXG4gICAgICAgICAgICAgIFtzcmNdPVwic2VsZWN0ZWRDb3VudHJ5LmZsYWdcIj5cbiAgICAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMgZXhwYW5kLWljb25cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieydhY3RpdmUnOiBpc0V4cGFuZGVkfVwiPmV4cGFuZF9tb3JlPC9pPlxuICAgICAgICAgPGRpdiBjbGFzcz1cImNvZGVcIj57eyBzZWxlY3RlZENvdW50cnkuY291bnRyeUNhbGxpbmdDb2RlIH19PC9kaXY+XG4gICAgICA8L2E+XG4gICAgICA8aW5wdXQgY2xhc3M9XCJwaG9uZS1pbnB1dFwiXG4gICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicGhvbmVUZXh0XCJcbiAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwaG9uZUNoYW5nZWQoaW5wdXQpXCJcbiAgICAgICAgICAgICAoY2xpY2spPVwiaXNFeHBhbmRlZCA9IGZhbHNlXCJcbiAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgIGNvdW50cnktY29kZT1cInNlbGVjdGVkQ291bnRyeS5jb3VudHJ5Q29kZVwiXG4gICAgICAgICAgICAgW21heGxlbmd0aF09XCJtYXhMZW5ndGhcIlxuICAgICAgICAgICAgICNpbnB1dD5cbiAgIDwvZGl2PlxuXG4gICA8ZGl2IGNsYXNzPVwiYWN0aW9uLW1lbnUgY291bnRyeS1kcm9wZG93bi1saXN0XCJcbiAgICAgICAgKm5nSWY9XCJpc0V4cGFuZGVkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLW1lbnUtYm9keVwiPlxuICAgICAgICAgPCEtLUNvdW50cnkncyBMaXN0LS0+XG4gICAgICAgICA8YSBjbGFzcz1cImFjdGlvbi1pdGVtXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb3VudHJ5IG9mIGNvdW50cnlMaXN0XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogc2VsZWN0ZWRDb3VudHJ5LmNvdW50cnlOYW1lID09PSBjb3VudHJ5LmNvdW50cnlOYW1lfVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY291bnRyeUNoYW5nZWQoY291bnRyeSlcIj5cbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjb3VudHJ5LWZsYWdcIlxuICAgICAgICAgICAgICAgICBbc3JjXT1cImNvdW50cnkuZmxhZ1wiPlxuICAgICAgICAgICAgPGRpdj57eyBjb3VudHJ5LmNvdW50cnlOYW1lIH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2Pnt7IGNvdW50cnkuY291bnRyeUNhbGxpbmdDb2RlIH19PC9kaXY+XG4gICAgICAgICA8L2E+XG5cbiAgICAgICAgIDwhLS1DdXN0b20gQ291bnRyeS0tPlxuICAgICAgICAgPGEgY2xhc3M9XCJhY3Rpb24taXRlbVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IHNlbGVjdGVkQ291bnRyeS5jb3VudHJ5TmFtZSA9PT0gY3VzdG9tQ291bnRyeS5jb3VudHJ5TmFtZX1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNvdW50cnlDaGFuZ2VkKGN1c3RvbUNvdW50cnkpXCI+XG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwiY291bnRyeS1mbGFnXCJcbiAgICAgICAgICAgICAgICAgW3NyY109XCJjdXN0b21Db3VudHJ5LmZsYWdcIj5cbiAgICAgICAgICAgIDxkaXY+e3sgY3VzdG9tQ291bnRyeS5jb3VudHJ5TmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdj57eyBjdXN0b21Db3VudHJ5LmNvdW50cnlDYWxsaW5nQ29kZSB9fTwvZGl2PlxuICAgICAgICAgPC9hPlxuICAgICAgPC9kaXY+XG4gICA8L2Rpdj5cbjwvZGl2PlxuIl19
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemVuZHUtcGhvbmUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctemVuZHVpdC9zcmMvbGliL3Bob25lLWlucHV0L3plbmR1LXBob25lLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXplbmR1aXQvc3JjL2xpYi9waG9uZS1pbnB1dC96ZW5kdS1waG9uZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBT3hELE1BQU0sT0FBTyx3QkFBd0I7SUFnRG5DO1FBNUNTLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFdEIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXpDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUUzQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBSW5CLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFFZixnQkFBVyxHQUE2RjtZQUM3RztnQkFDRSxXQUFXLEVBQUUsSUFBSTtnQkFDakIsV0FBVyxFQUFFLFNBQVM7Z0JBQ3RCLGtCQUFrQixFQUFFLElBQUk7Z0JBQ3hCLElBQUksRUFBRSw0REFBNEQ7YUFDbkU7WUFDRDtnQkFDRSxXQUFXLEVBQUUsSUFBSTtnQkFDakIsV0FBVyxFQUFFLFFBQVE7Z0JBQ3JCLGtCQUFrQixFQUFFLElBQUk7Z0JBQ3hCLElBQUksRUFBRSwrREFBK0Q7YUFDdEU7WUFDRDtnQkFDRSxXQUFXLEVBQUUsSUFBSTtnQkFDakIsV0FBVyxFQUFFLFFBQVE7Z0JBQ3JCLGtCQUFrQixFQUFFLEtBQUs7Z0JBQ3pCLElBQUksRUFBRSwrREFBK0Q7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QWUsQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDeEc7WUFBQyxNQUFNO2dCQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzlCO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUNyQyxDQUFDOztzSEF4SVUsd0JBQXdCOzBHQUF4Qix3QkFBd0IsMk9DUnJDLDAyREErQ0E7NEZEdkNhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSxpQkFBaUI7MEVBTWxCLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTTtnQkFFRSxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGhvbmVOdW1iZXJVdGlsIH0gZnJvbSAnZ29vZ2xlLWxpYnBob25lbnVtYmVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnemVuLXBob25lLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3plbmR1LXBob25lLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vemVuZHUtcGhvbmUtaW5wdXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBaZW5kdVBob25lSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgcGhvbmU6IHN0cmluZztcblxuICBASW5wdXQoKSBtYXhMZW5ndGg6IG51bWJlciA9IDEyO1xuXG4gIEBPdXRwdXQoKSBwaG9uZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIEBPdXRwdXQoKSB2YWxpZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmc7XG5cbiAgcHVibGljIHBob25lVGV4dCA9IFwiXCI7XG5cbiAgcHVibGljIGNvdW50cnlMaXN0OiB7IGNvdW50cnlDb2RlOiBzdHJpbmcsIGNvdW50cnlOYW1lOiBzdHJpbmcsIGNvdW50cnlDYWxsaW5nQ29kZTogc3RyaW5nLCBmbGFnOiBzdHJpbmcgfVtdID0gW1xuICAgIHtcbiAgICAgIGNvdW50cnlDb2RlOiBcIlVTXCIsXG4gICAgICBjb3VudHJ5TmFtZTogXCJBbWVyaWNhXCIsXG4gICAgICBjb3VudHJ5Q2FsbGluZ0NvZGU6IFwiKzFcIixcbiAgICAgIGZsYWc6IFwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbmR1aXQtaWNvbnMvRmxhZ3MvVVNBLnN2Z1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBjb3VudHJ5Q29kZTogXCJDQVwiLFxuICAgICAgY291bnRyeU5hbWU6IFwiQ2FuYWRhXCIsXG4gICAgICBjb3VudHJ5Q2FsbGluZ0NvZGU6IFwiKzFcIixcbiAgICAgIGZsYWc6IFwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbmR1aXQtaWNvbnMvRmxhZ3MvQ2FuYWRhLnN2Z1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBjb3VudHJ5Q29kZTogXCJNWFwiLFxuICAgICAgY291bnRyeU5hbWU6IFwiTWV4aWNvXCIsXG4gICAgICBjb3VudHJ5Q2FsbGluZ0NvZGU6IFwiKzUyXCIsXG4gICAgICBmbGFnOiBcImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS96ZW5kdWl0LWljb25zL0ZsYWdzL01leGljby5zdmdcIlxuICAgIH1cbiAgXTtcblxuICBwdWJsaWMgY3VzdG9tQ291bnRyeSA9IHtcbiAgICBjb3VudHJ5Q29kZTogXCJcIixcbiAgICBjb3VudHJ5TmFtZTogXCJDdXN0b21cIixcbiAgICBjb3VudHJ5Q2FsbGluZ0NvZGU6IFwiXCIsXG4gICAgZmxhZzogXCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vemVuZHVpdC1pY29ucy9GbGFncy9DdXN0b20uc3ZnXCJcbiAgfTtcblxuICBwdWJsaWMgc2VsZWN0ZWRDb3VudHJ5OiB7IGNvdW50cnlDb2RlOiBzdHJpbmcsIGNvdW50cnlOYW1lOiBzdHJpbmcsIGNvdW50cnlDYWxsaW5nQ29kZTogc3RyaW5nLCBmbGFnOiBzdHJpbmcgfTtcblxuICBwdWJsaWMgaXNFeHBhbmRlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuY291bnRyeUxpc3RbMV07XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wYXJzZU51bWJlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1tcInBob25lXCJdICYmICghdGhpcy5zZWxlY3RlZENvdW50cnkgfHwgIXRoaXMuc2VsZWN0ZWRDb3VudHJ5LmNvdW50cnlDb2RlKSkge1xuICAgICAgdGhpcy5wYXJzZU51bWJlcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwYXJzZU51bWJlcigpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5waG9uZVRleHQgPSB0aGlzLnBob25lO1xuXG4gICAgICBpZiAodGhpcy5waG9uZSkge1xuICAgICAgICBjb25zdCBjb3VudHJ5RnJvbUxpc3QgPSB0aGlzLmNvdW50cnlMaXN0LmZpbmQoY291bnRyeSA9PiB0aGlzLnBob25lLnN0YXJ0c1dpdGgoY291bnRyeS5jb3VudHJ5Q2FsbGluZ0NvZGUpIHx8IGArJHt0aGlzLnBob25lfWAuc3RhcnRzV2l0aChjb3VudHJ5LmNvdW50cnlDYWxsaW5nQ29kZSkpO1xuICAgICAgICBpZiAoY291bnRyeUZyb21MaXN0KSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPSBjb3VudHJ5RnJvbUxpc3QgfHwgdGhpcy5jdXN0b21Db3VudHJ5O1xuICAgICAgICAgIGNvbnN0IHBob25lTnVtYmVyVXRpbCA9IFBob25lTnVtYmVyVXRpbC5nZXRJbnN0YW5jZSgpO1xuICAgICAgICAgIGNvbnN0IHBhcnNlZFBob25lID0gcGhvbmVOdW1iZXJVdGlsLnBhcnNlKHRoaXMucGhvbmUgfHwgXCJcIiwgJ1VTJyk7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5waG9uZVRleHQuc3RhcnRzV2l0aCgnKycpKSB7XG4gICAgICAgICAgICAgIHRoaXMucGhvbmVUZXh0ID0gdGhpcy5waG9uZVRleHQucmVwbGFjZShgKyR7cGFyc2VkUGhvbmUuZ2V0Q291bnRyeUNvZGUoKX1gLCBcIlwiKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5waG9uZVRleHQuc3RhcnRzV2l0aChwYXJzZWRQaG9uZS5nZXRDb3VudHJ5Q29kZSgpKSkge1xuICAgICAgICAgICAgICB0aGlzLnBob25lVGV4dCA9IHRoaXMucGhvbmVUZXh0LnJlcGxhY2UocGFyc2VkUGhvbmUuZ2V0Q291bnRyeUNvZGUoKSwgXCJcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnBob25lQ2hhbmdlZCgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5jdXN0b21Db3VudHJ5OyAgXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5jdXN0b21Db3VudHJ5O1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS53YXJuKGBDYW4ndCBwYXJzZSBwaG9uZTogJHt0aGlzLnBob25lfWAsIGVycik7XG4gICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuY3VzdG9tQ291bnRyeTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY291bnRyeUNoYW5nZWQoY291bnRyeSk6IHZvaWQge1xuICAgIHRoaXMuaXNFeHBhbmRlZCA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gY291bnRyeTtcbiAgICB0aGlzLnBob25lQ2hhbmdlZCgpO1xuICB9XG5cbiAgcHVibGljIHBob25lQ2hhbmdlZChpbnB1dD86IEhUTUxJbnB1dEVsZW1lbnQpOiB2b2lkIHtcbiAgICBcbiAgICAvLyBhbGxvdyArIGluIGN1c3RvbSBjb3VudHJ5XG4gICAgbGV0IGN1c3RvbSA9IGZhbHNlO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQ291bnRyeSA9PT0gdGhpcy5jdXN0b21Db3VudHJ5ICYmIHRoaXMucGhvbmVUZXh0LmluY2x1ZGVzKCcrJykpIHtcbiAgICAgIGN1c3RvbSA9IHRydWU7XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IHBob25lVGV4dCA9ICh0aGlzLnBob25lVGV4dCB8fCAnJykucmVwbGFjZSgvXFxEL2csICcnKTtcbiAgICB0aGlzLnBob25lVGV4dCA9IGN1c3RvbSA/IGArJHtwaG9uZVRleHR9YDogcGhvbmVUZXh0XG4gICAgaWYgKGlucHV0ICYmIGlucHV0LnZhbHVlICE9PSB0aGlzLnBob25lVGV4dCkge1xuICAgICAgaW5wdXQudmFsdWUgPSB0aGlzLnBob25lVGV4dDtcbiAgICB9XG4gICAgY29uc3QgZnVsbE51bWJlciA9IGAke3RoaXMuc2VsZWN0ZWRDb3VudHJ5LmNvdW50cnlDYWxsaW5nQ29kZX0ke3RoaXMucGhvbmVUZXh0fWA7XG4gICAgaWYgKHRoaXMucGhvbmUgIT09IGZ1bGxOdW1iZXIpIHtcbiAgICAgIHRoaXMucGhvbmVDaGFuZ2UuZW1pdChmdWxsTnVtYmVyKTtcbiAgICB9XG4gICAgY29uc3QgcGhvbmVOdW1iZXJVdGlsID0gUGhvbmVOdW1iZXJVdGlsLmdldEluc3RhbmNlKCk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID09PSB0aGlzLmN1c3RvbUNvdW50cnkpIHtcbiAgICAgIHRoaXMudmFsaWRDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy52YWxpZENoYW5nZS5lbWl0KHBob25lTnVtYmVyVXRpbC5pc1ZhbGlkTnVtYmVyKHBob25lTnVtYmVyVXRpbC5wYXJzZUFuZEtlZXBSYXdJbnB1dChmdWxsTnVtYmVyKSkpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHRoaXMudmFsaWRDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhpZGVEcm9wRG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmlzRXhwYW5kZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGUoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc0V4cGFuZGVkID0gIXRoaXMuaXNFeHBhbmRlZDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInBob25lLWlucHV0LWNvbXBvbmVudFwiIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiPlxuICAgPGRpdiBjbGFzcz1cIm1hdGVyaWFsLWlucHV0XCI+XG4gICAgICA8YSBjbGFzcz1cImNvdW50cnktc2VsZWN0XCJcbiAgICAgICAgIChjbGljayk9XCJ0b2dnbGUoKVwiPlxuICAgICAgICAgPGltZyBjbGFzcz1cImNvdW50cnktZmxhZ1wiXG4gICAgICAgICAgICAgIFtzcmNdPVwic2VsZWN0ZWRDb3VudHJ5LmZsYWdcIj5cbiAgICAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMgZXhwYW5kLWljb25cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieydhY3RpdmUnOiBpc0V4cGFuZGVkfVwiPmV4cGFuZF9sZXNzPC9pPlxuICAgICAgICAgPGRpdiBjbGFzcz1cImNvZGVcIj57eyBzZWxlY3RlZENvdW50cnkuY291bnRyeUNhbGxpbmdDb2RlIH19PC9kaXY+XG4gICAgICA8L2E+XG4gICAgICA8aW5wdXQgY2xhc3M9XCJwaG9uZS1pbnB1dFwiXG4gICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicGhvbmVUZXh0XCJcbiAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJwaG9uZUNoYW5nZWQoaW5wdXQpXCJcbiAgICAgICAgICAgICAoY2xpY2spPVwiaXNFeHBhbmRlZCA9IGZhbHNlXCJcbiAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgIGNvdW50cnktY29kZT1cInNlbGVjdGVkQ291bnRyeS5jb3VudHJ5Q29kZVwiXG4gICAgICAgICAgICAgW21heGxlbmd0aF09XCJtYXhMZW5ndGhcIlxuICAgICAgICAgICAgICNpbnB1dD5cbiAgIDwvZGl2PlxuXG4gICA8ZGl2IGNsYXNzPVwiYWN0aW9uLW1lbnUgY291bnRyeS1kcm9wZG93bi1saXN0XCJcbiAgICAgICAgKm5nSWY9XCJpc0V4cGFuZGVkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLW1lbnUtYm9keVwiPlxuICAgICAgICAgPCEtLUNvdW50cnkncyBMaXN0LS0+XG4gICAgICAgICA8YSBjbGFzcz1cImFjdGlvbi1pdGVtXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb3VudHJ5IG9mIGNvdW50cnlMaXN0XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogc2VsZWN0ZWRDb3VudHJ5LmNvdW50cnlOYW1lID09PSBjb3VudHJ5LmNvdW50cnlOYW1lfVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY291bnRyeUNoYW5nZWQoY291bnRyeSlcIj5cbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjb3VudHJ5LWZsYWdcIlxuICAgICAgICAgICAgICAgICBbc3JjXT1cImNvdW50cnkuZmxhZ1wiPlxuICAgICAgICAgICAgPGRpdj57eyBjb3VudHJ5LmNvdW50cnlOYW1lIH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2Pnt7IGNvdW50cnkuY291bnRyeUNhbGxpbmdDb2RlIH19PC9kaXY+XG4gICAgICAgICA8L2E+XG5cbiAgICAgICAgIDwhLS1DdXN0b20gQ291bnRyeS0tPlxuICAgICAgICAgPGEgY2xhc3M9XCJhY3Rpb24taXRlbVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IHNlbGVjdGVkQ291bnRyeS5jb3VudHJ5TmFtZSA9PT0gY3VzdG9tQ291bnRyeS5jb3VudHJ5TmFtZX1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNvdW50cnlDaGFuZ2VkKGN1c3RvbUNvdW50cnkpXCI+XG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwiY291bnRyeS1mbGFnXCJcbiAgICAgICAgICAgICAgICAgW3NyY109XCJjdXN0b21Db3VudHJ5LmZsYWdcIj5cbiAgICAgICAgICAgIDxkaXY+e3sgY3VzdG9tQ291bnRyeS5jb3VudHJ5TmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdj57eyBjdXN0b21Db3VudHJ5LmNvdW50cnlDYWxsaW5nQ29kZSB9fTwvZGl2PlxuICAgICAgICAgPC9hPlxuICAgICAgPC9kaXY+XG4gICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,247 @@
1
+ import { Component, EventEmitter, HostListener, Input, Output, ViewChild, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "../icon/zendu-icon.component";
5
+ export class ZenduTimepickerComponent {
6
+ constructor(_element) {
7
+ this._element = _element;
8
+ this.mode = 'clock';
9
+ this.showSeconds = false;
10
+ this.disabled = false;
11
+ this.readonly = false;
12
+ this.valueChange = new EventEmitter();
13
+ this.apply = new EventEmitter();
14
+ this.clear = new EventEmitter();
15
+ this.isPickerVisible = false;
16
+ this.hours = [];
17
+ this.minutes = [];
18
+ this.seconds = [];
19
+ this.selectedHours = 0;
20
+ this.selectedMinutes = 0;
21
+ this.selectedSeconds = 0;
22
+ this.selectedPeriod = 'AM';
23
+ this.right = false;
24
+ this.bottom = false;
25
+ this.ITEM_HEIGHT = 42;
26
+ this.isDragging = false;
27
+ this.dragStartY = 0;
28
+ this.dragStartScroll = 0;
29
+ }
30
+ outsideClick(event) {
31
+ if (!document.body.contains(event.target)) {
32
+ return;
33
+ }
34
+ if (this._element.nativeElement.contains(event.target)) {
35
+ return;
36
+ }
37
+ this.isPickerVisible = false;
38
+ }
39
+ get defaultLabel() {
40
+ return this.mode === 'clock' ? 'Select a time' : 'Stop Duration';
41
+ }
42
+ get defaultPlaceholder() {
43
+ if (this.placeholder)
44
+ return this.placeholder;
45
+ return this.mode === 'clock' ? 'Select Time' : '0 min';
46
+ }
47
+ get hourSeparator() {
48
+ return this.mode === 'clock' ? ':' : 'hr';
49
+ }
50
+ get minuteSeparator() {
51
+ return this.mode === 'clock' ? ':' : 'min';
52
+ }
53
+ get secondSeparator() {
54
+ return this.mode === 'duration' ? 'sec' : '';
55
+ }
56
+ get formattedDisplayValue() {
57
+ if (!this.value)
58
+ return '';
59
+ if (this.mode === 'clock') {
60
+ const h = this.formatNum(this.value.hours);
61
+ const m = this.formatNum(this.value.minutes);
62
+ if (this.showSeconds) {
63
+ const s = this.formatNum(this.value.seconds);
64
+ return `${h}.${m}.${s} ${this.value.period || 'AM'}`;
65
+ }
66
+ return `${h}.${m} ${this.value.period || 'AM'}`;
67
+ }
68
+ // Duration mode
69
+ const parts = [];
70
+ if (this.value.hours > 0) {
71
+ parts.push(`${this.value.hours} hr`);
72
+ }
73
+ if (this.value.minutes > 0) {
74
+ parts.push(`${this.value.minutes} min`);
75
+ }
76
+ if (this.showSeconds && this.value.seconds > 0) {
77
+ parts.push(`${this.value.seconds} sec`);
78
+ }
79
+ return parts.length > 0 ? parts.join(' ') : '0 min';
80
+ }
81
+ ngOnInit() {
82
+ this.buildRanges();
83
+ if (this.value) {
84
+ this.applyValue(this.value);
85
+ }
86
+ }
87
+ ngOnChanges(changes) {
88
+ if (changes['mode']) {
89
+ this.buildRanges();
90
+ }
91
+ if (changes['value'] && this.value) {
92
+ this.applyValue(this.value);
93
+ }
94
+ }
95
+ togglePicker() {
96
+ if (this.disabled || this.readonly)
97
+ return;
98
+ this.isPickerVisible = !this.isPickerVisible;
99
+ if (this.isPickerVisible) {
100
+ if (this.value) {
101
+ this.applyValue(this.value);
102
+ }
103
+ this.updatePlacement();
104
+ }
105
+ }
106
+ updatePlacement() {
107
+ this.right = false;
108
+ this.bottom = false;
109
+ const el = this._element.nativeElement;
110
+ const rect = el.getBoundingClientRect();
111
+ if (rect.left > window.innerWidth / 2) {
112
+ this.right = true;
113
+ }
114
+ if (rect.top > window.innerHeight / 2) {
115
+ this.bottom = true;
116
+ }
117
+ }
118
+ buildRanges() {
119
+ const maxHour = this.mode === 'clock' ? 12 : 23;
120
+ const startHour = this.mode === 'clock' ? 1 : 0;
121
+ this.hours = this.range(startHour, maxHour);
122
+ this.minutes = this.range(0, 59);
123
+ this.seconds = this.range(0, 59);
124
+ }
125
+ applyValue(val) {
126
+ this.selectedHours = val.hours;
127
+ this.selectedMinutes = val.minutes;
128
+ this.selectedSeconds = val.seconds;
129
+ if (val.period) {
130
+ this.selectedPeriod = val.period;
131
+ }
132
+ }
133
+ range(start, end) {
134
+ const arr = [];
135
+ for (let i = start; i <= end; i++) {
136
+ arr.push(i);
137
+ }
138
+ return arr;
139
+ }
140
+ formatNum(n) {
141
+ return n < 10 ? '0' + n : '' + n;
142
+ }
143
+ selectHour(val) {
144
+ this.selectedHours = val;
145
+ }
146
+ selectMinute(val) {
147
+ this.selectedMinutes = val;
148
+ }
149
+ selectSecond(val) {
150
+ this.selectedSeconds = val;
151
+ }
152
+ selectPeriod(period) {
153
+ this.selectedPeriod = period;
154
+ }
155
+ onScroll(event, type) {
156
+ const el = event.target;
157
+ const scrollTop = el.scrollTop;
158
+ const index = Math.round(scrollTop / this.ITEM_HEIGHT);
159
+ if (type === 'hours' && index >= 0 && index < this.hours.length) {
160
+ this.selectedHours = this.hours[index];
161
+ }
162
+ else if (type === 'minutes' && index >= 0 && index < this.minutes.length) {
163
+ this.selectedMinutes = this.minutes[index];
164
+ }
165
+ else if (type === 'seconds' && index >= 0 && index < this.seconds.length) {
166
+ this.selectedSeconds = this.seconds[index];
167
+ }
168
+ }
169
+ onMouseDown(event, scrollEl) {
170
+ this.isDragging = true;
171
+ this.dragStartY = event.clientY;
172
+ this.dragStartScroll = scrollEl.scrollTop;
173
+ event.preventDefault();
174
+ }
175
+ onMouseMove(event, scrollEl) {
176
+ if (!this.isDragging)
177
+ return;
178
+ const delta = this.dragStartY - event.clientY;
179
+ scrollEl.scrollTop = this.dragStartScroll + delta;
180
+ }
181
+ onMouseUp() {
182
+ this.isDragging = false;
183
+ }
184
+ onApply() {
185
+ const val = this.getCurrentValue();
186
+ this.value = val;
187
+ this.valueChange.emit(val);
188
+ this.apply.emit(val);
189
+ this.isPickerVisible = false;
190
+ }
191
+ onClear() {
192
+ this.selectedHours = this.mode === 'clock' ? 12 : 0;
193
+ this.selectedMinutes = 0;
194
+ this.selectedSeconds = 0;
195
+ this.selectedPeriod = 'AM';
196
+ this.value = null;
197
+ this.valueChange.emit(null);
198
+ this.clear.emit();
199
+ this.isPickerVisible = false;
200
+ }
201
+ getCurrentValue() {
202
+ const val = {
203
+ hours: this.selectedHours,
204
+ minutes: this.selectedMinutes,
205
+ seconds: this.selectedSeconds,
206
+ };
207
+ if (this.mode === 'clock') {
208
+ val.period = this.selectedPeriod;
209
+ }
210
+ return val;
211
+ }
212
+ }
213
+ ZenduTimepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ZenduTimepickerComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
214
+ ZenduTimepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ZenduTimepickerComponent, selector: "zen-timepicker", inputs: { mode: "mode", label: "label", value: "value", showSeconds: "showSeconds", disabled: "disabled", readonly: "readonly", placeholder: "placeholder", width: "width" }, outputs: { valueChange: "valueChange", apply: "apply", clear: "clear" }, host: { listeners: { "window:mousedown": "outsideClick($event)" } }, viewQueries: [{ propertyName: "pickerPopup", first: true, predicate: ["pickerPopup"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"zen-tp\">\n <!-- Input toggle button -->\n <button class=\"zen-tp__toggle zen-tp__toggle--box\"\n [class.zen-tp__toggle--active]=\"isPickerVisible\"\n [class.zen-tp__toggle--disabled]=\"disabled\"\n [class.zen-tp__toggle--readonly]=\"readonly\"\n [style.width]=\"width || null\"\n [disabled]=\"disabled || readonly\"\n (click)=\"togglePicker()\">\n <span class=\"zen-tp__display\" [class.zen-tp__display--placeholder]=\"!value\">\n {{ value ? formattedDisplayValue : defaultPlaceholder }}\n </span>\n <zen-icon class=\"zen-tp__icon\"\n [class.zen-tp__icon--filled]=\"value\"\n src=\"assets/ng-zenduit/icons/time.svg\">\n </zen-icon>\n </button>\n\n <!-- Picker dropdown -->\n <div class=\"zen-tp__dropdown\"\n #pickerPopup\n *ngIf=\"isPickerVisible\"\n [class.zen-tp__dropdown--right]=\"right\"\n [class.zen-tp__dropdown--bottom]=\"bottom\">\n <div class=\"zen-tp__popup\">\n <!-- Header -->\n <div class=\"zen-tp__popup-label\">{{ label || defaultLabel }}</div>\n\n <!-- Scroll Columns -->\n <div class=\"zen-tp__columns\">\n <!-- Hours -->\n <div class=\"zen-tp__scroll-group\">\n <div class=\"zen-tp__scroll-col\"\n #scrollCol\n (scroll)=\"onScroll($event, 'hours')\"\n (mousedown)=\"onMouseDown($event, scrollCol)\"\n (mousemove)=\"onMouseMove($event, scrollCol)\"\n (mouseup)=\"onMouseUp()\"\n (mouseleave)=\"onMouseUp()\">\n <div class=\"zen-tp__scroll-spacer\"></div>\n <div *ngFor=\"let h of hours\"\n class=\"zen-tp__scroll-item\"\n [class.zen-tp__scroll-item--selected]=\"h === selectedHours\"\n (click)=\"selectHour(h)\">\n {{ formatNum(h) }}\n </div>\n <div class=\"zen-tp__scroll-spacer\"></div>\n </div>\n <div class=\"zen-tp__fade zen-tp__fade--top\"></div>\n <div class=\"zen-tp__fade zen-tp__fade--bottom\"></div>\n <div class=\"zen-tp__highlight\"></div>\n </div>\n\n <span class=\"zen-tp__separator\">{{ hourSeparator }}</span>\n\n <!-- Minutes -->\n <div class=\"zen-tp__scroll-group\">\n <div class=\"zen-tp__scroll-col\"\n #scrollCol\n (scroll)=\"onScroll($event, 'minutes')\"\n (mousedown)=\"onMouseDown($event, scrollCol)\"\n (mousemove)=\"onMouseMove($event, scrollCol)\"\n (mouseup)=\"onMouseUp()\"\n (mouseleave)=\"onMouseUp()\">\n <div class=\"zen-tp__scroll-spacer\"></div>\n <div *ngFor=\"let m of minutes\"\n class=\"zen-tp__scroll-item\"\n [class.zen-tp__scroll-item--selected]=\"m === selectedMinutes\"\n (click)=\"selectMinute(m)\">\n {{ formatNum(m) }}\n </div>\n <div class=\"zen-tp__scroll-spacer\"></div>\n </div>\n <div class=\"zen-tp__fade zen-tp__fade--top\"></div>\n <div class=\"zen-tp__fade zen-tp__fade--bottom\"></div>\n <div class=\"zen-tp__highlight\"></div>\n </div>\n\n <span class=\"zen-tp__separator\" *ngIf=\"showSeconds && mode === 'clock'\">:</span>\n <span class=\"zen-tp__separator zen-tp__separator--unit\" *ngIf=\"mode === 'duration'\">min</span>\n\n <!-- Seconds -->\n <div class=\"zen-tp__scroll-group\" *ngIf=\"showSeconds\">\n <div class=\"zen-tp__scroll-col\"\n #scrollCol\n (scroll)=\"onScroll($event, 'seconds')\"\n (mousedown)=\"onMouseDown($event, scrollCol)\"\n (mousemove)=\"onMouseMove($event, scrollCol)\"\n (mouseup)=\"onMouseUp()\"\n (mouseleave)=\"onMouseUp()\">\n <div class=\"zen-tp__scroll-spacer\"></div>\n <div *ngFor=\"let s of seconds\"\n class=\"zen-tp__scroll-item\"\n [class.zen-tp__scroll-item--selected]=\"s === selectedSeconds\"\n (click)=\"selectSecond(s)\">\n {{ formatNum(s) }}\n </div>\n <div class=\"zen-tp__scroll-spacer\"></div>\n </div>\n <div class=\"zen-tp__fade zen-tp__fade--top\"></div>\n <div class=\"zen-tp__fade zen-tp__fade--bottom\"></div>\n <div class=\"zen-tp__highlight\"></div>\n </div>\n\n <span class=\"zen-tp__separator zen-tp__separator--unit\"\n *ngIf=\"mode === 'duration' && showSeconds\">\n sec\n </span>\n\n <!-- AM/PM Toggle (Clock mode only) -->\n <div class=\"zen-tp__period\" *ngIf=\"mode === 'clock'\">\n <button class=\"zen-tp__period-btn\"\n [class.zen-tp__period-btn--active]=\"selectedPeriod === 'AM'\"\n (click)=\"selectPeriod('AM')\">\n AM\n </button>\n <button class=\"zen-tp__period-btn\"\n [class.zen-tp__period-btn--active]=\"selectedPeriod === 'PM'\"\n (click)=\"selectPeriod('PM')\">\n PM\n </button>\n </div>\n </div>\n\n <!-- Divider -->\n <div class=\"zen-tp__divider\"></div>\n\n <!-- Actions -->\n <div class=\"zen-tp__actions\" [class.zen-tp__actions--full]=\"mode === 'duration'\">\n <button class=\"zen-tp__btn zen-tp__btn--clear\" (click)=\"onClear()\">Clear</button>\n <button class=\"zen-tp__btn zen-tp__btn--apply\" (click)=\"onApply()\">Apply</button>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{display:inline-block;position:relative;width:100%}.zen-tp{width:100%;position:relative}.zen-tp *{box-sizing:border-box}.zen-tp__toggle{display:inline-flex;align-items:center;gap:8px;min-width:150px;transition:.3s;background:var(--color-white-primary, #ffffff);-webkit-appearance:none;appearance:none;outline:none;cursor:pointer;border:none;border-radius:0;border-bottom:1px solid var(--color-white-tint-4, #d6d6d8);padding:0 0 8px;font-size:16px;font-weight:400;line-height:130%;color:var(--color-grey-primary, #4f4f4f)}.zen-tp__toggle--box{border:1px solid #d0d5dd;border-radius:8px;padding:10px 14px;gap:8px}.zen-tp__toggle:hover{border-color:#667085}.zen-tp__toggle:focus,.zen-tp__toggle--active{border-color:#136ab6;box-shadow:0 0 0 3px #136ab61f}.zen-tp__toggle--disabled{cursor:not-allowed;border-color:var(--color-white-tint-3, #e0e0e0)}.zen-tp__toggle--disabled .zen-tp__display{color:var(--color-white-tint-3, #e0e0e0)!important}.zen-tp__toggle--disabled .zen-tp__icon{background-color:var(--color-white-tint-3, #e0e0e0)!important}.zen-tp__toggle--readonly{cursor:default;border-color:var(--color-white-tint-3, #e0e0e0)}.zen-tp__toggle--readonly .zen-tp__display{color:var(--color-white-tint-3, #e0e0e0)!important}.zen-tp__toggle--readonly .zen-tp__icon{background-color:var(--color-white-tint-3, #e0e0e0)!important}.zen-tp__display{flex:1;text-align:left;font-size:16px;font-weight:400;line-height:24px;color:#1d2939}.zen-tp__display--placeholder{color:#667085}.zen-tp__icon{width:20px;height:20px;flex-shrink:0;background-color:#667085;transition:.2s}.zen-tp__icon--filled{background-color:#344054}.zen-tp__dropdown{position:absolute;top:100%;left:0;z-index:1000;margin-top:4px}.zen-tp__dropdown--right{left:auto;right:0}.zen-tp__dropdown--bottom{top:auto;bottom:100%;margin-top:0;margin-bottom:4px}.zen-tp__popup{background:#ffffff;border-radius:8px;box-shadow:0 8px 8px -4px #10182808,0 20px 24px -4px #10182814;padding:16px;display:flex;flex-direction:column;gap:16px;align-items:flex-end;font-family:inherit}.zen-tp__popup-label{width:100%;font-size:14px;font-weight:500;line-height:20px;color:#1d2939}.zen-tp__columns{display:flex;align-items:center;gap:24px}.zen-tp__scroll-group{position:relative;width:38px;height:126px;overflow:hidden}.zen-tp__scroll-col{width:100%;height:100%;overflow-y:auto;scroll-snap-type:y mandatory;-ms-overflow-style:none;scrollbar-width:none;cursor:grab;-webkit-user-select:none;user-select:none}.zen-tp__scroll-col::-webkit-scrollbar{display:none}.zen-tp__scroll-col:active{cursor:grabbing}.zen-tp__scroll-spacer{height:42px;flex-shrink:0}.zen-tp__scroll-item{height:42px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:500;line-height:24px;color:#1d2939;scroll-snap-align:center;cursor:pointer;transition:opacity .15s ease;opacity:.4;position:relative;z-index:1}.zen-tp__scroll-item--selected{opacity:1}.zen-tp__highlight{position:absolute;top:50%;left:0;right:0;height:42px;transform:translateY(-50%);background:#f2f4f7;border-radius:8px;pointer-events:none;z-index:0}.zen-tp__fade{position:absolute;left:0;right:0;height:44px;pointer-events:none;z-index:2}.zen-tp__fade--top{top:0;background:linear-gradient(to bottom,#ffffff,rgba(255,255,255,0))}.zen-tp__fade--bottom{bottom:0;background:linear-gradient(to top,#ffffff,rgba(255,255,255,0))}.zen-tp__separator{font-size:14px;font-weight:500;line-height:20px;color:#667085;flex-shrink:0;-webkit-user-select:none;user-select:none}.zen-tp__period{display:flex;flex-direction:column;gap:16px;flex-shrink:0}.zen-tp__period-btn{display:flex;align-items:center;justify-content:center;padding:8px 14px;border-radius:8px;font-size:14px;font-weight:500;line-height:20px;cursor:pointer;transition:all .15s ease;white-space:nowrap;border:1px solid #d0d5dd;background:#ffffff;color:#344054;box-shadow:0 1px 2px #1018280d}.zen-tp__period-btn:hover{background:#fafafa}.zen-tp__period-btn--active{background:#f1f7fe;border-color:#f1f7fe;color:#105494}.zen-tp__period-btn--active:hover{background:#e7f2fd}.zen-tp__divider{width:100%;height:1px;background:#eaecf0}.zen-tp__actions{display:flex;gap:12px}.zen-tp__actions--full{width:100%}.zen-tp__actions--full .zen-tp__btn{flex:1}.zen-tp__btn{display:flex;align-items:center;justify-content:center;padding:8px 14px;border-radius:8px;font-size:14px;font-weight:500;line-height:20px;cursor:pointer;transition:all .15s ease;white-space:nowrap;box-shadow:0 1px 2px #1018280d}.zen-tp__btn--clear{background:#ffffff;border:1px solid #d0d5dd;color:#344054}.zen-tp__btn--clear:hover{background:#fafafa}.zen-tp__btn--apply{background:#136ab6;border:1px solid #136ab6;color:#fff}.zen-tp__btn--apply:hover{background:#115d9f}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ZenduIconComponent, selector: "zen-icon", inputs: ["src"] }] });
215
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ZenduTimepickerComponent, decorators: [{
216
+ type: Component,
217
+ args: [{ selector: 'zen-timepicker', template: "<div class=\"zen-tp\">\n <!-- Input toggle button -->\n <button class=\"zen-tp__toggle zen-tp__toggle--box\"\n [class.zen-tp__toggle--active]=\"isPickerVisible\"\n [class.zen-tp__toggle--disabled]=\"disabled\"\n [class.zen-tp__toggle--readonly]=\"readonly\"\n [style.width]=\"width || null\"\n [disabled]=\"disabled || readonly\"\n (click)=\"togglePicker()\">\n <span class=\"zen-tp__display\" [class.zen-tp__display--placeholder]=\"!value\">\n {{ value ? formattedDisplayValue : defaultPlaceholder }}\n </span>\n <zen-icon class=\"zen-tp__icon\"\n [class.zen-tp__icon--filled]=\"value\"\n src=\"assets/ng-zenduit/icons/time.svg\">\n </zen-icon>\n </button>\n\n <!-- Picker dropdown -->\n <div class=\"zen-tp__dropdown\"\n #pickerPopup\n *ngIf=\"isPickerVisible\"\n [class.zen-tp__dropdown--right]=\"right\"\n [class.zen-tp__dropdown--bottom]=\"bottom\">\n <div class=\"zen-tp__popup\">\n <!-- Header -->\n <div class=\"zen-tp__popup-label\">{{ label || defaultLabel }}</div>\n\n <!-- Scroll Columns -->\n <div class=\"zen-tp__columns\">\n <!-- Hours -->\n <div class=\"zen-tp__scroll-group\">\n <div class=\"zen-tp__scroll-col\"\n #scrollCol\n (scroll)=\"onScroll($event, 'hours')\"\n (mousedown)=\"onMouseDown($event, scrollCol)\"\n (mousemove)=\"onMouseMove($event, scrollCol)\"\n (mouseup)=\"onMouseUp()\"\n (mouseleave)=\"onMouseUp()\">\n <div class=\"zen-tp__scroll-spacer\"></div>\n <div *ngFor=\"let h of hours\"\n class=\"zen-tp__scroll-item\"\n [class.zen-tp__scroll-item--selected]=\"h === selectedHours\"\n (click)=\"selectHour(h)\">\n {{ formatNum(h) }}\n </div>\n <div class=\"zen-tp__scroll-spacer\"></div>\n </div>\n <div class=\"zen-tp__fade zen-tp__fade--top\"></div>\n <div class=\"zen-tp__fade zen-tp__fade--bottom\"></div>\n <div class=\"zen-tp__highlight\"></div>\n </div>\n\n <span class=\"zen-tp__separator\">{{ hourSeparator }}</span>\n\n <!-- Minutes -->\n <div class=\"zen-tp__scroll-group\">\n <div class=\"zen-tp__scroll-col\"\n #scrollCol\n (scroll)=\"onScroll($event, 'minutes')\"\n (mousedown)=\"onMouseDown($event, scrollCol)\"\n (mousemove)=\"onMouseMove($event, scrollCol)\"\n (mouseup)=\"onMouseUp()\"\n (mouseleave)=\"onMouseUp()\">\n <div class=\"zen-tp__scroll-spacer\"></div>\n <div *ngFor=\"let m of minutes\"\n class=\"zen-tp__scroll-item\"\n [class.zen-tp__scroll-item--selected]=\"m === selectedMinutes\"\n (click)=\"selectMinute(m)\">\n {{ formatNum(m) }}\n </div>\n <div class=\"zen-tp__scroll-spacer\"></div>\n </div>\n <div class=\"zen-tp__fade zen-tp__fade--top\"></div>\n <div class=\"zen-tp__fade zen-tp__fade--bottom\"></div>\n <div class=\"zen-tp__highlight\"></div>\n </div>\n\n <span class=\"zen-tp__separator\" *ngIf=\"showSeconds && mode === 'clock'\">:</span>\n <span class=\"zen-tp__separator zen-tp__separator--unit\" *ngIf=\"mode === 'duration'\">min</span>\n\n <!-- Seconds -->\n <div class=\"zen-tp__scroll-group\" *ngIf=\"showSeconds\">\n <div class=\"zen-tp__scroll-col\"\n #scrollCol\n (scroll)=\"onScroll($event, 'seconds')\"\n (mousedown)=\"onMouseDown($event, scrollCol)\"\n (mousemove)=\"onMouseMove($event, scrollCol)\"\n (mouseup)=\"onMouseUp()\"\n (mouseleave)=\"onMouseUp()\">\n <div class=\"zen-tp__scroll-spacer\"></div>\n <div *ngFor=\"let s of seconds\"\n class=\"zen-tp__scroll-item\"\n [class.zen-tp__scroll-item--selected]=\"s === selectedSeconds\"\n (click)=\"selectSecond(s)\">\n {{ formatNum(s) }}\n </div>\n <div class=\"zen-tp__scroll-spacer\"></div>\n </div>\n <div class=\"zen-tp__fade zen-tp__fade--top\"></div>\n <div class=\"zen-tp__fade zen-tp__fade--bottom\"></div>\n <div class=\"zen-tp__highlight\"></div>\n </div>\n\n <span class=\"zen-tp__separator zen-tp__separator--unit\"\n *ngIf=\"mode === 'duration' && showSeconds\">\n sec\n </span>\n\n <!-- AM/PM Toggle (Clock mode only) -->\n <div class=\"zen-tp__period\" *ngIf=\"mode === 'clock'\">\n <button class=\"zen-tp__period-btn\"\n [class.zen-tp__period-btn--active]=\"selectedPeriod === 'AM'\"\n (click)=\"selectPeriod('AM')\">\n AM\n </button>\n <button class=\"zen-tp__period-btn\"\n [class.zen-tp__period-btn--active]=\"selectedPeriod === 'PM'\"\n (click)=\"selectPeriod('PM')\">\n PM\n </button>\n </div>\n </div>\n\n <!-- Divider -->\n <div class=\"zen-tp__divider\"></div>\n\n <!-- Actions -->\n <div class=\"zen-tp__actions\" [class.zen-tp__actions--full]=\"mode === 'duration'\">\n <button class=\"zen-tp__btn zen-tp__btn--clear\" (click)=\"onClear()\">Clear</button>\n <button class=\"zen-tp__btn zen-tp__btn--apply\" (click)=\"onApply()\">Apply</button>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{display:inline-block;position:relative;width:100%}.zen-tp{width:100%;position:relative}.zen-tp *{box-sizing:border-box}.zen-tp__toggle{display:inline-flex;align-items:center;gap:8px;min-width:150px;transition:.3s;background:var(--color-white-primary, #ffffff);-webkit-appearance:none;appearance:none;outline:none;cursor:pointer;border:none;border-radius:0;border-bottom:1px solid var(--color-white-tint-4, #d6d6d8);padding:0 0 8px;font-size:16px;font-weight:400;line-height:130%;color:var(--color-grey-primary, #4f4f4f)}.zen-tp__toggle--box{border:1px solid #d0d5dd;border-radius:8px;padding:10px 14px;gap:8px}.zen-tp__toggle:hover{border-color:#667085}.zen-tp__toggle:focus,.zen-tp__toggle--active{border-color:#136ab6;box-shadow:0 0 0 3px #136ab61f}.zen-tp__toggle--disabled{cursor:not-allowed;border-color:var(--color-white-tint-3, #e0e0e0)}.zen-tp__toggle--disabled .zen-tp__display{color:var(--color-white-tint-3, #e0e0e0)!important}.zen-tp__toggle--disabled .zen-tp__icon{background-color:var(--color-white-tint-3, #e0e0e0)!important}.zen-tp__toggle--readonly{cursor:default;border-color:var(--color-white-tint-3, #e0e0e0)}.zen-tp__toggle--readonly .zen-tp__display{color:var(--color-white-tint-3, #e0e0e0)!important}.zen-tp__toggle--readonly .zen-tp__icon{background-color:var(--color-white-tint-3, #e0e0e0)!important}.zen-tp__display{flex:1;text-align:left;font-size:16px;font-weight:400;line-height:24px;color:#1d2939}.zen-tp__display--placeholder{color:#667085}.zen-tp__icon{width:20px;height:20px;flex-shrink:0;background-color:#667085;transition:.2s}.zen-tp__icon--filled{background-color:#344054}.zen-tp__dropdown{position:absolute;top:100%;left:0;z-index:1000;margin-top:4px}.zen-tp__dropdown--right{left:auto;right:0}.zen-tp__dropdown--bottom{top:auto;bottom:100%;margin-top:0;margin-bottom:4px}.zen-tp__popup{background:#ffffff;border-radius:8px;box-shadow:0 8px 8px -4px #10182808,0 20px 24px -4px #10182814;padding:16px;display:flex;flex-direction:column;gap:16px;align-items:flex-end;font-family:inherit}.zen-tp__popup-label{width:100%;font-size:14px;font-weight:500;line-height:20px;color:#1d2939}.zen-tp__columns{display:flex;align-items:center;gap:24px}.zen-tp__scroll-group{position:relative;width:38px;height:126px;overflow:hidden}.zen-tp__scroll-col{width:100%;height:100%;overflow-y:auto;scroll-snap-type:y mandatory;-ms-overflow-style:none;scrollbar-width:none;cursor:grab;-webkit-user-select:none;user-select:none}.zen-tp__scroll-col::-webkit-scrollbar{display:none}.zen-tp__scroll-col:active{cursor:grabbing}.zen-tp__scroll-spacer{height:42px;flex-shrink:0}.zen-tp__scroll-item{height:42px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:500;line-height:24px;color:#1d2939;scroll-snap-align:center;cursor:pointer;transition:opacity .15s ease;opacity:.4;position:relative;z-index:1}.zen-tp__scroll-item--selected{opacity:1}.zen-tp__highlight{position:absolute;top:50%;left:0;right:0;height:42px;transform:translateY(-50%);background:#f2f4f7;border-radius:8px;pointer-events:none;z-index:0}.zen-tp__fade{position:absolute;left:0;right:0;height:44px;pointer-events:none;z-index:2}.zen-tp__fade--top{top:0;background:linear-gradient(to bottom,#ffffff,rgba(255,255,255,0))}.zen-tp__fade--bottom{bottom:0;background:linear-gradient(to top,#ffffff,rgba(255,255,255,0))}.zen-tp__separator{font-size:14px;font-weight:500;line-height:20px;color:#667085;flex-shrink:0;-webkit-user-select:none;user-select:none}.zen-tp__period{display:flex;flex-direction:column;gap:16px;flex-shrink:0}.zen-tp__period-btn{display:flex;align-items:center;justify-content:center;padding:8px 14px;border-radius:8px;font-size:14px;font-weight:500;line-height:20px;cursor:pointer;transition:all .15s ease;white-space:nowrap;border:1px solid #d0d5dd;background:#ffffff;color:#344054;box-shadow:0 1px 2px #1018280d}.zen-tp__period-btn:hover{background:#fafafa}.zen-tp__period-btn--active{background:#f1f7fe;border-color:#f1f7fe;color:#105494}.zen-tp__period-btn--active:hover{background:#e7f2fd}.zen-tp__divider{width:100%;height:1px;background:#eaecf0}.zen-tp__actions{display:flex;gap:12px}.zen-tp__actions--full{width:100%}.zen-tp__actions--full .zen-tp__btn{flex:1}.zen-tp__btn{display:flex;align-items:center;justify-content:center;padding:8px 14px;border-radius:8px;font-size:14px;font-weight:500;line-height:20px;cursor:pointer;transition:all .15s ease;white-space:nowrap;box-shadow:0 1px 2px #1018280d}.zen-tp__btn--clear{background:#ffffff;border:1px solid #d0d5dd;color:#344054}.zen-tp__btn--clear:hover{background:#fafafa}.zen-tp__btn--apply{background:#136ab6;border:1px solid #136ab6;color:#fff}.zen-tp__btn--apply:hover{background:#115d9f}\n"] }]
218
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { mode: [{
219
+ type: Input
220
+ }], label: [{
221
+ type: Input
222
+ }], value: [{
223
+ type: Input
224
+ }], showSeconds: [{
225
+ type: Input
226
+ }], disabled: [{
227
+ type: Input
228
+ }], readonly: [{
229
+ type: Input
230
+ }], placeholder: [{
231
+ type: Input
232
+ }], width: [{
233
+ type: Input
234
+ }], valueChange: [{
235
+ type: Output
236
+ }], apply: [{
237
+ type: Output
238
+ }], clear: [{
239
+ type: Output
240
+ }], pickerPopup: [{
241
+ type: ViewChild,
242
+ args: ['pickerPopup']
243
+ }], outsideClick: [{
244
+ type: HostListener,
245
+ args: ['window:mousedown', ['$event']]
246
+ }] } });
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemVuZHUtdGltZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy16ZW5kdWl0L3NyYy9saWIvdGltZXBpY2tlci96ZW5kdS10aW1lcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXplbmR1aXQvc3JjL2xpYi90aW1lcGlja2VyL3plbmR1LXRpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDOzs7O0FBZ0J2QixNQUFNLE9BQU8sd0JBQXdCO0lBbUNuQyxZQUFvQixRQUFvQjtRQUFwQixhQUFRLEdBQVIsUUFBUSxDQUFZO1FBbEMvQixTQUFJLEdBQW1CLE9BQU8sQ0FBQztRQUcvQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFJekIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUNsRCxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFDNUMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFJM0Msb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFeEIsVUFBSyxHQUFhLEVBQUUsQ0FBQztRQUNyQixZQUFPLEdBQWEsRUFBRSxDQUFDO1FBQ3ZCLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFFdkIsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDbEIsb0JBQWUsR0FBRyxDQUFDLENBQUM7UUFDcEIsb0JBQWUsR0FBRyxDQUFDLENBQUM7UUFDcEIsbUJBQWMsR0FBZ0IsSUFBSSxDQUFDO1FBRW5DLFVBQUssR0FBRyxLQUFLLENBQUM7UUFD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QUksS0FBSyxPQUFPLEVBQUU7WUFDekIsR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQ2xDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDOztzSEFqUFUsd0JBQXdCOzBHQUF4Qix3QkFBd0IsbWZDM0JyQyxzbExBdUlBOzRGRDVHYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsZ0JBQWdCO2lHQUtqQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBRW1CLFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYTtnQkF3QnhCLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBUaW1lUGlja2VyTW9kZSA9ICdjbG9jaycgfCAnZHVyYXRpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRpbWVQaWNrZXJWYWx1ZSB7XG4gIGhvdXJzOiBudW1iZXI7XG4gIG1pbnV0ZXM6IG51bWJlcjtcbiAgc2Vjb25kczogbnVtYmVyO1xuICBwZXJpb2Q/OiAnQU0nIHwgJ1BNJztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnemVuLXRpbWVwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vemVuZHUtdGltZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3plbmR1LXRpbWVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgWmVuZHVUaW1lcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBtb2RlOiBUaW1lUGlja2VyTW9kZSA9ICdjbG9jayc7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHZhbHVlOiBUaW1lUGlja2VyVmFsdWU7XG4gIEBJbnB1dCgpIHNob3dTZWNvbmRzOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUaW1lUGlja2VyVmFsdWU+KCk7XG4gIEBPdXRwdXQoKSBhcHBseSA9IG5ldyBFdmVudEVtaXR0ZXI8VGltZVBpY2tlclZhbHVlPigpO1xuICBAT3V0cHV0KCkgY2xlYXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgncGlja2VyUG9wdXAnKSBwaWNrZXJQb3B1cDogRWxlbWVudFJlZjtcblxuICBpc1BpY2tlclZpc2libGUgPSBmYWxzZTtcblxuICBob3VyczogbnVtYmVyW10gPSBbXTtcbiAgbWludXRlczogbnVtYmVyW10gPSBbXTtcbiAgc2Vjb25kczogbnVtYmVyW10gPSBbXTtcblxuICBzZWxlY3RlZEhvdXJzID0gMDtcbiAgc2VsZWN0ZWRNaW51dGVzID0gMDtcbiAgc2VsZWN0ZWRTZWNvbmRzID0gMDtcbiAgc2VsZWN0ZWRQZXJpb2Q6ICdBTScgfCAnUE0nID0gJ0FNJztcblxuICByaWdodCA9IGZhbHNlO1xuICBib3R0b20gPSBmYWxzZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IElURU1fSEVJR0hUID0gNDI7XG4gIHByaXZhdGUgaXNEcmFnZ2luZyA9IGZhbHNlO1xuICBwcml2YXRlIGRyYWdTdGFydFkgPSAwO1xuICBwcml2YXRlIGRyYWdTdGFydFNjcm9sbCA9IDA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudFJlZikge31cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6bW91c2Vkb3duJywgWyckZXZlbnQnXSlcbiAgb3V0c2lkZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCFkb2N1bWVudC5ib2R5LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc1BpY2tlclZpc2libGUgPSBmYWxzZTtcbiAgfVxuXG4gIGdldCBkZWZhdWx0TGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnY2xvY2snID8gJ1NlbGVjdCBhIHRpbWUnIDogJ1N0b3AgRHVyYXRpb24nO1xuICB9XG5cbiAgZ2V0IGRlZmF1bHRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnBsYWNlaG9sZGVyKSByZXR1cm4gdGhpcy5wbGFjZWhvbGRlcjtcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnY2xvY2snID8gJ1NlbGVjdCBUaW1lJyA6ICcwIG1pbic7XG4gIH1cblxuICBnZXQgaG91clNlcGFyYXRvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1vZGUgPT09ICdjbG9jaycgPyAnOicgOiAnaHInO1xuICB9XG5cbiAgZ2V0IG1pbnV0ZVNlcGFyYXRvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1vZGUgPT09ICdjbG9jaycgPyAnOicgOiAnbWluJztcbiAgfVxuXG4gIGdldCBzZWNvbmRTZXBhcmF0b3IoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAnZHVyYXRpb24nID8gJ3NlYycgOiAnJztcbiAgfVxuXG4gIGdldCBmb3JtYXR0ZWREaXNwbGF5VmFsdWUoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHJldHVybiAnJztcblxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdjbG9jaycpIHtcbiAgICAgIGNvbnN0IGggPSB0aGlzLmZvcm1hdE51bSh0aGlzLnZhbHVlLmhvdXJzKTtcbiAgICAgIGNvbnN0IG0gPSB0aGlzLmZvcm1hdE51bSh0aGlzLnZhbHVlLm1pbnV0ZXMpO1xuICAgICAgaWYgKHRoaXMuc2hvd1NlY29uZHMpIHtcbiAgICAgICAgY29uc3QgcyA9IHRoaXMuZm9ybWF0TnVtKHRoaXMudmFsdWUuc2Vjb25kcyk7XG4gICAgICAgIHJldHVybiBgJHtofS4ke219LiR7c30gJHt0aGlzLnZhbHVlLnBlcmlvZCB8fCAnQU0nfWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYCR7aH0uJHttfSAke3RoaXMudmFsdWUucGVyaW9kIHx8ICdBTSd9YDtcbiAgICB9XG5cbiAgICAvLyBEdXJhdGlvbiBtb2RlXG4gICAgY29uc3QgcGFydHM6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKHRoaXMudmFsdWUuaG91cnMgPiAwKSB7XG4gICAgICBwYXJ0cy5wdXNoKGAke3RoaXMudmFsdWUuaG91cnN9IGhyYCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnZhbHVlLm1pbnV0ZXMgPiAwKSB7XG4gICAgICBwYXJ0cy5wdXNoKGAke3RoaXMudmFsdWUubWludXRlc30gbWluYCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNob3dTZWNvbmRzICYmIHRoaXMudmFsdWUuc2Vjb25kcyA+IDApIHtcbiAgICAgIHBhcnRzLnB1c2goYCR7dGhpcy52YWx1ZS5zZWNvbmRzfSBzZWNgKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcnRzLmxlbmd0aCA+IDAgPyBwYXJ0cy5qb2luKCcgJykgOiAnMCBtaW4nO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5idWlsZFJhbmdlcygpO1xuICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLmFwcGx5VmFsdWUodGhpcy52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydtb2RlJ10pIHtcbiAgICAgIHRoaXMuYnVpbGRSYW5nZXMoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ3ZhbHVlJ10gJiYgdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5hcHBseVZhbHVlKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVBpY2tlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSByZXR1cm47XG4gICAgdGhpcy5pc1BpY2tlclZpc2libGUgPSAhdGhpcy5pc1BpY2tlclZpc2libGU7XG4gICAgaWYgKHRoaXMuaXNQaWNrZXJWaXNpYmxlKSB7XG4gICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICB0aGlzLmFwcGx5VmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZVBsYWNlbWVudCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUGxhY2VtZW50KCk6IHZvaWQge1xuICAgIHRoaXMucmlnaHQgPSBmYWxzZTtcbiAgICB0aGlzLmJvdHRvbSA9IGZhbHNlO1xuICAgIGNvbnN0IGVsID0gdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBpZiAocmVjdC5sZWZ0ID4gd2luZG93LmlubmVyV2lkdGggLyAyKSB7XG4gICAgICB0aGlzLnJpZ2h0ID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHJlY3QudG9wID4gd2luZG93LmlubmVySGVpZ2h0IC8gMikge1xuICAgICAgdGhpcy5ib3R0b20gPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRSYW5nZXMoKTogdm9pZCB7XG4gICAgY29uc3QgbWF4SG91ciA9IHRoaXMubW9kZSA9PT0gJ2Nsb2NrJyA/IDEyIDogMjM7XG4gICAgY29uc3Qgc3RhcnRIb3VyID0gdGhpcy5tb2RlID09PSAnY2xvY2snID8gMSA6IDA7XG4gICAgdGhpcy5ob3VycyA9IHRoaXMucmFuZ2Uoc3RhcnRIb3VyLCBtYXhIb3VyKTtcbiAgICB0aGlzLm1pbnV0ZXMgPSB0aGlzLnJhbmdlKDAsIDU5KTtcbiAgICB0aGlzLnNlY29uZHMgPSB0aGlzLnJhbmdlKDAsIDU5KTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlWYWx1ZSh2YWw6IFRpbWVQaWNrZXJWYWx1ZSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRIb3VycyA9IHZhbC5ob3VycztcbiAgICB0aGlzLnNlbGVjdGVkTWludXRlcyA9IHZhbC5taW51dGVzO1xuICAgIHRoaXMuc2VsZWN0ZWRTZWNvbmRzID0gdmFsLnNlY29uZHM7XG4gICAgaWYgKHZhbC5wZXJpb2QpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQZXJpb2QgPSB2YWwucGVyaW9kO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmFuZ2Uoc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpOiBudW1iZXJbXSB7XG4gICAgY29uc3QgYXJyOiBudW1iZXJbXSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSBzdGFydDsgaSA8PSBlbmQ7IGkrKykge1xuICAgICAgYXJyLnB1c2goaSk7XG4gICAgfVxuICAgIHJldHVybiBhcnI7XG4gIH1cblxuICBmb3JtYXROdW0objogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbiA8IDEwID8gJzAnICsgbiA6ICcnICsgbjtcbiAgfVxuXG4gIHNlbGVjdEhvdXIodmFsOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSG91cnMgPSB2YWw7XG4gIH1cblxuICBzZWxlY3RNaW51dGUodmFsOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkTWludXRlcyA9IHZhbDtcbiAgfVxuXG4gIHNlbGVjdFNlY29uZCh2YWw6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRTZWNvbmRzID0gdmFsO1xuICB9XG5cbiAgc2VsZWN0UGVyaW9kKHBlcmlvZDogJ0FNJyB8ICdQTScpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkUGVyaW9kID0gcGVyaW9kO1xuICB9XG5cbiAgb25TY3JvbGwoZXZlbnQ6IEV2ZW50LCB0eXBlOiAnaG91cnMnIHwgJ21pbnV0ZXMnIHwgJ3NlY29uZHMnKTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gZWwuc2Nyb2xsVG9wO1xuICAgIGNvbnN0IGluZGV4ID0gTWF0aC5yb3VuZChzY3JvbGxUb3AgLyB0aGlzLklURU1fSEVJR0hUKTtcblxuICAgIGlmICh0eXBlID09PSAnaG91cnMnICYmIGluZGV4ID49IDAgJiYgaW5kZXggPCB0aGlzLmhvdXJzLmxlbmd0aCkge1xuICAgICAgdGhpcy5zZWxlY3RlZEhvdXJzID0gdGhpcy5ob3Vyc1tpbmRleF07XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnbWludXRlcycgJiYgaW5kZXggPj0gMCAmJiBpbmRleCA8IHRoaXMubWludXRlcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRNaW51dGVzID0gdGhpcy5taW51dGVzW2luZGV4XTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzZWNvbmRzJyAmJiBpbmRleCA+PSAwICYmIGluZGV4IDwgdGhpcy5zZWNvbmRzLmxlbmd0aCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFNlY29uZHMgPSB0aGlzLnNlY29uZHNbaW5kZXhdO1xuICAgIH1cbiAgfVxuXG4gIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50LCBzY3JvbGxFbDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmlzRHJhZ2dpbmcgPSB0cnVlO1xuICAgIHRoaXMuZHJhZ1N0YXJ0WSA9IGV2ZW50LmNsaWVudFk7XG4gICAgdGhpcy5kcmFnU3RhcnRTY3JvbGwgPSBzY3JvbGxFbC5zY3JvbGxUb3A7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIG9uTW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50LCBzY3JvbGxFbDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNEcmFnZ2luZykgcmV0dXJuO1xuICAgIGNvbnN0IGRlbHRhID0gdGhpcy5kcmFnU3RhcnRZIC0gZXZlbnQuY2xpZW50WTtcbiAgICBzY3JvbGxFbC5zY3JvbGxUb3AgPSB0aGlzLmRyYWdTdGFydFNjcm9sbCArIGRlbHRhO1xuICB9XG5cbiAgb25Nb3VzZVVwKCk6IHZvaWQge1xuICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICB9XG5cbiAgb25BcHBseSgpOiB2b2lkIHtcbiAgICBjb25zdCB2YWwgPSB0aGlzLmdldEN1cnJlbnRWYWx1ZSgpO1xuICAgIHRoaXMudmFsdWUgPSB2YWw7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbCk7XG4gICAgdGhpcy5hcHBseS5lbWl0KHZhbCk7XG4gICAgdGhpcy5pc1BpY2tlclZpc2libGUgPSBmYWxzZTtcbiAgfVxuXG4gIG9uQ2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEhvdXJzID0gdGhpcy5tb2RlID09PSAnY2xvY2snID8gMTIgOiAwO1xuICAgIHRoaXMuc2VsZWN0ZWRNaW51dGVzID0gMDtcbiAgICB0aGlzLnNlbGVjdGVkU2Vjb25kcyA9IDA7XG4gICAgdGhpcy5zZWxlY3RlZFBlcmlvZCA9ICdBTSc7XG4gICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG51bGwpO1xuICAgIHRoaXMuY2xlYXIuZW1pdCgpO1xuICAgIHRoaXMuaXNQaWNrZXJWaXNpYmxlID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGdldEN1cnJlbnRWYWx1ZSgpOiBUaW1lUGlja2VyVmFsdWUge1xuICAgIGNvbnN0IHZhbDogVGltZVBpY2tlclZhbHVlID0ge1xuICAgICAgaG91cnM6IHRoaXMuc2VsZWN0ZWRIb3VycyxcbiAgICAgIG1pbnV0ZXM6IHRoaXMuc2VsZWN0ZWRNaW51dGVzLFxuICAgICAgc2Vjb25kczogdGhpcy5zZWxlY3RlZFNlY29uZHMsXG4gICAgfTtcbiAgICBpZiAodGhpcy5tb2RlID09PSAnY2xvY2snKSB7XG4gICAgICB2YWwucGVyaW9kID0gdGhpcy5zZWxlY3RlZFBlcmlvZDtcbiAgICB9XG4gICAgcmV0dXJuIHZhbDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInplbi10cFwiPlxuICA8IS0tIElucHV0IHRvZ2dsZSBidXR0b24gLS0+XG4gIDxidXR0b24gY2xhc3M9XCJ6ZW4tdHBfX3RvZ2dsZSB6ZW4tdHBfX3RvZ2dsZS0tYm94XCJcbiAgICAgICAgICBbY2xhc3MuemVuLXRwX190b2dnbGUtLWFjdGl2ZV09XCJpc1BpY2tlclZpc2libGVcIlxuICAgICAgICAgIFtjbGFzcy56ZW4tdHBfX3RvZ2dsZS0tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIFtjbGFzcy56ZW4tdHBfX3RvZ2dsZS0tcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJ3aWR0aCB8fCBudWxsXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVQaWNrZXIoKVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiemVuLXRwX19kaXNwbGF5XCIgW2NsYXNzLnplbi10cF9fZGlzcGxheS0tcGxhY2Vob2xkZXJdPVwiIXZhbHVlXCI+XG4gICAgICB7eyB2YWx1ZSA/IGZvcm1hdHRlZERpc3BsYXlWYWx1ZSA6IGRlZmF1bHRQbGFjZWhvbGRlciB9fVxuICAgIDwvc3Bhbj5cbiAgICA8emVuLWljb24gY2xhc3M9XCJ6ZW4tdHBfX2ljb25cIlxuICAgICAgICAgICAgICBbY2xhc3MuemVuLXRwX19pY29uLS1maWxsZWRdPVwidmFsdWVcIlxuICAgICAgICAgICAgICBzcmM9XCJhc3NldHMvbmctemVuZHVpdC9pY29ucy90aW1lLnN2Z1wiPlxuICAgIDwvemVuLWljb24+XG4gIDwvYnV0dG9uPlxuXG4gIDwhLS0gUGlja2VyIGRyb3Bkb3duIC0tPlxuICA8ZGl2IGNsYXNzPVwiemVuLXRwX19kcm9wZG93blwiXG4gICAgICAgI3BpY2tlclBvcHVwXG4gICAgICAgKm5nSWY9XCJpc1BpY2tlclZpc2libGVcIlxuICAgICAgIFtjbGFzcy56ZW4tdHBfX2Ryb3Bkb3duLS1yaWdodF09XCJyaWdodFwiXG4gICAgICAgW2NsYXNzLnplbi10cF9fZHJvcGRvd24tLWJvdHRvbV09XCJib3R0b21cIj5cbiAgICA8ZGl2IGNsYXNzPVwiemVuLXRwX19wb3B1cFwiPlxuICAgICAgPCEtLSBIZWFkZXIgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiemVuLXRwX19wb3B1cC1sYWJlbFwiPnt7IGxhYmVsIHx8IGRlZmF1bHRMYWJlbCB9fTwvZGl2PlxuXG4gICAgICA8IS0tIFNjcm9sbCBDb2x1bW5zIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInplbi10cF9fY29sdW1uc1wiPlxuICAgICAgICA8IS0tIEhvdXJzIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiemVuLXRwX19zY3JvbGwtZ3JvdXBcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiemVuLXRwX19zY3JvbGwtY29sXCJcbiAgICAgICAgICAgICAgICNzY3JvbGxDb2xcbiAgICAgICAgICAgICAgIChzY3JvbGwpPVwib25TY3JvbGwoJGV2ZW50LCAnaG91cnMnKVwiXG4gICAgICAgICAgICAgICAobW91c2Vkb3duKT1cIm9uTW91c2VEb3duKCRldmVudCwgc2Nyb2xsQ29sKVwiXG4gICAgICAgICAgICAgICAobW91c2Vtb3ZlKT1cIm9uTW91c2VNb3ZlKCRldmVudCwgc2Nyb2xsQ29sKVwiXG4gICAgICAgICAgICAgICAobW91c2V1cCk9XCJvbk1vdXNlVXAoKVwiXG4gICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJvbk1vdXNlVXAoKVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInplbi10cF9fc2Nyb2xsLXNwYWNlclwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaCBvZiBob3Vyc1wiXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwiemVuLXRwX19zY3JvbGwtaXRlbVwiXG4gICAgICAgICAgICAgICAgIFtjbGFzcy56ZW4tdHBfX3Njcm9sbC1pdGVtLS1zZWxlY3RlZF09XCJoID09PSBzZWxlY3RlZEhvdXJzXCJcbiAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEhvdXIoaClcIj5cbiAgICAgICAgICAgICAge3sgZm9ybWF0TnVtKGgpIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ6ZW4tdHBfX3Njcm9sbC1zcGFjZXJcIj48L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiemVuLXRwX19mYWRlIHplbi10cF9fZmFkZS0tdG9wXCI+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInplbi10cF9fZmFkZSB6ZW4tdHBfX2ZhZGUtLWJvdHRvbVwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ6ZW4tdHBfX2hpZ2hsaWdodFwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8c3BhbiBjbGFzcz1cInplbi10cF9fc2VwYXJhdG9yXCI+e3sgaG91clNlcGFyYXRvciB9fTwvc3Bhbj5cblxuICAgICAgICA8IS0tIE1pbnV0ZXMgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ6ZW4tdHBfX3Njcm9sbC1ncm91cFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ6ZW4tdHBfX3Njcm9sbC1jb2xcIlxuICAgICAgICAgICAgICAgI3Njcm9sbENvbFxuICAgICAgICAgICAgICAgKHNjcm9sbCk9XCJvblNjcm9sbCgkZXZlbnQsICdtaW51dGVzJylcIlxuICAgICAgICAgICAgICAgKG1vdXNlZG93bik9XCJvbk1vdXNlRG93bigkZXZlbnQsIHNjcm9sbENvbClcIlxuICAgICAgICAgICAgICAgKG1vdXNlbW92ZSk9XCJvbk1vdXNlTW92ZSgkZXZlbnQsIHNjcm9sbENvbClcIlxuICAgICAgICAgICAgICAgKG1vdXNldXApPVwib25Nb3VzZVVwKClcIlxuICAgICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwib25Nb3VzZVVwKClcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ6ZW4tdHBfX3Njcm9sbC1zcGFjZXJcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG0gb2YgbWludXRlc1wiXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwiemVuLXRwX19zY3JvbGwtaXRlbVwiXG4gICAgICAgICAgICAgICAgIFtjbGFzcy56ZW4tdHBfX3Njcm9sbC1pdGVtLS1zZWxlY3RlZF09XCJtID09PSBzZWxlY3RlZE1pbnV0ZXNcIlxuICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0TWludXRlKG0pXCI+XG4gICAgICAgICAgICAgIHt7IGZvcm1hdE51bShtKSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiemVuLXRwX19zY3JvbGwtc3BhY2VyXCI+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInplbi10cF9fZmFkZSB6ZW4tdHBfX2ZhZGUtLXRvcFwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ6ZW4tdHBfX2ZhZGUgemVuLXRwX19mYWRlLS1ib3R0b21cIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiemVuLXRwX19oaWdobGlnaHRcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ6ZW4tdHBfX3NlcGFyYXRvclwiICpuZ0lmPVwic2hvd1NlY29uZHMgJiYgbW9kZSA9PT0gJ2Nsb2NrJ1wiPjo8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiemVuLXRwX19zZXBhcmF0b3IgemVuLXRwX19zZXBhcmF0b3ItLXVuaXRcIiAqbmdJZj1cIm1vZGUgPT09ICdkdXJhdGlvbidcIj5taW48L3NwYW4+XG5cbiAgICAgICAgPCEtLSBTZWNvbmRzIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiemVuLXRwX19zY3JvbGwtZ3JvdXBcIiAqbmdJZj1cInNob3dTZWNvbmRzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInplbi10cF9fc2Nyb2xsLWNvbFwiXG4gICAgICAgICAgICAgICAjc2Nyb2xsQ29sXG4gICAgICAgICAgICAgICAoc2Nyb2xsKT1cIm9uU2Nyb2xsKCRldmVudCwgJ3NlY29uZHMnKVwiXG4gICAgICAgICAgICAgICAobW91c2Vkb3duKT1cIm9uTW91c2VEb3duKCRldmVudCwgc2Nyb2xsQ29sKVwiXG4gICAgICAgICAgICAgICAobW91c2Vtb3ZlKT1cIm9uTW91c2VNb3ZlKCRldmVudCwgc2Nyb2xsQ29sKVwiXG4gICAgICAgICAgICAgICAobW91c2V1cCk9XCJvbk1vdXNlVXAoKVwiXG4gICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJvbk1vdXNlVXAoKVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInplbi10cF9fc2Nyb2xsLXNwYWNlclwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcyBvZiBzZWNvbmRzXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJ6ZW4tdHBfX3Njcm9sbC1pdGVtXCJcbiAgICAgICAgICAgICAgICAgW2NsYXNzLnplbi10cF9fc2Nyb2xsLWl0ZW0tLXNlbGVjdGVkXT1cInMgPT09IHNlbGVjdGVkU2Vjb25kc1wiXG4gICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RTZWNvbmQocylcIj5cbiAgICAgICAgICAgICAge3sgZm9ybWF0TnVtKHMpIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ6ZW4tdHBfX3Njcm9sbC1zcGFjZXJcIj48L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiemVuLXRwX19mYWRlIHplbi10cF9fZmFkZS0tdG9wXCI+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInplbi10cF9fZmFkZSB6ZW4tdHBfX2ZhZGUtLWJvdHRvbVwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ6ZW4tdHBfX2hpZ2hsaWdodFwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8c3BhbiBjbGFzcz1cInplbi10cF9fc2VwYXJhdG9yIHplbi10cF9fc2VwYXJhdG9yLS11bml0XCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJtb2RlID09PSAnZHVyYXRpb24nICYmIHNob3dTZWNvbmRzXCI+XG4gICAgICAgICAgc2VjXG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8IS0tIEFNL1BNIFRvZ2dsZSAoQ2xvY2sgbW9kZSBvbmx5KSAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInplbi10cF9fcGVyaW9kXCIgKm5nSWY9XCJtb2RlID09PSAnY2xvY2snXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInplbi10cF9fcGVyaW9kLWJ0blwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuemVuLXRwX19wZXJpb2QtYnRuLS1hY3RpdmVdPVwic2VsZWN0ZWRQZXJpb2QgPT09ICdBTSdcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFBlcmlvZCgnQU0nKVwiPlxuICAgICAgICAgICAgQU1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiemVuLXRwX19wZXJpb2QtYnRuXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy56ZW4tdHBfX3BlcmlvZC1idG4tLWFjdGl2ZV09XCJzZWxlY3RlZFBlcmlvZCA9PT0gJ1BNJ1wiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UGVyaW9kKCdQTScpXCI+XG4gICAgICAgICAgICBQTVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIERpdmlkZXIgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiemVuLXRwX19kaXZpZGVyXCI+PC9kaXY+XG5cbiAgICAgIDwhLS0gQWN0aW9ucyAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ6ZW4tdHBfX2FjdGlvbnNcIiBbY2xhc3MuemVuLXRwX19hY3Rpb25zLS1mdWxsXT1cIm1vZGUgPT09ICdkdXJhdGlvbidcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInplbi10cF9fYnRuIHplbi10cF9fYnRuLS1jbGVhclwiIChjbGljayk9XCJvbkNsZWFyKClcIj5DbGVhcjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiemVuLXRwX19idG4gemVuLXRwX19idG4tLWFwcGx5XCIgKGNsaWNrKT1cIm9uQXBwbHkoKVwiPkFwcGx5PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==