@apipass/inputs 0.1.4 → 0.1.6

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.
Files changed (43) hide show
  1. package/apipass-inputs.d.ts +5 -6
  2. package/assets/css/buttons.scss +112 -112
  3. package/assets/css/colors.scss +34 -34
  4. package/assets/css/fonts.scss +24 -24
  5. package/assets/css/inputs.scss +197 -197
  6. package/assets/css/pt_sans.scss +143 -143
  7. package/assets/css/spacing.scss +28 -28
  8. package/assets/css/texts.scss +18 -18
  9. package/bundles/apipass-inputs.umd.js +1855 -1011
  10. package/bundles/apipass-inputs.umd.js.map +1 -1
  11. package/bundles/apipass-inputs.umd.min.js +2 -2
  12. package/bundles/apipass-inputs.umd.min.js.map +1 -1
  13. package/custom-select/custom-select-item.d.ts +5 -5
  14. package/custom-select/custom-select.component.d.ts +41 -38
  15. package/esm2015/apipass-inputs.js +5 -7
  16. package/esm2015/custom-select/custom-select-item.js +7 -7
  17. package/esm2015/custom-select/custom-select.component.js +254 -147
  18. package/esm2015/field/field.component.js +94 -33
  19. package/esm2015/input-avatar/input-avatar.component.js +167 -77
  20. package/esm2015/input-file/input-file.component.js +133 -0
  21. package/esm2015/input-password/input-password.component.js +159 -75
  22. package/esm2015/input-text/input-text.component.js +118 -50
  23. package/esm2015/inputs.module.js +121 -68
  24. package/esm2015/public-api.js +11 -10
  25. package/esm2015/select-box/mat-select-infinite-scroll.directive.js +86 -83
  26. package/esm2015/select-box/select-box.component.js +227 -132
  27. package/esm2015/select-enum/select-enum.component.js +97 -38
  28. package/esm2015/value-acessor-base.js +31 -31
  29. package/fesm2015/apipass-inputs.js +1402 -696
  30. package/fesm2015/apipass-inputs.js.map +1 -1
  31. package/field/field.component.d.ts +15 -12
  32. package/input-avatar/input-avatar.component.d.ts +29 -26
  33. package/input-file/input-file.component.d.ts +31 -0
  34. package/input-password/input-password.component.d.ts +29 -26
  35. package/input-text/input-text.component.d.ts +17 -14
  36. package/inputs.module.d.ts +29 -2
  37. package/package.json +7 -5
  38. package/public-api.d.ts +10 -9
  39. package/select-box/mat-select-infinite-scroll.directive.d.ts +26 -23
  40. package/select-box/select-box.component.d.ts +43 -40
  41. package/select-enum/select-enum.component.d.ts +12 -9
  42. package/value-acessor-base.d.ts +13 -13
  43. package/apipass-inputs.metadata.json +0 -1
