@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
@@ -1,149 +0,0 @@
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
- export class InputsModule {
35
- }
36
- InputsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: InputsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
37
- InputsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.3", ngImport: i0, type: InputsModule, declarations: [MatSelectInfiniteScrollDirective,
38
- SelectBoxComponent,
39
- SelectEnumComponent,
40
- InputTextComponent,
41
- InputNumberComponent,
42
- InputBooleanComponent,
43
- InputPasswordComponent,
44
- InputAvatarComponent,
45
- InputFileComponent,
46
- CustomSelectComponent,
47
- SelectInterpolationComponent,
48
- FieldComponent,
49
- AceEditorComponent,
50
- AceEditorDirective,
51
- DebouceInputDirective], imports: [i1.RouterModule, CommonModule,
52
- FormsModule,
53
- MatFormFieldModule,
54
- MatInputModule,
55
- MatPasswordStrengthModule,
56
- MatSelectModule,
57
- NgSelectModule,
58
- PipeModule,
59
- MatIconModule,
60
- IconsModule,
61
- MatTooltipModule,
62
- DndModule,
63
- ButtonsModule,
64
- OverlayModule], exports: [SelectBoxComponent,
65
- SelectEnumComponent,
66
- InputTextComponent,
67
- InputNumberComponent,
68
- InputBooleanComponent,
69
- InputPasswordComponent,
70
- InputAvatarComponent,
71
- InputFileComponent,
72
- CustomSelectComponent,
73
- SelectInterpolationComponent,
74
- FieldComponent,
75
- AceEditorComponent,
76
- AceEditorDirective,
77
- DebouceInputDirective] });
78
- InputsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: InputsModule, imports: [RouterModule.forChild([]),
79
- CommonModule,
80
- FormsModule,
81
- MatFormFieldModule,
82
- MatInputModule,
83
- MatPasswordStrengthModule,
84
- MatSelectModule,
85
- NgSelectModule,
86
- PipeModule,
87
- MatIconModule,
88
- IconsModule,
89
- MatTooltipModule,
90
- DndModule,
91
- ButtonsModule,
92
- OverlayModule] });
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: InputsModule, decorators: [{
94
- type: NgModule,
95
- args: [{
96
- imports: [
97
- RouterModule.forChild([]),
98
- CommonModule,
99
- FormsModule,
100
- MatFormFieldModule,
101
- MatInputModule,
102
- MatPasswordStrengthModule,
103
- MatSelectModule,
104
- NgSelectModule,
105
- PipeModule,
106
- MatIconModule,
107
- IconsModule,
108
- MatTooltipModule,
109
- DndModule,
110
- ButtonsModule,
111
- OverlayModule
112
- ],
113
- declarations: [
114
- MatSelectInfiniteScrollDirective,
115
- SelectBoxComponent,
116
- SelectEnumComponent,
117
- InputTextComponent,
118
- InputNumberComponent,
119
- InputBooleanComponent,
120
- InputPasswordComponent,
121
- InputAvatarComponent,
122
- InputFileComponent,
123
- CustomSelectComponent,
124
- SelectInterpolationComponent,
125
- FieldComponent,
126
- AceEditorComponent,
127
- AceEditorDirective,
128
- DebouceInputDirective
129
- ],
130
- exports: [
131
- SelectBoxComponent,
132
- SelectEnumComponent,
133
- InputTextComponent,
134
- InputNumberComponent,
135
- InputBooleanComponent,
136
- InputPasswordComponent,
137
- InputAvatarComponent,
138
- InputFileComponent,
139
- CustomSelectComponent,
140
- SelectInterpolationComponent,
141
- FieldComponent,
142
- AceEditorComponent,
143
- AceEditorDirective,
144
- DebouceInputDirective
145
- ],
146
- providers: []
147
- }]
148
- }] });
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2lucHV0cy9zcmMvaW5wdXRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUE7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG1EQUFtRCxDQUFBO0FBQ3BHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUMvRSxPQUFPLEVBQUUs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QUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixxQkFBcUI7cUJBQ3RCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsc0JBQXNCO3dCQUN0QixvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIscUJBQXFCO3dCQUNyQiw0QkFBNEI7d0JBQzVCLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLHFCQUFxQjtxQkFDdEI7b0JBQ0QsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcclxuaW1wb3J0IHsgU2VsZWN0RW51bUNvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LWVudW0vc2VsZWN0LWVudW0uY29tcG9uZW50J1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJ1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0J1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnXHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCdcclxuaW1wb3J0IHsgSW5wdXRQYXNzd29yZENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtcGFzc3dvcmQvaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50J1xyXG5pbXBvcnQgeyBJbnB1dFRleHRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LXRleHQvaW5wdXQtdGV4dC5jb21wb25lbnQnXHJcbmltcG9ydCB7IElucHV0QXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1hdmF0YXIvaW5wdXQtYXZhdGFyLmNvbXBvbmVudCdcclxuaW1wb3J0IHsgRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2ZpZWxkL2ZpZWxkLmNvbXBvbmVudCdcclxuaW1wb3J0IHsgU2VsZWN0Qm94Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QtYm94L3NlbGVjdC1ib3guY29tcG9uZW50J1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSB9IGZyb20gJy4vc2VsZWN0LWJveC9tYXQtc2VsZWN0LWluZmluaXRlLXNjcm9sbC5kaXJlY3RpdmUnXHJcbmltcG9ydCB7IE5nU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnXHJcbmltcG9ydCB7IEN1c3RvbVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY3VzdG9tLXNlbGVjdC9jdXN0b20tc2VsZWN0LmNvbXBvbmVudCdcclxuaW1wb3J0IHsgRG5kTW9kdWxlIH0gZnJvbSAnbmd4LWRyYWctZHJvcCdcclxuaW1wb3J0IHsgSWNvbnNNb2R1bGUgfSBmcm9tICdAYXBpcGFzcy9pY29ucydcclxuaW1wb3J0IHsgUGlwZU1vZHVsZSB9IGZyb20gJ0BhcGlwYXNzL3BpcGVzJ1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXHJcbmltcG9ydCB7IE1hdFBhc3N3b3JkU3RyZW5ndGhNb2R1bGUgfSBmcm9tICdAYW5ndWxhci1tYXRlcmlhbC1leHRlbnNpb25zL3Bhc3N3b3JkLXN0cmVuZ3RoJ1xyXG5pbXBvcnQgeyBJbnB1dEZpbGVDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LWZpbGUvaW5wdXQtZmlsZS5jb21wb25lbnQnXHJcbmltcG9ydCB7IEFjZUVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vYWNlLWVkaXRvci9jb21wb25lbnQnXHJcbmltcG9ydCB7IEFjZUVkaXRvckRpcmVjdGl2ZSB9IGZyb20gJy4vYWNlLWVkaXRvci9kaXJlY3RpdmUnXHJcbmltcG9ydCB7IElucHV0TnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1udW1iZXIvaW5wdXQtbnVtYmVyLmNvbXBvbmVudCdcclxuaW1wb3J0IHsgSW5wdXRCb29sZWFuQ29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC1ib29sZWFuL2lucHV0LWJvb2xlYW4uY29tcG9uZW50J1xyXG5pbXBvcnQgeyBCdXR0b25zTW9kdWxlIH0gZnJvbSAnQGFwaXBhc3MvYnV0dG9ucydcclxuaW1wb3J0IHsgRGVib3VjZUlucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi9kZWJvdW5jZS1tb2RlbC1kaXJlY3RpdmUvZGVib3VjZUlucHV0LmRpcmVjdGl2ZSdcclxuaW1wb3J0IHsgT3ZlcmxheU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5J1xyXG5pbXBvcnQgeyBTZWxlY3RJbnRlcnBvbGF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QtaW50ZXJwb2xhdGlvbi9zZWxlY3QtaW50ZXJwb2xhdGlvbi5jb21wb25lbnQnXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIFJvdXRlck1vZHVsZS5mb3JDaGlsZChbXSksXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0UGFzc3dvcmRTdHJlbmd0aE1vZHVsZSxcclxuICAgIE1hdFNlbGVjdE1vZHVsZSxcclxuICAgIE5nU2VsZWN0TW9kdWxlLFxyXG4gICAgUGlwZU1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBJY29uc01vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBEbmRNb2R1bGUsXHJcbiAgICBCdXR0b25zTW9kdWxlLFxyXG4gICAgT3ZlcmxheU1vZHVsZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBNYXRTZWxlY3RJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSxcclxuICAgIFNlbGVjdEJveENvbXBvbmVudCxcclxuICAgIFNlbGVjdEVudW1Db21wb25lbnQsXHJcbiAgICBJbnB1dFRleHRDb21wb25lbnQsXHJcbiAgICBJbnB1dE51bWJlckNvbXBvbmVudCxcclxuICAgIElucHV0Qm9vbGVhbkNvbXBvbmVudCxcclxuICAgIElucHV0UGFzc3dvcmRDb21wb25lbnQsXHJcbiAgICBJbnB1dEF2YXRhckNvbXBvbmVudCxcclxuICAgIElucHV0RmlsZUNvbXBvbmVudCxcclxuICAgIEN1c3RvbVNlbGVjdENvbXBvbmVudCxcclxuICAgIFNlbGVjdEludGVycG9sYXRpb25Db21wb25lbnQsXHJcbiAgICBGaWVsZENvbXBvbmVudCxcclxuICAgIEFjZUVkaXRvckNvbXBvbmVudCxcclxuICAgIEFjZUVkaXRvckRpcmVjdGl2ZSxcclxuICAgIERlYm91Y2VJbnB1dERpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgU2VsZWN0Qm94Q29tcG9uZW50LFxyXG4gICAgU2VsZWN0RW51bUNvbXBvbmVudCxcclxuICAgIElucHV0VGV4dENvbXBvbmVudCxcclxuICAgIElucHV0TnVtYmVyQ29tcG9uZW50LFxyXG4gICAgSW5wdXRCb29sZWFuQ29tcG9uZW50LFxyXG4gICAgSW5wdXRQYXNzd29yZENvbXBvbmVudCxcclxuICAgIElucHV0QXZhdGFyQ29tcG9uZW50LFxyXG4gICAgSW5wdXRGaWxlQ29tcG9uZW50LFxyXG4gICAgQ3VzdG9tU2VsZWN0Q29tcG9uZW50LFxyXG4gICAgU2VsZWN0SW50ZXJwb2xhdGlvbkNvbXBvbmVudCxcclxuICAgIEZpZWxkQ29tcG9uZW50LFxyXG4gICAgQWNlRWRpdG9yQ29tcG9uZW50LFxyXG4gICAgQWNlRWRpdG9yRGlyZWN0aXZlLFxyXG4gICAgRGVib3VjZUlucHV0RGlyZWN0aXZlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dHNNb2R1bGUge1xyXG59XHJcbiJdfQ==
@@ -1,86 +0,0 @@
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 = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: MatSelectInfiniteScrollDirective, deps: [{ token: i1.MatSelect }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
71
- MatSelectInfiniteScrollDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.3", type: MatSelectInfiniteScrollDirective, selector: "[msInfiniteScroll]", inputs: { threshold: "threshold", debounceTime: "debounceTime", complete: "complete" }, outputs: { infiniteScroll: "infiniteScroll" }, ngImport: i0 });
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.3", ngImport: i0, type: MatSelectInfiniteScrollDirective, decorators: [{
73
- type: Directive,
74
- args: [{
75
- selector: '[msInfiniteScroll]'
76
- }]
77
- }], ctorParameters: function () { return [{ type: i1.MatSelect }, { type: i0.NgZone }]; }, propDecorators: { 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LXNlbGVjdC1pbmZpbml0ZS1zY3JvbGwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5wdXRzL3NyYy9zZWxlY3QtYm94L21hdC1zZWxlY3QtaW5maW5pdGUtc2Nyb2xsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2hILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTs7O0FBRXpDLG9EQUFvRDtBQUNwRCxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQTtBQUsvQixNQUFNLE9BQU8sZ0NBQWdDO0lBYTNDLFlBQThCLFNBQW9CLEVBQW1CLE1BQWM7UUFBckQsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFtQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBWjFFLGNBQVMsR0FBRyxLQUFLLENBQUE7UUFDakIsaUJBQVksR0FBRyxHQUFHLENBQUE7UUFFakIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFBO1FBRzNDLFVBQUssR0FBRyxDQUFDLENBQUE7UUFDVCxVQUFLLEdBQUcsQ0FBQyxDQUFBO1FBQ1QsdUJBQWtCLEdBQUcscUJBQXFCLENBQUE7UUFFakMsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUE7SUFHcEQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtJQUMxQixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxD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QztrQkFINUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2lCQUMvQjtxSEFFVSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnXHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcydcclxuXHJcbi8qKiBUaGUgaGVpZ2h0IG9mIHRoZSBzZWxlY3QgaXRlbXMgaW4gYGVtYCB1bml0cy4gKi9cclxuY29uc3QgU0VMRUNUX0lURU1fSEVJR0hUX0VNID0gM1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbbXNJbmZpbml0ZVNjcm9sbF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRTZWxlY3RJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSB0aHJlc2hvbGQgPSAnMTUlJ1xyXG4gIEBJbnB1dCgpIGRlYm91bmNlVGltZSA9IDE1MFxyXG4gIEBJbnB1dCgpIGNvbXBsZXRlITogYm9vbGVhblxyXG4gIEBPdXRwdXQoKSBpbmZpbml0ZVNjcm9sbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKVxyXG5cclxuICBwcml2YXRlIHBhbmVsITogRWxlbWVudFxyXG4gIHByaXZhdGUgdGhyUHggPSAwXHJcbiAgcHJpdmF0ZSB0aHJQYyA9IDBcclxuICBwcml2YXRlIHNpbmdsZU9wdGlvbkhlaWdodCA9IFNFTEVDVF9JVEVNX0hFSUdIVF9FTVxyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpXHJcblxyXG4gIGNvbnN0cnVjdG9yIChwcml2YXRlIHJlYWRvbmx5IG1hdFNlbGVjdDogTWF0U2VsZWN0LCBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCAoKTogdm9pZCB7XHJcbiAgICB0aGlzLmV2YWx1YXRlVGhyZXNob2xkKClcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCAoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1hdFNlbGVjdC5vcGVuZWRDaGFuZ2UucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcclxuICAgICkuc3Vic2NyaWJlKChvcGVuZWQpID0+IHtcclxuICAgICAgaWYgKG9wZW5lZCkge1xyXG4gICAgICAgIHRoaXMucGFuZWwgPSB0aGlzLm1hdFNlbGVjdC5wYW5lbC5uYXRpdmVFbGVtZW50XHJcbiAgICAgICAgdGhpcy5zaW5nbGVPcHRpb25IZWlnaHQgPSB0aGlzLmdldFNlbGVjdEl0ZW1IZWlnaHRQeCgpXHJcbiAgICAgICAgdGhpcy5yZWdpc3RlclNjcm9sbExpc3RlbmVyKClcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95ICgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KHRydWUpXHJcbiAgICB0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKVxyXG4gIH1cclxuXHJcbiAgZXZhbHVhdGVUaHJlc2hvbGQgKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudGhyZXNob2xkLmxhc3RJbmRleE9mKCclJykgPiAtMSkge1xyXG4gICAgICB0aGlzLnRoclB4ID0gMFxyXG4gICAgICB0aGlzLnRoclBjID0gKHBhcnNlRmxvYXQodGhpcy50aHJlc2hvbGQpIC8gMTAwKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50aHJQeCA9IHBhcnNlRmxvYXQodGhpcy50aHJlc2hvbGQpXHJcbiAgICAgIHRoaXMudGhyUGMgPSAwXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3RlclNjcm9sbExpc3RlbmVyICgpOiB2b2lkIHtcclxuICAgIGZyb21FdmVudCh0aGlzLnBhbmVsLCAnc2Nyb2xsJykucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCksXHJcbiAgICAgIGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZSksXHJcbiAgICAgIHRhcCgoZXZlbnQpID0+IHtcclxuICAgICAgICB0aGlzLmhhbmRsZVNjcm9sbEV2ZW50KGV2ZW50KVxyXG4gICAgICB9KVxyXG4gICAgKS5zdWJzY3JpYmUoKVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlU2Nyb2xsRXZlbnQgKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuY29tcGxldGUpIHtcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG4gICAgICBjb25zdCBjb3VudE9mUmVuZGVyZWRPcHRpb25zID0gdGhpcy5tYXRTZWxlY3Qub3B0aW9ucy5sZW5ndGhcclxuICAgICAgY29uc3QgaW5maW5pdGVTY3JvbGxEaXN0YW5jZSA9IHRoaXMuc2luZ2xlT3B0aW9uSGVpZ2h0ICogY291bnRPZlJlbmRlcmVkT3B0aW9uc1xyXG4gICAgICBjb25zdCB0aHJlc2hvbGQgPSB0aGlzLnRoclBjICE9PSAwID8gKGluZmluaXRlU2Nyb2xsRGlzdGFuY2UgKiB0aGlzLnRoclBjKSA6IHRoaXMudGhyUHhcclxuXHJcbiAgICAgIGNvbnN0IHNjcm9sbGVkRGlzdGFuY2UgPSB0aGlzLnBhbmVsLmNsaWVudEhlaWdodCArIGV2ZW50LnRhcmdldC5zY3JvbGxUb3BcclxuXHJcbiAgICAgIGlmICgoc2Nyb2xsZWREaXN0YW5jZSArIHRocmVzaG9sZCkgPj0gaW5maW5pdGVTY3JvbGxEaXN0YW5jZSkge1xyXG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7IHRoaXMuaW5maW5pdGVTY3JvbGwuZW1pdCgpIH0pXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3RJdGVtSGVpZ2h0UHggKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gcGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKHRoaXMucGFuZWwpLmZvbnRTaXplKSAqIFNFTEVDVF9JVEVNX0hFSUdIVF9FTVxyXG4gIH1cclxufVxyXG4iXX0=