@apipass/inputs 1.0.7 → 1.0.9

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 (71) hide show
  1. package/ace-editor/component.d.ts +52 -52
  2. package/ace-editor/directive.d.ts +39 -39
  3. package/assets/css/colors.scss +34 -34
  4. package/assets/css/fonts.scss +24 -24
  5. package/assets/css/inputs.scss +245 -245
  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/custom-select/custom-select-item.d.ts +5 -5
  10. package/custom-select/custom-select.component.d.ts +51 -51
  11. package/debounce-model-directive/debouceInput.directive.d.ts +14 -14
  12. package/esm2022/ace-editor/component.mjs +200 -0
  13. package/esm2022/ace-editor/directive.mjs +153 -0
  14. package/{esm2020 → esm2022}/apipass-inputs.mjs +4 -4
  15. package/esm2022/custom-select/custom-select-item.mjs +9 -0
  16. package/esm2022/custom-select/custom-select.component.mjs +213 -0
  17. package/esm2022/debounce-model-directive/debouceInput.directive.mjs +34 -0
  18. package/esm2022/field/field.component.mjs +56 -0
  19. package/esm2022/input-avatar/input-avatar.component.mjs +91 -0
  20. package/esm2022/input-boolean/input-boolean.component.mjs +54 -0
  21. package/esm2022/input-file/input-file.component.mjs +82 -0
  22. package/esm2022/input-number/input-number.component.mjs +60 -0
  23. package/esm2022/input-password/input-password.component.mjs +94 -0
  24. package/esm2022/input-text/input-text.component.mjs +60 -0
  25. package/esm2022/inputs.module.mjs +150 -0
  26. package/{esm2020 → esm2022}/public-api.mjs +17 -17
  27. package/esm2022/select-box/mat-select-infinite-scroll.directive.mjs +91 -0
  28. package/esm2022/select-box/select-box.component.mjs +226 -0
  29. package/esm2022/select-enum/select-enum.component.mjs +47 -0
  30. package/esm2022/select-interpolation/select-interpolation.component.mjs +177 -0
  31. package/esm2022/value-acessor-base.mjs +30 -0
  32. package/fesm2022/apipass-inputs.mjs +1711 -0
  33. package/fesm2022/apipass-inputs.mjs.map +1 -0
  34. package/field/field.component.d.ts +15 -15
  35. package/index.d.ts +5 -5
  36. package/input-avatar/input-avatar.component.d.ts +29 -29
  37. package/input-boolean/input-boolean.component.d.ts +15 -15
  38. package/input-file/input-file.component.d.ts +31 -31
  39. package/input-number/input-number.component.d.ts +17 -17
  40. package/input-password/input-password.component.d.ts +28 -28
  41. package/input-text/input-text.component.d.ts +17 -17
  42. package/inputs.module.d.ts +36 -36
  43. package/package.json +28 -25
  44. package/public-api.d.ts +16 -16
  45. package/select-box/mat-select-infinite-scroll.directive.d.ts +26 -26
  46. package/select-box/select-box.component.d.ts +57 -57
  47. package/select-enum/select-enum.component.d.ts +12 -12
  48. package/select-interpolation/select-interpolation.component.d.ts +44 -44
  49. package/value-acessor-base.d.ts +13 -13
  50. package/esm2020/ace-editor/component.mjs +0 -195
  51. package/esm2020/ace-editor/directive.mjs +0 -148
  52. package/esm2020/custom-select/custom-select-item.mjs +0 -7
  53. package/esm2020/custom-select/custom-select.component.mjs +0 -204
  54. package/esm2020/debounce-model-directive/debouceInput.directive.mjs +0 -31
  55. package/esm2020/field/field.component.mjs +0 -51
  56. package/esm2020/input-avatar/input-avatar.component.mjs +0 -92
  57. package/esm2020/input-boolean/input-boolean.component.mjs +0 -56
  58. package/esm2020/input-file/input-file.component.mjs +0 -82
  59. package/esm2020/input-number/input-number.component.mjs +0 -62
  60. package/esm2020/input-password/input-password.component.mjs +0 -96
  61. package/esm2020/input-text/input-text.component.mjs +0 -62
  62. package/esm2020/inputs.module.mjs +0 -149
  63. package/esm2020/select-box/mat-select-infinite-scroll.directive.mjs +0 -86
  64. package/esm2020/select-box/select-box.component.mjs +0 -225
  65. package/esm2020/select-enum/select-enum.component.mjs +0 -48
  66. package/esm2020/select-interpolation/select-interpolation.component.mjs +0 -169
  67. package/esm2020/value-acessor-base.mjs +0 -31
  68. package/fesm2015/apipass-inputs.mjs +0 -1706
  69. package/fesm2015/apipass-inputs.mjs.map +0 -1
  70. package/fesm2020/apipass-inputs.mjs +0 -1696
  71. package/fesm2020/apipass-inputs.mjs.map +0 -1