@@ -1,68 +1,121 @@
1
- import { NgModule } from '@angular/core';
2
- import { FormsModule } from '@angular/forms';
3
- import { CommonModule } from '@angular/common';
4
- import { SelectEnumComponent } from './select-enum/select-enum.component';
5
- import { MatFormFieldModule } from '@angular/material/form-field';
6
- import { MatInputModule } from '@angular/material/input';
7
- import { MatSelectModule } from '@angular/material/select';
8
- import { MatIconModule } from '@angular/material/icon';
9
- import { MatTooltipModule } from '@angular/material/tooltip';
10
- import { InputPasswordComponent } from './input-password/input-password.component';
11
- import { InputTextComponent } from './input-text/input-text.component';
12
- import { InputAvatarComponent } from './input-avatar/input-avatar.component';
13
- import { FieldComponent } from './field/field.component';
14
- import { SelectBoxComponent } from './select-box/select-box.component';
15
- import { MatSelectFilterModule } from 'mat-select-filter';
16
- import { MatSelectInfiniteScrollDirective } from './select-box/mat-select-infinite-scroll.directive';
17
- import { NgSelectModule } from '@ng-select/ng-select';
18
- import { CustomSelectComponent } from './custom-select/custom-select.component';
19
- import { DndModule } from 'ngx-drag-drop';
20
- import { IconsModule } from '@apipass/icons';
21
- import { PipeModule } from '@apipass/pipes';
22
- import { TranslateModule } from '@ngx-translate/core';
23
- import { RouterModule } from '@angular/router';
24
- import { MatPasswordStrengthModule } from '@angular-material-extensions/password-strength';
25
- export class InputsModule {
26
- }
27
- InputsModule.decorators = [
28
- { type: NgModule, args: [{
29
- imports: [
30
- RouterModule.forChild([]),
31
- CommonModule,
32
- FormsModule,
33
- MatFormFieldModule,
34
- MatInputModule,
35
- MatPasswordStrengthModule,
36
- MatSelectModule,
37
- MatSelectFilterModule,
38
- NgSelectModule,
39
- PipeModule,
40
- MatIconModule,
41
- TranslateModule,
42
- IconsModule,
43
- MatTooltipModule,
44
- DndModule,
45
- ],
46
- declarations: [
47
- MatSelectInfiniteScrollDirective,
48
- SelectBoxComponent,
49
- SelectEnumComponent,
50
- InputTextComponent,
51
- InputPasswordComponent,
52
- InputAvatarComponent,
53
- CustomSelectComponent,
54
- FieldComponent
55
- ],
56
- exports: [
57
- SelectBoxComponent,
58
- SelectEnumComponent,
59
- InputTextComponent,
60
- InputPasswordComponent,
61
- InputAvatarComponent,
62
- CustomSelectComponent,
63
- FieldComponent
64
- ],
65
- providers: [],
66
- },] }
67
- ];
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2lucHV0cy9zcmMvaW5wdXRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDakYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ25HLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQXlDekYsTUFBTSxPQUFPLFlBQVk7OztZQXZDeEIsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDekIsWUFBWTtvQkFDWixXQUFXO29CQUNYLGtCQUFrQjtvQkFDbEIsY0FBYztvQkFDZCx5QkFBeUI7b0JBQ3pCLGVBQWU7b0JBQ2YscUJBQXFCO29CQUNyQixjQUFjO29CQUNkLFVBQVU7b0JBQ1YsYUFBYTtvQkFDYixlQUFlO29CQUNmLFdBQVc7b0JBQ1gsZ0JBQWdCO29CQUNoQixTQUFTO2lCQUNWO2dCQUNELFlBQVksRUFBRTtvQkFDWixnQ0FBZ0M7b0JBQ2hDLGtCQUFrQjtvQkFDbEIsbUJBQW1CO29CQUNuQixrQkFBa0I7b0JBQ2xCLHNCQUFzQjtvQkFDdEIsb0JBQW9CO29CQUNwQixxQkFBcUI7b0JBQ3JCLGNBQWM7aUJBQ2Y7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLGtCQUFrQjtvQkFDbEIsbUJBQW1CO29CQUNuQixrQkFBa0I7b0JBQ2xCLHNCQUFzQjtvQkFDdEIsb0JBQW9CO29CQUNwQixxQkFBcUI7b0JBQ3JCLGNBQWM7aUJBQ2Y7Z0JBQ0QsU0FBUyxFQUFFLEVBQUU7YUFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1NlbGVjdEVudW1Db21wb25lbnR9IGZyb20gJy4vc2VsZWN0LWVudW0vc2VsZWN0LWVudW0uY29tcG9uZW50JztcclxuaW1wb3J0IHtNYXRGb3JtRmllbGRNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQge01hdElucHV0TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7TWF0U2VsZWN0TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQge01hdEljb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQge01hdFRvb2x0aXBNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQge0lucHV0UGFzc3dvcmRDb21wb25lbnR9IGZyb20gJy4vaW5wdXQtcGFzc3dvcmQvaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50JztcclxuaW1wb3J0IHtJbnB1dFRleHRDb21wb25lbnR9IGZyb20gJy4vaW5wdXQtdGV4dC9pbnB1dC10ZXh0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7SW5wdXRBdmF0YXJDb21wb25lbnR9IGZyb20gJy4vaW5wdXQtYXZhdGFyL2lucHV0LWF2YXRhci5jb21wb25lbnQnO1xyXG5pbXBvcnQge0ZpZWxkQ29tcG9uZW50fSBmcm9tICcuL2ZpZWxkL2ZpZWxkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7U2VsZWN0Qm94Q29tcG9uZW50fSBmcm9tICcuL3NlbGVjdC1ib3gvc2VsZWN0LWJveC5jb21wb25lbnQnO1xyXG5pbXBvcnQge01hdFNlbGVjdEZpbHRlck1vZHVsZX0gZnJvbSAnbWF0LXNlbGVjdC1maWx0ZXInO1xyXG5pbXBvcnQge01hdFNlbGVjdEluZmluaXRlU2Nyb2xsRGlyZWN0aXZlfSBmcm9tICcuL3NlbGVjdC1ib3gvbWF0LXNlbGVjdC1pbmZpbml0ZS1zY3JvbGwuZGlyZWN0aXZlJztcclxuaW1wb3J0IHtOZ1NlbGVjdE1vZHVsZX0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xyXG5pbXBvcnQge0N1c3RvbVNlbGVjdENvbXBvbmVudH0gZnJvbSAnLi9jdXN0b20tc2VsZWN0L2N1c3RvbS1zZWxlY3QuY29tcG9uZW50JztcclxuaW1wb3J0IHtEbmRNb2R1bGV9IGZyb20gJ25neC1kcmFnLWRyb3AnO1xyXG5pbXBvcnQge0ljb25zTW9kdWxlfSBmcm9tICdAYXBpcGFzcy9pY29ucyc7XHJcbmltcG9ydCB7UGlwZU1vZHVsZX0gZnJvbSAnQGFwaXBhc3MvcGlwZXMnO1xyXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7Um91dGVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQge01hdFBhc3N3b3JkU3RyZW5ndGhNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyLW1hdGVyaWFsLWV4dGVuc2lvbnMvcGFzc3dvcmQtc3RyZW5ndGgnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQoW10pLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdFBhc3N3b3JkU3RyZW5ndGhNb2R1bGUsXHJcbiAgICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgICBNYXRTZWxlY3RGaWx0ZXJNb2R1bGUsXHJcbiAgICBOZ1NlbGVjdE1vZHVsZSxcclxuICAgIFBpcGVNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgSWNvbnNNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgRG5kTW9kdWxlLFxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBNYXRTZWxlY3RJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSxcclxuICAgIFNlbGVjdEJveENvbXBvbmVudCxcclxuICAgIFNlbGVjdEVudW1Db21wb25lbnQsXHJcbiAgICBJbnB1dFRleHRDb21wb25lbnQsXHJcbiAgICBJbnB1dFBhc3N3b3JkQ29tcG9uZW50LFxyXG4gICAgSW5wdXRBdmF0YXJDb21wb25lbnQsXHJcbiAgICBDdXN0b21TZWxlY3RDb21wb25lbnQsXHJcbiAgICBGaWVsZENvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgU2VsZWN0Qm94Q29tcG9uZW50LFxyXG4gICAgU2VsZWN0RW51bUNvbXBvbmVudCxcclxuICAgIElucHV0VGV4dENvbXBvbmVudCxcclxuICAgIElucHV0UGFzc3dvcmRDb21wb25lbnQsXHJcbiAgICBJbnB1dEF2YXRhckNvbXBvbmVudCxcclxuICAgIEN1c3RvbVNlbGVjdENvbXBvbmVudCxcclxuICAgIEZpZWxkQ29tcG9uZW50XHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRzTW9kdWxlIHtcclxufVxyXG4iXX0=
1
+ import { NgModule } from '@angular/core';
2
+ import { FormsModule } from '@angular/forms';
3
+ import { CommonModule } from '@angular/common';
4
+ import { SelectEnumComponent } from './select-enum/select-enum.component';
5
+ import { MatFormFieldModule } from '@angular/material/form-field';
6
+ import { MatInputModule } from '@angular/material/input';
7
+ import { MatSelectModule } from '@angular/material/select';
8
+ import { MatIconModule } from '@angular/material/icon';
9
+ import { MatTooltipModule } from '@angular/material/tooltip';
10
+ import { InputPasswordComponent } from './input-password/input-password.component';
11
+ import { InputTextComponent } from './input-text/input-text.component';
12
+ import { InputAvatarComponent } from './input-avatar/input-avatar.component';
13
+ import { FieldComponent } from './field/field.component';
14
+ import { SelectBoxComponent } from './select-box/select-box.component';
15
+ import { MatSelectFilterModule } from 'mat-select-filter';
16
+ import { MatSelectInfiniteScrollDirective } from './select-box/mat-select-infinite-scroll.directive';
17
+ import { NgSelectModule } from '@ng-select/ng-select';
18
+ import { CustomSelectComponent } from './custom-select/custom-select.component';
19
+ import { DndModule } from 'ngx-drag-drop';
20
+ import { IconsModule } from '@apipass/icons';
21
+ import { PipeModule } from '@apipass/pipes';
22
+ import { TranslateModule } from '@ngx-translate/core';
23
+ import { RouterModule } from '@angular/router';
24
+ import { MatPasswordStrengthModule } from '@angular-material-extensions/password-strength';
25
+ import { InputFileComponent } from './input-file/input-file.component';
26
+ import * as i0 from "@angular/core";
27
+ import * as i1 from "@angular/router";
28
+ export class InputsModule {
29
+ }
30
+ InputsModule.ɵmod = i0.ɵɵdefineNgModule({ type: InputsModule });
31
+ InputsModule.ɵinj = i0.ɵɵdefineInjector({ factory: function InputsModule_Factory(t) { return new (t || InputsModule)(); }, providers: [], imports: [[
32
+ RouterModule.forChild([]),
33
+ CommonModule,
34
+ FormsModule,
35
+ MatFormFieldModule,
36
+ MatInputModule,
37
+ MatPasswordStrengthModule,
38
+ MatSelectModule,
39
+ MatSelectFilterModule,
40
+ NgSelectModule,
41
+ PipeModule,
42
+ MatIconModule,
43
+ TranslateModule,
44
+ IconsModule,
45
+ MatTooltipModule,
46
+ DndModule,
47
+ ]] });
48
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(InputsModule, { declarations: [MatSelectInfiniteScrollDirective,
49
+ SelectBoxComponent,
50
+ SelectEnumComponent,
51
+ InputTextComponent,
52
+ InputPasswordComponent,
53
+ InputAvatarComponent,
54
+ InputFileComponent,
55
+ CustomSelectComponent,
56
+ FieldComponent], imports: [i1.RouterModule, CommonModule,
57
+ FormsModule,
58
+ MatFormFieldModule,
59
+ MatInputModule,
60
+ MatPasswordStrengthModule,
61
+ MatSelectModule,
62
+ MatSelectFilterModule,
63
+ NgSelectModule,
64
+ PipeModule,
65
+ MatIconModule,
66
+ TranslateModule,
67
+ IconsModule,
68
+ MatTooltipModule,
69
+ DndModule], exports: [SelectBoxComponent,
70
+ SelectEnumComponent,
71
+ InputTextComponent,
72
+ InputPasswordComponent,
73
+ InputAvatarComponent,
74
+ InputFileComponent,
75
+ CustomSelectComponent,
76
+ FieldComponent] }); })();
77
+ /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(InputsModule, [{
78
+ type: NgModule,
79
+ args: [{
80
+ imports: [
81
+ RouterModule.forChild([]),
82
+ CommonModule,
83
+ FormsModule,
84
+ MatFormFieldModule,
85
+ MatInputModule,
86
+ MatPasswordStrengthModule,
87
+ MatSelectModule,
88
+ MatSelectFilterModule,
89
+ NgSelectModule,
90
+ PipeModule,
91
+ MatIconModule,
92
+ TranslateModule,
93
+ IconsModule,
94
+ MatTooltipModule,
95
+ DndModule,
96
+ ],
97
+ declarations: [
98
+ MatSelectInfiniteScrollDirective,
99
+ SelectBoxComponent,
100
+ SelectEnumComponent,
101
+ InputTextComponent,
102
+ InputPasswordComponent,
103
+ InputAvatarComponent,
104
+ InputFileComponent,
105
+ CustomSelectComponent,
106
+ FieldComponent
107
+ ],
108
+ exports: [
109
+ SelectBoxComponent,
110
+ SelectEnumComponent,
111
+ InputTextComponent,
112
+ InputPasswordComponent,
113
+ InputAvatarComponent,
114
+ InputFileComponent,
115
+ CustomSelectComponent,
116
+ FieldComponent
117
+ ],
118
+ providers: [],
119
+ }]
120
+ }], null, null); })();
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2lucHV0cy9zcmMvaW5wdXRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDakYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ25HLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBMkNyRSxNQUFNLE9BQU8sWUFBWTs7Z0RBQVosWUFBWTt1R0FBWixZQUFZLG1CQUZaLEVBQUUsWUF0Q0o7WUFDUCxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUN6QixZQUFZO1lBQ1osV0FBVztZQUNYLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QseUJBQXlCO1lBQ3pCLGVBQWU7WUFDZixxQkFBcUI7WUFDckIsY0FBYztZQUNkLFVBQVU7WUFDVixhQUFhO1lBQ2IsZUFBZTtZQUNmLFdBQVc7WUFDWCxnQkFBZ0I7WUFDaEIsU0FBUztTQUNWO3dGQXdCVSxZQUFZLG1CQXRCckIsZ0NBQWdDO1FBQ2hDLGtCQUFrQjtRQUNsQixtQkFBbUI7UUFDbkIsa0JBQWtCO1FBQ2xCLHNCQUFzQjtRQUN0QixvQkFBb0I7UUFDcEIsa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQixjQUFjLDhCQXhCZCxZQUFZO1FBQ1osV0FBVztRQUNYLGtCQUFrQjtRQUNsQixjQUFjO1FBQ2QseUJBQXlCO1FBQ3pCLGVBQWU7UUFDZixxQkFBcUI7UUFDckIsY0FBYztRQUNkLFVBQVU7UUFDVixhQUFhO1FBQ2IsZUFBZTtRQUNmLFdBQVc7UUFDWCxnQkFBZ0I7UUFDaEIsU0FBUyxhQWNULGtCQUFrQjtRQUNsQixtQkFBbUI7UUFDbkIsa0JBQWtCO1FBQ2xCLHNCQUFzQjtRQUN0QixvQkFBb0I7UUFDcEIsa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQixjQUFjO2tEQUlMLFlBQVk7Y0F6Q3hCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7b0JBQ3pCLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxrQkFBa0I7b0JBQ2xCLGNBQWM7b0JBQ2QseUJBQXlCO29CQUN6QixlQUFlO29CQUNmLHFCQUFxQjtvQkFDckIsY0FBYztvQkFDZCxVQUFVO29CQUNWLGFBQWE7b0JBQ2IsZUFBZTtvQkFDZixXQUFXO29CQUNYLGdCQUFnQjtvQkFDaEIsU0FBUztpQkFDVjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osZ0NBQWdDO29CQUNoQyxrQkFBa0I7b0JBQ2xCLG1CQUFtQjtvQkFDbkIsa0JBQWtCO29CQUNsQixzQkFBc0I7b0JBQ3RCLG9CQUFvQjtvQkFDcEIsa0JBQWtCO29CQUNsQixxQkFBcUI7b0JBQ3JCLGNBQWM7aUJBQ2Y7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLGtCQUFrQjtvQkFDbEIsbUJBQW1CO29CQUNuQixrQkFBa0I7b0JBQ2xCLHNCQUFzQjtvQkFDdEIsb0JBQW9CO29CQUNwQixrQkFBa0I7b0JBQ2xCLHFCQUFxQjtvQkFDckIsY0FBYztpQkFDZjtnQkFDRCxTQUFTLEVBQUUsRUFBRTthQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7U2VsZWN0RW51bUNvbXBvbmVudH0gZnJvbSAnLi9zZWxlY3QtZW51bS9zZWxlY3QtZW51bS5jb21wb25lbnQnO1xuaW1wb3J0IHtNYXRGb3JtRmllbGRNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHtNYXRJbnB1dE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHtNYXRTZWxlY3RNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQge01hdEljb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHtNYXRUb29sdGlwTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7SW5wdXRQYXNzd29yZENvbXBvbmVudH0gZnJvbSAnLi9pbnB1dC1wYXNzd29yZC9pbnB1dC1wYXNzd29yZC5jb21wb25lbnQnO1xuaW1wb3J0IHtJbnB1dFRleHRDb21wb25lbnR9IGZyb20gJy4vaW5wdXQtdGV4dC9pbnB1dC10ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQge0lucHV0QXZhdGFyQ29tcG9uZW50fSBmcm9tICcuL2lucHV0LWF2YXRhci9pbnB1dC1hdmF0YXIuY29tcG9uZW50JztcbmltcG9ydCB7RmllbGRDb21wb25lbnR9IGZyb20gJy4vZmllbGQvZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7U2VsZWN0Qm94Q29tcG9uZW50fSBmcm9tICcuL3NlbGVjdC1ib3gvc2VsZWN0LWJveC5jb21wb25lbnQnO1xuaW1wb3J0IHtNYXRTZWxlY3RGaWx0ZXJNb2R1bGV9IGZyb20gJ21hdC1zZWxlY3QtZmlsdGVyJztcbmltcG9ydCB7TWF0U2VsZWN0SW5maW5pdGVTY3JvbGxEaXJlY3RpdmV9IGZyb20gJy4vc2VsZWN0LWJveC9tYXQtc2VsZWN0LWluZmluaXRlLXNjcm9sbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtOZ1NlbGVjdE1vZHVsZX0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xuaW1wb3J0IHtDdXN0b21TZWxlY3RDb21wb25lbnR9IGZyb20gJy4vY3VzdG9tLXNlbGVjdC9jdXN0b20tc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQge0RuZE1vZHVsZX0gZnJvbSAnbmd4LWRyYWctZHJvcCc7XG5pbXBvcnQge0ljb25zTW9kdWxlfSBmcm9tICdAYXBpcGFzcy9pY29ucyc7XG5pbXBvcnQge1BpcGVNb2R1bGV9IGZyb20gJ0BhcGlwYXNzL3BpcGVzJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Um91dGVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtNYXRQYXNzd29yZFN0cmVuZ3RoTW9kdWxlfSBmcm9tICdAYW5ndWxhci1tYXRlcmlhbC1leHRlbnNpb25zL3Bhc3N3b3JkLXN0cmVuZ3RoJztcbmltcG9ydCB7SW5wdXRGaWxlQ29tcG9uZW50fSBmcm9tICcuL2lucHV0LWZpbGUvaW5wdXQtZmlsZS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgUm91dGVyTW9kdWxlLmZvckNoaWxkKFtdKSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdFBhc3N3b3JkU3RyZW5ndGhNb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgIE1hdFNlbGVjdEZpbHRlck1vZHVsZSxcbiAgICBOZ1NlbGVjdE1vZHVsZSxcbiAgICBQaXBlTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEljb25zTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgRG5kTW9kdWxlLFxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBNYXRTZWxlY3RJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSxcbiAgICBTZWxlY3RCb3hDb21wb25lbnQsXG4gICAgU2VsZWN0RW51bUNvbXBvbmVudCxcbiAgICBJbnB1dFRleHRDb21wb25lbnQsXG4gICAgSW5wdXRQYXNzd29yZENvbXBvbmVudCxcbiAgICBJbnB1dEF2YXRhckNvbXBvbmVudCxcbiAgICBJbnB1dEZpbGVDb21wb25lbnQsXG4gICAgQ3VzdG9tU2VsZWN0Q29tcG9uZW50LFxuICAgIEZpZWxkQ29tcG9uZW50XG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTZWxlY3RCb3hDb21wb25lbnQsXG4gICAgU2VsZWN0RW51bUNvbXBvbmVudCxcbiAgICBJbnB1dFRleHRDb21wb25lbnQsXG4gICAgSW5wdXRQYXNzd29yZENvbXBvbmVudCxcbiAgICBJbnB1dEF2YXRhckNvbXBvbmVudCxcbiAgICBJbnB1dEZpbGVDb21wb25lbnQsXG4gICAgQ3VzdG9tU2VsZWN0Q29tcG9uZW50LFxuICAgIEZpZWxkQ29tcG9uZW50XG4gIF0sXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIElucHV0c01vZHVsZSB7XG59XG4iXX0=
@@ -1,10 +1,11 @@
1
- export * from './inputs.module';
2
- export * from './custom-select/custom-select.component';
3
- export * from './custom-select/custom-select-item';
4
- export * from './field/field.component';
5
- export * from './input-avatar/input-avatar.component';
6
- export * from './input-password/input-password.component';
7
- export * from './input-text/input-text.component';
8
- export * from './select-box/select-box.component';
9
- export * from './select-enum/select-enum.component';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2lucHV0cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxxQ0FBcUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaW5wdXRzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2N1c3RvbS1zZWxlY3QvY3VzdG9tLXNlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jdXN0b20tc2VsZWN0L2N1c3RvbS1zZWxlY3QtaXRlbSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkL2ZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2lucHV0LWF2YXRhci9pbnB1dC1hdmF0YXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQtcGFzc3dvcmQvaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQtdGV4dC9pbnB1dC10ZXh0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdC1ib3gvc2VsZWN0LWJveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QtZW51bS9zZWxlY3QtZW51bS5jb21wb25lbnQnO1xuIl19
1
+ export * from './inputs.module';
2
+ export * from './custom-select/custom-select.component';
3
+ export * from './custom-select/custom-select-item';
4
+ export * from './field/field.component';
5
+ export * from './input-avatar/input-avatar.component';
6
+ export * from './input-file/input-file.component';
7
+ export * from './input-password/input-password.component';
8
+ export * from './input-text/input-text.component';
9
+ export * from './select-box/select-box.component';
10
+ export * from './select-enum/select-enum.component';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2lucHV0cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbnB1dHMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY3VzdG9tLXNlbGVjdC9jdXN0b20tc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2N1c3RvbS1zZWxlY3QvY3VzdG9tLXNlbGVjdC1pdGVtJztcbmV4cG9ydCAqIGZyb20gJy4vZmllbGQvZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQtYXZhdGFyL2lucHV0LWF2YXRhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1maWxlL2lucHV0LWZpbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQtcGFzc3dvcmQvaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaW5wdXQtdGV4dC9pbnB1dC10ZXh0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdC1ib3gvc2VsZWN0LWJveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QtZW51bS9zZWxlY3QtZW51bS5jb21wb25lbnQnO1xuIl19
@@ -1,83 +1,86 @@
1
- import { Directive, EventEmitter, Input, NgZone, Output } from '@angular/core';
2
- import { MatSelect } from '@angular/material/select';
3
- import { debounceTime, takeUntil, tap } from 'rxjs/operators';
4
- import { fromEvent, Subject } from 'rxjs';
5
- /** The height of the select items in `em` units. */
6
- const SELECT_ITEM_HEIGHT_EM = 3;
7
- export class MatSelectInfiniteScrollDirective {
8
- constructor(matSelect, ngZone) {
9
- this.matSelect = matSelect;
10
- this.ngZone = ngZone;
11
- this.threshold = '15%';
12
- this.debounceTime = 150;
13
- this.infiniteScroll = new EventEmitter();
14
- this.thrPx = 0;
15
- this.thrPc = 0;
16
- this.singleOptionHeight = SELECT_ITEM_HEIGHT_EM;
17
- this.destroyed$ = new Subject();
18
- }
19
- ngOnInit() {
20
- this.evaluateThreshold();
21
- }
22
- ngAfterViewInit() {
23
- this.matSelect.openedChange.pipe(takeUntil(this.destroyed$)).subscribe((opened) => {
24
- if (opened) {
25
- this.panel = this.matSelect.panel.nativeElement;
26
- this.singleOptionHeight = this.getSelectItemHeightPx();
27
- this.registerScrollListener();
28
- }
29
- });
30
- }
31
- ngOnDestroy() {
32
- this.destroyed$.next(true);
33
- this.destroyed$.complete();
34
- }
35
- evaluateThreshold() {
36
- if (this.threshold.lastIndexOf('%') > -1) {
37
- this.thrPx = 0;
38
- this.thrPc = (parseFloat(this.threshold) / 100);
39
- }
40
- else {
41
- this.thrPx = parseFloat(this.threshold);
42
- this.thrPc = 0;
43
- }
44
- }
45
- registerScrollListener() {
46
- fromEvent(this.panel, 'scroll').pipe(takeUntil(this.destroyed$), debounceTime(this.debounceTime), tap((event) => {
47
- this.handleScrollEvent(event);
48
- })).subscribe();
49
- }
50
- handleScrollEvent(event) {
51
- this.ngZone.runOutsideAngular(() => {
52
- if (this.complete) {
53
- return;
54
- }
55
- const countOfRenderedOptions = this.matSelect.options.length;
56
- const infiniteScrollDistance = this.singleOptionHeight * countOfRenderedOptions;
57
- const threshold = this.thrPc !== 0 ? (infiniteScrollDistance * this.thrPc) : this.thrPx;
58
- const scrolledDistance = this.panel.clientHeight + event.target.scrollTop;
59
- if ((scrolledDistance + threshold) >= infiniteScrollDistance) {
60
- this.ngZone.run(() => this.infiniteScroll.emit());
61
- }
62
- });
63
- }
64
- getSelectItemHeightPx() {
65
- return parseFloat(getComputedStyle(this.panel).fontSize) * SELECT_ITEM_HEIGHT_EM;
66
- }
67
- }
68
- MatSelectInfiniteScrollDirective.decorators = [
69
- { type: Directive, args: [{
70
- selector: '[msInfiniteScroll]'
71
- },] }
72
- ];
73
- MatSelectInfiniteScrollDirective.ctorParameters = () => [
74
- { type: MatSelect },
75
- { type: NgZone }
76
- ];
77
- MatSelectInfiniteScrollDirective.propDecorators = {
78
- threshold: [{ type: Input }],
79
- debounceTime: [{ type: Input }],
80
- complete: [{ type: Input }],
81
- infiniteScroll: [{ type: Output }]
82
- };
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LXNlbGVjdC1pbmZpbml0ZS1zY3JvbGwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9zZWxlY3QtYm94L21hdC1zZWxlY3QtaW5maW5pdGUtc2Nyb2xsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBcUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUV4QyxvREFBb0Q7QUFDcEQsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLENBQUM7QUFLaEMsTUFBTSxPQUFPLGdDQUFnQztJQWMzQyxZQUFvQixTQUFvQixFQUFVLE1BQWM7UUFBNUMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFadkQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixpQkFBWSxHQUFHLEdBQUcsQ0FBQztRQUVsQixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHNUMsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDVix1QkFBa0IsR0FBRyxxQkFBcUIsQ0FBQztRQUUzQyxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQUc1QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMs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O1lBRHNDLE1BQU07Ozt3QkFhMUQsS0FBSzsyQkFDTCxLQUFLO3VCQUNMLEtBQUs7NkJBQ0wsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge01hdFNlbGVjdH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7ZnJvbUV2ZW50LCBTdWJqZWN0fSBmcm9tICdyeGpzJztcclxuXHJcbi8qKiBUaGUgaGVpZ2h0IG9mIHRoZSBzZWxlY3QgaXRlbXMgaW4gYGVtYCB1bml0cy4gKi9cclxuY29uc3QgU0VMRUNUX0lURU1fSEVJR0hUX0VNID0gMztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW21zSW5maW5pdGVTY3JvbGxdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0U2VsZWN0SW5maW5pdGVTY3JvbGxEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIHRocmVzaG9sZCA9ICcxNSUnO1xyXG4gIEBJbnB1dCgpIGRlYm91bmNlVGltZSA9IDE1MDtcclxuICBASW5wdXQoKSBjb21wbGV0ZSE6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIGluZmluaXRlU2Nyb2xsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBwcml2YXRlIHBhbmVsITogRWxlbWVudDtcclxuICBwcml2YXRlIHRoclB4ID0gMDtcclxuICBwcml2YXRlIHRoclBjID0gMDtcclxuICBwcml2YXRlIHNpbmdsZU9wdGlvbkhlaWdodCA9IFNFTEVDVF9JVEVNX0hFSUdIVF9FTTtcclxuXHJcbiAgcHJpdmF0ZSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtYXRTZWxlY3Q6IE1hdFNlbGVjdCwgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmV2YWx1YXRlVGhyZXNob2xkKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1hdFNlbGVjdC5vcGVuZWRDaGFuZ2UucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcclxuICAgICkuc3Vic2NyaWJlKChvcGVuZWQpID0+IHtcclxuICAgICAgaWYgKG9wZW5lZCkge1xyXG4gICAgICAgIHRoaXMucGFuZWwgPSB0aGlzLm1hdFNlbGVjdC5wYW5lbC5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIHRoaXMuc2luZ2xlT3B0aW9uSGVpZ2h0ID0gdGhpcy5nZXRTZWxlY3RJdGVtSGVpZ2h0UHgoKTtcclxuICAgICAgICB0aGlzLnJlZ2lzdGVyU2Nyb2xsTGlzdGVuZXIoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBldmFsdWF0ZVRocmVzaG9sZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRocmVzaG9sZC5sYXN0SW5kZXhPZignJScpID4gLTEpIHtcclxuICAgICAgdGhpcy50aHJQeCA9IDA7XHJcbiAgICAgIHRoaXMudGhyUGMgPSAocGFyc2VGbG9hdCh0aGlzLnRocmVzaG9sZCkgLyAxMDApO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudGhyUHggPSBwYXJzZUZsb2F0KHRoaXMudGhyZXNob2xkKTtcclxuICAgICAgdGhpcy50aHJQYyA9IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3RlclNjcm9sbExpc3RlbmVyKCk6IHZvaWQge1xyXG4gICAgZnJvbUV2ZW50KHRoaXMucGFuZWwsICdzY3JvbGwnKS5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcclxuICAgICAgZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2VUaW1lKSxcclxuICAgICAgdGFwKChldmVudCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlU2Nyb2xsRXZlbnQoZXZlbnQpO1xyXG4gICAgICB9KVxyXG4gICAgKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVNjcm9sbEV2ZW50KGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuY29tcGxldGUpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgY291bnRPZlJlbmRlcmVkT3B0aW9ucyA9IHRoaXMubWF0U2VsZWN0Lm9wdGlvbnMubGVuZ3RoO1xyXG4gICAgICBjb25zdCBpbmZpbml0ZVNjcm9sbERpc3RhbmNlID0gdGhpcy5zaW5nbGVPcHRpb25IZWlnaHQgKiBjb3VudE9mUmVuZGVyZWRPcHRpb25zO1xyXG4gICAgICBjb25zdCB0aHJlc2hvbGQgPSB0aGlzLnRoclBjICE9PSAwID8gKGluZmluaXRlU2Nyb2xsRGlzdGFuY2UgKiB0aGlzLnRoclBjKSA6IHRoaXMudGhyUHg7XHJcblxyXG4gICAgICBjb25zdCBzY3JvbGxlZERpc3RhbmNlID0gdGhpcy5wYW5lbC5jbGllbnRIZWlnaHQgKyBldmVudC50YXJnZXQuc2Nyb2xsVG9wO1xyXG5cclxuICAgICAgaWYgKChzY3JvbGxlZERpc3RhbmNlICsgdGhyZXNob2xkKSA+PSBpbmZpbml0ZVNjcm9sbERpc3RhbmNlKSB7XHJcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMuaW5maW5pdGVTY3JvbGwuZW1pdCgpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3RJdGVtSGVpZ2h0UHgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUodGhpcy5wYW5lbCkuZm9udFNpemUpICogU0VMRUNUX0lURU1fSEVJR0hUX0VNO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
1
+ import { Directive, EventEmitter, Input, NgZone, Output } from '@angular/core';
2
+ import { MatSelect } from '@angular/material/select';
3
+ import { debounceTime, takeUntil, tap } from 'rxjs/operators';
4
+ import { fromEvent, Subject } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/select";
7
+ /** The height of the select items in `em` units. */
8
+ const SELECT_ITEM_HEIGHT_EM = 3;
9
+ export class MatSelectInfiniteScrollDirective {
10
+ constructor(matSelect, ngZone) {
11
+ this.matSelect = matSelect;
12
+ this.ngZone = ngZone;
13
+ this.threshold = '15%';
14
+ this.debounceTime = 150;
15
+ this.infiniteScroll = new EventEmitter();
16
+ this.thrPx = 0;
17
+ this.thrPc = 0;
18
+ this.singleOptionHeight = SELECT_ITEM_HEIGHT_EM;
19
+ this.destroyed$ = new Subject();
20
+ }
21
+ ngOnInit() {
22
+ this.evaluateThreshold();
23
+ }
24
+ ngAfterViewInit() {
25
+ this.matSelect.openedChange.pipe(takeUntil(this.destroyed$)).subscribe((opened) => {
26
+ if (opened) {
27
+ this.panel = this.matSelect.panel.nativeElement;
28
+ this.singleOptionHeight = this.getSelectItemHeightPx();
29
+ this.registerScrollListener();
30
+ }
31
+ });
32
+ }
33
+ ngOnDestroy() {
34
+ this.destroyed$.next(true);
35
+ this.destroyed$.complete();
36
+ }
37
+ evaluateThreshold() {
38
+ if (this.threshold.lastIndexOf('%') > -1) {
39
+ this.thrPx = 0;
40
+ this.thrPc = (parseFloat(this.threshold) / 100);
41
+ }
42
+ else {
43
+ this.thrPx = parseFloat(this.threshold);
44
+ this.thrPc = 0;
45
+ }
46
+ }
47
+ registerScrollListener() {
48
+ fromEvent(this.panel, 'scroll').pipe(takeUntil(this.destroyed$), debounceTime(this.debounceTime), tap((event) => {
49
+ this.handleScrollEvent(event);
50
+ })).subscribe();
51
+ }
52
+ handleScrollEvent(event) {
53
+ this.ngZone.runOutsideAngular(() => {
54
+ if (this.complete) {
55
+ return;
56
+ }
57
+ const countOfRenderedOptions = this.matSelect.options.length;
58
+ const infiniteScrollDistance = this.singleOptionHeight * countOfRenderedOptions;
59
+ const threshold = this.thrPc !== 0 ? (infiniteScrollDistance * this.thrPc) : this.thrPx;
60
+ const scrolledDistance = this.panel.clientHeight + event.target.scrollTop;
61
+ if ((scrolledDistance + threshold) >= infiniteScrollDistance) {
62
+ this.ngZone.run(() => this.infiniteScroll.emit());
63
+ }
64
+ });
65
+ }
66
+ getSelectItemHeightPx() {
67
+ return parseFloat(getComputedStyle(this.panel).fontSize) * SELECT_ITEM_HEIGHT_EM;
68
+ }
69
+ }
70
+ MatSelectInfiniteScrollDirective.ɵfac = function MatSelectInfiniteScrollDirective_Factory(t) { return new (t || MatSelectInfiniteScrollDirective)(i0.ɵɵdirectiveInject(i1.MatSelect), i0.ɵɵdirectiveInject(i0.NgZone)); };
71
+ MatSelectInfiniteScrollDirective.ɵdir = i0.ɵɵdefineDirective({ type: MatSelectInfiniteScrollDirective, selectors: [["", "msInfiniteScroll", ""]], inputs: { threshold: "threshold", debounceTime: "debounceTime", complete: "complete" }, outputs: { infiniteScroll: "infiniteScroll" } });
72
+ /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(MatSelectInfiniteScrollDirective, [{
73
+ type: Directive,
74
+ args: [{
75
+ selector: '[msInfiniteScroll]'
76
+ }]
77
+ }], function () { return [{ type: i1.MatSelect }, { type: i0.NgZone }]; }, { threshold: [{
78
+ type: Input
79
+ }], debounceTime: [{
80
+ type: Input
81
+ }], complete: [{
82
+ type: Input
83
+ }], infiniteScroll: [{
84
+ type: Output
85
+ }] }); })();
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LXNlbGVjdC1pbmZpbml0ZS1zY3JvbGwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9zZWxlY3QtYm94L21hdC1zZWxlY3QtaW5maW5pdGUtc2Nyb2xsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBcUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUMsU0FBUyxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQzs7O0FBRXhDLG9EQUFvRDtBQUNwRCxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQztBQUtoQyxNQUFNLE9BQU8sZ0NBQWdDO0lBYzNDLFlBQW9CLFNBQW9CLEVBQVUsTUFBYztRQUE1QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVp2RCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsR0FBRyxDQUFDO1FBRWxCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUc1QyxVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLHVCQUFrQixHQUFHLHFCQUFxQixDQUFDO1FBRTNDLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBRzVDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FB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QUM7Z0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjthQUMvQjtpRkFHVSxTQUFTO2tCQUFqQixLQUFLO1lBQ0csWUFBWTtrQkFBcEIsS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFDSSxjQUFjO2tCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE5nWm9uZSwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdFNlbGVjdH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCB0YWtlVW50aWwsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtmcm9tRXZlbnQsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuXG4vKiogVGhlIGhlaWdodCBvZiB0aGUgc2VsZWN0IGl0ZW1zIGluIGBlbWAgdW5pdHMuICovXG5jb25zdCBTRUxFQ1RfSVRFTV9IRUlHSFRfRU0gPSAzO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbXNJbmZpbml0ZVNjcm9sbF0nXG59KVxuZXhwb3J0IGNsYXNzIE1hdFNlbGVjdEluZmluaXRlU2Nyb2xsRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuXG4gIEBJbnB1dCgpIHRocmVzaG9sZCA9ICcxNSUnO1xuICBASW5wdXQoKSBkZWJvdW5jZVRpbWUgPSAxNTA7XG4gIEBJbnB1dCgpIGNvbXBsZXRlITogYm9vbGVhbjtcbiAgQE91dHB1dCgpIGluZmluaXRlU2Nyb2xsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHByaXZhdGUgcGFuZWwhOiBFbGVtZW50O1xuICBwcml2YXRlIHRoclB4ID0gMDtcbiAgcHJpdmF0ZSB0aHJQYyA9IDA7XG4gIHByaXZhdGUgc2luZ2xlT3B0aW9uSGVpZ2h0ID0gU0VMRUNUX0lURU1fSEVJR0hUX0VNO1xuXG4gIHByaXZhdGUgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtYXRTZWxlY3Q6IE1hdFNlbGVjdCwgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSkge1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5ldmFsdWF0ZVRocmVzaG9sZCgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMubWF0U2VsZWN0Lm9wZW5lZENoYW5nZS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICApLnN1YnNjcmliZSgob3BlbmVkKSA9PiB7XG4gICAgICBpZiAob3BlbmVkKSB7XG4gICAgICAgIHRoaXMucGFuZWwgPSB0aGlzLm1hdFNlbGVjdC5wYW5lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLnNpbmdsZU9wdGlvbkhlaWdodCA9IHRoaXMuZ2V0U2VsZWN0SXRlbUhlaWdodFB4KCk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJTY3JvbGxMaXN0ZW5lcigpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBldmFsdWF0ZVRocmVzaG9sZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50aHJlc2hvbGQubGFzdEluZGV4T2YoJyUnKSA+IC0xKSB7XG4gICAgICB0aGlzLnRoclB4ID0gMDtcbiAgICAgIHRoaXMudGhyUGMgPSAocGFyc2VGbG9hdCh0aGlzLnRocmVzaG9sZCkgLyAxMDApO1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGhyUHggPSBwYXJzZUZsb2F0KHRoaXMudGhyZXNob2xkKTtcbiAgICAgIHRoaXMudGhyUGMgPSAwO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyU2Nyb2xsTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgZnJvbUV2ZW50KHRoaXMucGFuZWwsICdzY3JvbGwnKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCksXG4gICAgICBkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWUpLFxuICAgICAgdGFwKChldmVudCkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZVNjcm9sbEV2ZW50KGV2ZW50KTtcbiAgICAgIH0pXG4gICAgKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGhhbmRsZVNjcm9sbEV2ZW50KGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy5jb21wbGV0ZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBjb3VudE9mUmVuZGVyZWRPcHRpb25zID0gdGhpcy5tYXRTZWxlY3Qub3B0aW9ucy5sZW5ndGg7XG4gICAgICBjb25zdCBpbmZpbml0ZVNjcm9sbERpc3RhbmNlID0gdGhpcy5zaW5nbGVPcHRpb25IZWlnaHQgKiBjb3VudE9mUmVuZGVyZWRPcHRpb25zO1xuICAgICAgY29uc3QgdGhyZXNob2xkID0gdGhpcy50aHJQYyAhPT0gMCA/IChpbmZpbml0ZVNjcm9sbERpc3RhbmNlICogdGhpcy50aHJQYykgOiB0aGlzLnRoclB4O1xuXG4gICAgICBjb25zdCBzY3JvbGxlZERpc3RhbmNlID0gdGhpcy5wYW5lbC5jbGllbnRIZWlnaHQgKyBldmVudC50YXJnZXQuc2Nyb2xsVG9wO1xuXG4gICAgICBpZiAoKHNjcm9sbGVkRGlzdGFuY2UgKyB0aHJlc2hvbGQpID49IGluZmluaXRlU2Nyb2xsRGlzdGFuY2UpIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMuaW5maW5pdGVTY3JvbGwuZW1pdCgpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldFNlbGVjdEl0ZW1IZWlnaHRQeCgpOiBudW1iZXIge1xuICAgIHJldHVybiBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUodGhpcy5wYW5lbCkuZm9udFNpemUpICogU0VMRUNUX0lURU1fSEVJR0hUX0VNO1xuICB9XG5cbn1cbiJdfQ==