@@ -0,0 +1,150 @@
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 { MatSelectInfiniteScrollDirective } from './select-box/mat-select-infinite-scroll.directive';
16
+ import { NgSelectModule } from '@ng-select/ng-select';
17
+ import { CustomSelectComponent } from './custom-select/custom-select.component';
18
+ import { DndModule } from 'ngx-drag-drop';
19
+ import { IconsModule } from '@apipass/icons';
20
+ import { PipeModule } from '@apipass/pipes';
21
+ import { RouterModule } from '@angular/router';
22
+ import { MatPasswordStrengthModule } from '@angular-material-extensions/password-strength';
23
+ import { InputFileComponent } from './input-file/input-file.component';
24
+ import { AceEditorComponent } from './ace-editor/component';
25
+ import { AceEditorDirective } from './ace-editor/directive';
26
+ import { InputNumberComponent } from './input-number/input-number.component';
27
+ import { InputBooleanComponent } from './input-boolean/input-boolean.component';
28
+ import { ButtonsModule } from '@apipass/buttons';
29
+ import { DebouceInputDirective } from './debounce-model-directive/debouceInput.directive';
30
+ import { OverlayModule } from '@angular/cdk/overlay';
31
+ import { SelectInterpolationComponent } from './select-interpolation/select-interpolation.component';
32
+ import * as i0 from "@angular/core";
33
+ import * as i1 from "@angular/router";
34
+ class InputsModule {
35
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
36
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.2", ngImport: i0, type: InputsModule, declarations: [MatSelectInfiniteScrollDirective,
37
+ SelectBoxComponent,
38
+ SelectEnumComponent,
39
+ InputTextComponent,
40
+ InputNumberComponent,
41
+ InputBooleanComponent,
42
+ InputPasswordComponent,
43
+ InputAvatarComponent,
44
+ InputFileComponent,
45
+ CustomSelectComponent,
46
+ SelectInterpolationComponent,
47
+ FieldComponent,
48
+ AceEditorComponent,
49
+ AceEditorDirective,
50
+ DebouceInputDirective], imports: [i1.RouterModule, CommonModule,
51
+ FormsModule,
52
+ MatFormFieldModule,
53
+ MatInputModule,
54
+ MatPasswordStrengthModule,
55
+ MatSelectModule,
56
+ NgSelectModule,
57
+ PipeModule,
58
+ MatIconModule,
59
+ IconsModule,
60
+ MatTooltipModule,
61
+ DndModule,
62
+ ButtonsModule,
63
+ OverlayModule], exports: [SelectBoxComponent,
64
+ SelectEnumComponent,
65
+ InputTextComponent,
66
+ InputNumberComponent,
67
+ InputBooleanComponent,
68
+ InputPasswordComponent,
69
+ InputAvatarComponent,
70
+ InputFileComponent,
71
+ CustomSelectComponent,
72
+ SelectInterpolationComponent,
73
+ FieldComponent,
74
+ AceEditorComponent,
75
+ AceEditorDirective,
76
+ DebouceInputDirective] });
77
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputsModule, imports: [RouterModule.forChild([]),
78
+ CommonModule,
79
+ FormsModule,
80
+ MatFormFieldModule,
81
+ MatInputModule,
82
+ MatPasswordStrengthModule,
83
+ MatSelectModule,
84
+ NgSelectModule,
85
+ PipeModule,
86
+ MatIconModule,
87
+ IconsModule,
88
+ MatTooltipModule,
89
+ DndModule,
90
+ ButtonsModule,
91
+ OverlayModule] });
92
+ }
93
+ export { InputsModule };
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: InputsModule, decorators: [{
95
+ type: NgModule,
96
+ args: [{
97
+ imports: [
98
+ RouterModule.forChild([]),
99
+ CommonModule,
100
+ FormsModule,
101
+ MatFormFieldModule,
102
+ MatInputModule,
103
+ MatPasswordStrengthModule,
104
+ MatSelectModule,
105
+ NgSelectModule,
106
+ PipeModule,
107
+ MatIconModule,
108
+ IconsModule,
109
+ MatTooltipModule,
110
+ DndModule,
111
+ ButtonsModule,
112
+ OverlayModule
113
+ ],
114
+ declarations: [
115
+ MatSelectInfiniteScrollDirective,
116
+ SelectBoxComponent,
117
+ SelectEnumComponent,
118
+ InputTextComponent,
119
+ InputNumberComponent,
120
+ InputBooleanComponent,
121
+ InputPasswordComponent,
122
+ InputAvatarComponent,
123
+ InputFileComponent,
124
+ CustomSelectComponent,
125
+ SelectInterpolationComponent,
126
+ FieldComponent,
127
+ AceEditorComponent,
128
+ AceEditorDirective,
129
+ DebouceInputDirective
130
+ ],
131
+ exports: [
132
+ SelectBoxComponent,
133
+ SelectEnumComponent,
134
+ InputTextComponent,
135
+ InputNumberComponent,
136
+ InputBooleanComponent,
137
+ InputPasswordComponent,
138
+ InputAvatarComponent,
139
+ InputFileComponent,
140
+ CustomSelectComponent,
141
+ SelectInterpolationComponent,
142
+ FieldComponent,
143
+ AceEditorComponent,
144
+ AceEditorDirective,
145
+ DebouceInputDirective
146
+ ],
147
+ providers: []
148
+ }]
149
+ }] });
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2lucHV0cy9zcmMvaW5wdXRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUE7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG1EQUFtRCxDQUFBO0FBQ3BHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUMvRSxPQUFPLEVBQUUs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QzVCLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLHFCQUFxQjtxQkFDdEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQixxQkFBcUI7d0JBQ3JCLDRCQUE0Qjt3QkFDNUIsY0FBYzt3QkFDZCxrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIscUJBQXFCO3FCQUN0QjtvQkFDRCxTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBTZWxlY3RFbnVtQ29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QtZW51bS9zZWxlY3QtZW51bS5jb21wb25lbnQnXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJ1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCdcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCdcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnXG5pbXBvcnQgeyBJbnB1dFBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1wYXNzd29yZC9pbnB1dC1wYXNzd29yZC5jb21wb25lbnQnXG5pbXBvcnQgeyBJbnB1dFRleHRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LXRleHQvaW5wdXQtdGV4dC5jb21wb25lbnQnXG5pbXBvcnQgeyBJbnB1dEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtYXZhdGFyL2lucHV0LWF2YXRhci5jb21wb25lbnQnXG5pbXBvcnQgeyBGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vZmllbGQvZmllbGQuY29tcG9uZW50J1xuaW1wb3J0IHsgU2VsZWN0Qm94Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QtYm94L3NlbGVjdC1ib3guY29tcG9uZW50J1xuaW1wb3J0IHsgTWF0U2VsZWN0SW5maW5pdGVTY3JvbGxEaXJlY3RpdmUgfSBmcm9tICcuL3NlbGVjdC1ib3gvbWF0LXNlbGVjdC1pbmZpbml0ZS1zY3JvbGwuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgTmdTZWxlY3RNb2R1bGUgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCdcbmltcG9ydCB7IEN1c3RvbVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY3VzdG9tLXNlbGVjdC9jdXN0b20tc2VsZWN0LmNvbXBvbmVudCdcbmltcG9ydCB7IERuZE1vZHVsZSB9IGZyb20gJ25neC1kcmFnLWRyb3AnXG5pbXBvcnQgeyBJY29uc01vZHVsZSB9IGZyb20gJ0BhcGlwYXNzL2ljb25zJ1xuaW1wb3J0IHsgUGlwZU1vZHVsZSB9IGZyb20gJ0BhcGlwYXNzL3BpcGVzJ1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xuaW1wb3J0IHsgTWF0UGFzc3dvcmRTdHJlbmd0aE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyLW1hdGVyaWFsLWV4dGVuc2lvbnMvcGFzc3dvcmQtc3RyZW5ndGgnXG5pbXBvcnQgeyBJbnB1dEZpbGVDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LWZpbGUvaW5wdXQtZmlsZS5jb21wb25lbnQnXG5pbXBvcnQgeyBBY2VFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2FjZS1lZGl0b3IvY29tcG9uZW50J1xuaW1wb3J0IHsgQWNlRWRpdG9yRGlyZWN0aXZlIH0gZnJvbSAnLi9hY2UtZWRpdG9yL2RpcmVjdGl2ZSdcbmltcG9ydCB7IElucHV0TnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLmNvbXBvbmVudCdcbmltcG9ydCB7IElucHV0Qm9vbGVhbkNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtYm9vbGVhbi9pbnB1dC1ib29sZWFuLmNvbXBvbmVudCdcbmltcG9ydCB7IEJ1dHRvbnNNb2R1bGUgfSBmcm9tICdAYXBpcGFzcy9idXR0b25zJ1xuaW1wb3J0IHsgRGVib3VjZUlucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi9kZWJvdW5jZS1tb2RlbC1kaXJlY3RpdmUvZGVib3VjZUlucHV0LmRpcmVjdGl2ZSdcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSdcbmltcG9ydCB7IFNlbGVjdEludGVycG9sYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC1pbnRlcnBvbGF0aW9uL3NlbGVjdC1pbnRlcnBvbGF0aW9uLmNvbXBvbmVudCdcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIFJvdXRlck1vZHVsZS5mb3JDaGlsZChbXSksXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRQYXNzd29yZFN0cmVuZ3RoTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBOZ1NlbGVjdE1vZHVsZSxcbiAgICBQaXBlTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgSWNvbnNNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBEbmRNb2R1bGUsXG4gICAgQnV0dG9uc01vZHVsZSxcbiAgICBPdmVybGF5TW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIE1hdFNlbGVjdEluZmluaXRlU2Nyb2xsRGlyZWN0aXZlLFxuICAgIFNlbGVjdEJveENvbXBvbmVudCxcbiAgICBTZWxlY3RFbnVtQ29tcG9uZW50LFxuICAgIElucHV0VGV4dENvbXBvbmVudCxcbiAgICBJbnB1dE51bWJlckNvbXBvbmVudCxcbiAgICBJbnB1dEJvb2xlYW5Db21wb25lbnQsXG4gICAgSW5wdXRQYXNzd29yZENvbXBvbmVudCxcbiAgICBJbnB1dEF2YXRhckNvbXBvbmVudCxcbiAgICBJbnB1dEZpbGVDb21wb25lbnQsXG4gICAgQ3VzdG9tU2VsZWN0Q29tcG9uZW50LFxuICAgIFNlbGVjdEludGVycG9sYXRpb25Db21wb25lbnQsXG4gICAgRmllbGRDb21wb25lbnQsXG4gICAgQWNlRWRpdG9yQ29tcG9uZW50LFxuICAgIEFjZUVkaXRvckRpcmVjdGl2ZSxcbiAgICBEZWJvdWNlSW5wdXREaXJlY3RpdmVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNlbGVjdEJveENvbXBvbmVudCxcbiAgICBTZWxlY3RFbnVtQ29tcG9uZW50LFxuICAgIElucHV0VGV4dENvbXBvbmVudCxcbiAgICBJbnB1dE51bWJlckNvbXBvbmVudCxcbiAgICBJbnB1dEJvb2xlYW5Db21wb25lbnQsXG4gICAgSW5wdXRQYXNzd29yZENvbXBvbmVudCxcbiAgICBJbnB1dEF2YXRhckNvbXBvbmVudCxcbiAgICBJbnB1dEZpbGVDb21wb25lbnQsXG4gICAgQ3VzdG9tU2VsZWN0Q29tcG9uZW50LFxuICAgIFNlbGVjdEludGVycG9sYXRpb25Db21wb25lbnQsXG4gICAgRmllbGRDb21wb25lbnQsXG4gICAgQWNlRWRpdG9yQ29tcG9uZW50LFxuICAgIEFjZUVkaXRvckRpcmVjdGl2ZSxcbiAgICBEZWJvdWNlSW5wdXREaXJlY3RpdmVcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dHNNb2R1bGUge1xufVxuIl19
@@ -1,17 +1,17 @@
1
- export * from './inputs.module';
2
- export * from './select-interpolation/select-interpolation.component';
3
- export * from './custom-select/custom-select.component';
4
- export * from './custom-select/custom-select-item';
5
- export * from './field/field.component';
6
- export * from './input-avatar/input-avatar.component';
7
- export * from './input-file/input-file.component';
8
- export * from './input-password/input-password.component';
9
- export * from './input-text/input-text.component';
10
- export * from './input-number/input-number.component';
11
- export * from './input-boolean/input-boolean.component';
12
- export * from './select-box/select-box.component';
13
- export * from './select-enum/select-enum.component';
14
- export * from './ace-editor/directive';
15
- export * from './ace-editor/component';
16
- export * from './debounce-model-directive/debouceInput.directive';
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2lucHV0cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsdURBQXVELENBQUE7QUFDckUsY0FBYyx5Q0FBeUMsQ0FBQTtBQUN2RCxjQUFjLG9DQUFvQyxDQUFBO0FBQ2xELGNBQWMseUJBQXlCLENBQUE7QUFDdkMsY0FBYyx1Q0FBdUMsQ0FBQTtBQUNyRCxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMsMkNBQTJDLENBQUE7QUFDekQsY0FBYyxtQ0FBbUMsQ0FBQTtBQUNqRCxjQUFjLHVDQUF1QyxDQUFBO0FBQ3JELGNBQWMseUNBQXlDLENBQUE7QUFDdkQsY0FBYyxtQ0FBbUMsQ0FBQTtBQUNqRCxjQUFjLHFDQUFxQyxDQUFBO0FBQ25ELGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyx3QkFBd0IsQ0FBQTtBQUN0QyxjQUFjLG1EQUFtRCxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbnB1dHMubW9kdWxlJ1xyXG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdC1pbnRlcnBvbGF0aW9uL3NlbGVjdC1pbnRlcnBvbGF0aW9uLmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9jdXN0b20tc2VsZWN0L2N1c3RvbS1zZWxlY3QuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2N1c3RvbS1zZWxlY3QvY3VzdG9tLXNlbGVjdC1pdGVtJ1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkL2ZpZWxkLmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1hdmF0YXIvaW5wdXQtYXZhdGFyLmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1maWxlL2lucHV0LWZpbGUuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2lucHV0LXBhc3N3b3JkL2lucHV0LXBhc3N3b3JkLmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC10ZXh0L2lucHV0LXRleHQuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2lucHV0LW51bWJlci9pbnB1dC1udW1iZXIuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2lucHV0LWJvb2xlYW4vaW5wdXQtYm9vbGVhbi5jb21wb25lbnQnXHJcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LWJveC9zZWxlY3QtYm94LmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QtZW51bS9zZWxlY3QtZW51bS5jb21wb25lbnQnXHJcbmV4cG9ydCAqIGZyb20gJy4vYWNlLWVkaXRvci9kaXJlY3RpdmUnXHJcbmV4cG9ydCAqIGZyb20gJy4vYWNlLWVkaXRvci9jb21wb25lbnQnXHJcbmV4cG9ydCAqIGZyb20gJy4vZGVib3VuY2UtbW9kZWwtZGlyZWN0aXZlL2RlYm91Y2VJbnB1dC5kaXJlY3RpdmUnXHJcbiJdfQ==
1
+ export * from './inputs.module';
2
+ export * from './select-interpolation/select-interpolation.component';
3
+ export * from './custom-select/custom-select.component';
4
+ export * from './custom-select/custom-select-item';
5
+ export * from './field/field.component';
6
+ export * from './input-avatar/input-avatar.component';
7
+ export * from './input-file/input-file.component';
8
+ export * from './input-password/input-password.component';
9
+ export * from './input-text/input-text.component';
10
+ export * from './input-number/input-number.component';
11
+ export * from './input-boolean/input-boolean.component';
12
+ export * from './select-box/select-box.component';
13
+ export * from './select-enum/select-enum.component';
14
+ export * from './ace-editor/directive';
15
+ export * from './ace-editor/component';
16
+ export * from './debounce-model-directive/debouceInput.directive';
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2lucHV0cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsdURBQXVELENBQUE7QUFDckUsY0FBYyx5Q0FBeUMsQ0FBQTtBQUN2RCxjQUFjLG9DQUFvQyxDQUFBO0FBQ2xELGNBQWMseUJBQXlCLENBQUE7QUFDdkMsY0FBYyx1Q0FBdUMsQ0FBQTtBQUNyRCxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMsMkNBQTJDLENBQUE7QUFDekQsY0FBYyxtQ0FBbUMsQ0FBQTtBQUNqRCxjQUFjLHVDQUF1QyxDQUFBO0FBQ3JELGNBQWMseUNBQXlDLENBQUE7QUFDdkQsY0FBYyxtQ0FBbUMsQ0FBQTtBQUNqRCxjQUFjLHFDQUFxQyxDQUFBO0FBQ25ELGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyx3QkFBd0IsQ0FBQTtBQUN0QyxjQUFjLG1EQUFtRCxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbnB1dHMubW9kdWxlJ1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QtaW50ZXJwb2xhdGlvbi9zZWxlY3QtaW50ZXJwb2xhdGlvbi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2N1c3RvbS1zZWxlY3QvY3VzdG9tLXNlbGVjdC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2N1c3RvbS1zZWxlY3QvY3VzdG9tLXNlbGVjdC1pdGVtJ1xuZXhwb3J0ICogZnJvbSAnLi9maWVsZC9maWVsZC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2lucHV0LWF2YXRhci9pbnB1dC1hdmF0YXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1maWxlL2lucHV0LWZpbGUuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1wYXNzd29yZC9pbnB1dC1wYXNzd29yZC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2lucHV0LXRleHQvaW5wdXQtdGV4dC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2lucHV0LW51bWJlci9pbnB1dC1udW1iZXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9pbnB1dC1ib29sZWFuL2lucHV0LWJvb2xlYW4uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QtYm94L3NlbGVjdC1ib3guY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QtZW51bS9zZWxlY3QtZW51bS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2FjZS1lZGl0b3IvZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9hY2UtZWRpdG9yL2NvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGVib3VuY2UtbW9kZWwtZGlyZWN0aXZlL2RlYm91Y2VJbnB1dC5kaXJlY3RpdmUnXG4iXX0=
@@ -0,0 +1,91 @@
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
+ class MatSelectInfiniteScrollDirective {
10
+ matSelect;
11
+ ngZone;
12
+ threshold = '15%';
13
+ debounceTime = 150;
14
+ complete;
15
+ infiniteScroll = new EventEmitter();
16
+ panel;
17
+ thrPx = 0;
18
+ thrPc = 0;
19
+ singleOptionHeight = SELECT_ITEM_HEIGHT_EM;
20
+ destroyed$ = new Subject();
21
+ constructor(matSelect, ngZone) {
22
+ this.matSelect = matSelect;
23
+ this.ngZone = ngZone;
24
+ }
25
+ ngOnInit() {
26
+ this.evaluateThreshold();
27
+ }
28
+ ngAfterViewInit() {
29
+ this.matSelect.openedChange.pipe(takeUntil(this.destroyed$)).subscribe((opened) => {
30
+ if (opened) {
31
+ this.panel = this.matSelect.panel.nativeElement;
32
+ this.singleOptionHeight = this.getSelectItemHeightPx();
33
+ this.registerScrollListener();
34
+ }
35
+ });
36
+ }
37
+ ngOnDestroy() {
38
+ this.destroyed$.next(true);
39
+ this.destroyed$.complete();
40
+ }
41
+ evaluateThreshold() {
42
+ if (this.threshold.lastIndexOf('%') > -1) {
43
+ this.thrPx = 0;
44
+ this.thrPc = (parseFloat(this.threshold) / 100);
45
+ }
46
+ else {
47
+ this.thrPx = parseFloat(this.threshold);
48
+ this.thrPc = 0;
49
+ }
50
+ }
51
+ registerScrollListener() {
52
+ fromEvent(this.panel, 'scroll').pipe(takeUntil(this.destroyed$), debounceTime(this.debounceTime), tap((event) => {
53
+ this.handleScrollEvent(event);
54
+ })).subscribe();
55
+ }
56
+ handleScrollEvent(event) {
57
+ this.ngZone.runOutsideAngular(() => {
58
+ if (this.complete) {
59
+ return;
60
+ }
61
+ const countOfRenderedOptions = this.matSelect.options.length;
62
+ const infiniteScrollDistance = this.singleOptionHeight * countOfRenderedOptions;
63
+ const threshold = this.thrPc !== 0 ? (infiniteScrollDistance * this.thrPc) : this.thrPx;
64
+ const scrolledDistance = this.panel.clientHeight + event.target.scrollTop;
65
+ if ((scrolledDistance + threshold) >= infiniteScrollDistance) {
66
+ this.ngZone.run(() => { this.infiniteScroll.emit(); });
67
+ }
68
+ });
69
+ }
70
+ getSelectItemHeightPx() {
71
+ return parseFloat(getComputedStyle(this.panel).fontSize) * SELECT_ITEM_HEIGHT_EM;
72
+ }
73
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: MatSelectInfiniteScrollDirective, deps: [{ token: i1.MatSelect }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
74
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: MatSelectInfiniteScrollDirective, selector: "[msInfiniteScroll]", inputs: { threshold: "threshold", debounceTime: "debounceTime", complete: "complete" }, outputs: { infiniteScroll: "infiniteScroll" }, ngImport: i0 });
75
+ }
76
+ export { MatSelectInfiniteScrollDirective };
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: MatSelectInfiniteScrollDirective, decorators: [{
78
+ type: Directive,
79
+ args: [{
80
+ selector: '[msInfiniteScroll]'
81
+ }]
82
+ }], ctorParameters: function () { return [{ type: i1.MatSelect }, { type: i0.NgZone }]; }, propDecorators: { threshold: [{
83
+ type: Input
84
+ }], debounceTime: [{
85
+ type: Input
86
+ }], complete: [{
87
+ type: Input
88
+ }], infiniteScroll: [{
89
+ type: Output
90
+ }] } });
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LXNlbGVjdC1pbmZpbml0ZS1zY3JvbGwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9zZWxlY3QtYm94L21hdC1zZWxlY3QtaW5maW5pdGUtc2Nyb2xsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2hILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTs7O0FBRXpDLG9EQUFvRDtBQUNwRCxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQTtBQUUvQixNQUdhLGdDQUFnQztJQWNiO0lBQXVDO0lBWjVELFNBQVMsR0FBRyxLQUFLLENBQUE7SUFDakIsWUFBWSxHQUFHLEdBQUcsQ0FBQTtJQUNsQixRQUFRLENBQVU7SUFDakIsY0FBYyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUE7SUFFM0MsS0FBSyxDQUFVO0lBQ2YsS0FBSyxHQUFHLENBQUMsQ0FBQTtJQUNULEtBQUssR0FBRyxDQUFDLENBQUE7SUFDVCxrQkFBa0IsR0FBRyxxQkFBcUIsQ0FBQTtJQUVqQyxVQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQTtJQUVwRCxZQUE4QixTQUFvQixFQUFtQixNQUFjO1FBQXJELGNBQVMsR0FBVCxTQUFTLENBQVc7UUFBbUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNuRixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFFRCxl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LGdDQUFnQzsyRkFBaEMsZ0NBQWdDOztTQUFoQyxnQ0FBZ0M7MkZBQWhDLGdDQUFnQztrQkFINUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2lCQUMvQjtxSEFHVSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTWF0U2VsZWN0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0J1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcydcblxuLyoqIFRoZSBoZWlnaHQgb2YgdGhlIHNlbGVjdCBpdGVtcyBpbiBgZW1gIHVuaXRzLiAqL1xuY29uc3QgU0VMRUNUX0lURU1fSEVJR0hUX0VNID0gM1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbXNJbmZpbml0ZVNjcm9sbF0nXG59KVxuZXhwb3J0IGNsYXNzIE1hdFNlbGVjdEluZmluaXRlU2Nyb2xsRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuXG4gIEBJbnB1dCgpIHRocmVzaG9sZCA9ICcxNSUnXG4gIEBJbnB1dCgpIGRlYm91bmNlVGltZSA9IDE1MFxuICBASW5wdXQoKSBjb21wbGV0ZSE6IGJvb2xlYW5cbiAgQE91dHB1dCgpIGluZmluaXRlU2Nyb2xsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpXG5cbiAgcHJpdmF0ZSBwYW5lbCE6IEVsZW1lbnRcbiAgcHJpdmF0ZSB0aHJQeCA9IDBcbiAgcHJpdmF0ZSB0aHJQYyA9IDBcbiAgcHJpdmF0ZSBzaW5nbGVPcHRpb25IZWlnaHQgPSBTRUxFQ1RfSVRFTV9IRUlHSFRfRU1cblxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpXG5cbiAgY29uc3RydWN0b3IgKHByaXZhdGUgcmVhZG9ubHkgbWF0U2VsZWN0OiBNYXRTZWxlY3QsIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUpIHtcbiAgfVxuXG4gIG5nT25Jbml0ICgpOiB2b2lkIHtcbiAgICB0aGlzLmV2YWx1YXRlVGhyZXNob2xkKClcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCAoKTogdm9pZCB7XG4gICAgdGhpcy5tYXRTZWxlY3Qub3BlbmVkQ2hhbmdlLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICkuc3Vic2NyaWJlKChvcGVuZWQpID0+IHtcbiAgICAgIGlmIChvcGVuZWQpIHtcbiAgICAgICAgdGhpcy5wYW5lbCA9IHRoaXMubWF0U2VsZWN0LnBhbmVsLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgdGhpcy5zaW5nbGVPcHRpb25IZWlnaHQgPSB0aGlzLmdldFNlbGVjdEl0ZW1IZWlnaHRQeCgpXG4gICAgICAgIHRoaXMucmVnaXN0ZXJTY3JvbGxMaXN0ZW5lcigpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG5nT25EZXN0cm95ICgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCh0cnVlKVxuICAgIHRoaXMuZGVzdHJveWVkJC5jb21wbGV0ZSgpXG4gIH1cblxuICBldmFsdWF0ZVRocmVzaG9sZCAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGhyZXNob2xkLmxhc3RJbmRleE9mKCclJykgPiAtMSkge1xuICAgICAgdGhpcy50aHJQeCA9IDBcbiAgICAgIHRoaXMudGhyUGMgPSAocGFyc2VGbG9hdCh0aGlzLnRocmVzaG9sZCkgLyAxMDApXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGhyUHggPSBwYXJzZUZsb2F0KHRoaXMudGhyZXNob2xkKVxuICAgICAgdGhpcy50aHJQYyA9IDBcbiAgICB9XG4gIH1cblxuICByZWdpc3RlclNjcm9sbExpc3RlbmVyICgpOiB2b2lkIHtcbiAgICBmcm9tRXZlbnQodGhpcy5wYW5lbCwgJ3Njcm9sbCcpLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcbiAgICAgIGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZSksXG4gICAgICB0YXAoKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlU2Nyb2xsRXZlbnQoZXZlbnQpXG4gICAgICB9KVxuICAgICkuc3Vic2NyaWJlKClcbiAgfVxuXG4gIGhhbmRsZVNjcm9sbEV2ZW50IChldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuY29tcGxldGUpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBjb25zdCBjb3VudE9mUmVuZGVyZWRPcHRpb25zID0gdGhpcy5tYXRTZWxlY3Qub3B0aW9ucy5sZW5ndGhcbiAgICAgIGNvbnN0IGluZmluaXRlU2Nyb2xsRGlzdGFuY2UgPSB0aGlzLnNpbmdsZU9wdGlvbkhlaWdodCAqIGNvdW50T2ZSZW5kZXJlZE9wdGlvbnNcbiAgICAgIGNvbnN0IHRocmVzaG9sZCA9IHRoaXMudGhyUGMgIT09IDAgPyAoaW5maW5pdGVTY3JvbGxEaXN0YW5jZSAqIHRoaXMudGhyUGMpIDogdGhpcy50aHJQeFxuXG4gICAgICBjb25zdCBzY3JvbGxlZERpc3RhbmNlID0gdGhpcy5wYW5lbC5jbGllbnRIZWlnaHQgKyBldmVudC50YXJnZXQuc2Nyb2xsVG9wXG5cbiAgICAgIGlmICgoc2Nyb2xsZWREaXN0YW5jZSArIHRocmVzaG9sZCkgPj0gaW5maW5pdGVTY3JvbGxEaXN0YW5jZSkge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4geyB0aGlzLmluZmluaXRlU2Nyb2xsLmVtaXQoKSB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBnZXRTZWxlY3RJdGVtSGVpZ2h0UHggKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnBhbmVsKS5mb250U2l6ZSkgKiBTRUxFQ1RfSVRFTV9IRUlHSFRfRU1cbiAgfVxuXG59XG4iXX0=