ecabs-components 1.0.22 → 1.0.24-alpha

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 (107) hide show
  1. package/README.md +1 -0
  2. package/esm2022/lib/base/directives/digits-only.directive.mjs +2 -2
  3. package/esm2022/lib/base/directives/element-multiplier.directive.mjs +26 -0
  4. package/esm2022/lib/base/directives/element-multiplier.directive.module.mjs +22 -0
  5. package/esm2022/lib/base/directives/style-paginator.directive.mjs +263 -0
  6. package/esm2022/lib/base/directives/style-paginator.module.mjs +19 -0
  7. package/esm2022/lib/base/element-wrapper/element-wrapper.component.mjs +2 -2
  8. package/esm2022/lib/base/element-wrapper/element-wrapper.module.mjs +4 -4
  9. package/esm2022/lib/base/hint/hint.module.mjs +2 -2
  10. package/esm2022/lib/base/validation/validation.module.mjs +2 -2
  11. package/esm2022/lib/ecabs-autocomplete/ecabs-autocomplete.component.mjs +91 -0
  12. package/esm2022/lib/ecabs-autocomplete/ecabs-autocomplete.module.mjs +28 -0
  13. package/esm2022/lib/ecabs-buttons/ecabs-buttons.component.mjs +4 -4
  14. package/esm2022/lib/ecabs-buttons/ecabs-buttons.module.mjs +2 -2
  15. package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.mjs +4 -4
  16. package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.mjs +3 -3
  17. package/esm2022/lib/ecabs-date-picker/ecabs-date-picker.component.mjs +2 -2
  18. package/esm2022/lib/ecabs-date-picker/ecabs-date-picker.module.mjs +2 -2
  19. package/esm2022/lib/ecabs-date-range-picker/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header.component.mjs +15 -0
  20. package/esm2022/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.mjs +123 -0
  21. package/esm2022/lib/ecabs-date-range-picker/ecabs-date-range-picker.module.mjs +75 -0
  22. package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +2 -2
  23. package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.mjs +2 -2
  24. package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.mjs +2 -2
  25. package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.mjs +2 -2
  26. package/esm2022/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.mjs +4 -5
  27. package/esm2022/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.mjs +2 -2
  28. package/esm2022/lib/ecabs-dialog-message/ecabs-dialog-message.component.mjs +4 -5
  29. package/esm2022/lib/ecabs-dialog-message/ecabs-dialog-message.module.mjs +2 -2
  30. package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.mjs +2 -2
  31. package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.mjs +3 -3
  32. package/esm2022/lib/ecabs-increment/ecabs-increment.component.mjs +2 -2
  33. package/esm2022/lib/ecabs-increment/ecabs-increment.module.mjs +2 -2
  34. package/esm2022/lib/ecabs-input/ecabs-input.component.mjs +8 -4
  35. package/esm2022/lib/ecabs-input/ecabs-input.module.mjs +9 -5
  36. package/esm2022/lib/ecabs-language-selector/ecabs-language-selector.component.mjs +5 -5
  37. package/esm2022/lib/ecabs-language-selector/ecabs-language-selector.module.mjs +4 -4
  38. package/esm2022/lib/ecabs-phone/ecabs-phone.module.mjs +2 -2
  39. package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.component.mjs +3 -3
  40. package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.module.mjs +2 -2
  41. package/esm2022/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.mjs +2 -2
  42. package/esm2022/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.mjs +2 -2
  43. package/esm2022/lib/ecabs-select/ecabs-select.component.mjs +6 -6
  44. package/esm2022/lib/ecabs-select/ecabs-select.module.mjs +3 -3
  45. package/esm2022/lib/ecabs-sep-date-range-picker/ecabs-sep-date-range-picker.component.mjs +165 -0
  46. package/esm2022/lib/ecabs-sep-date-range-picker/ecabs-sep-date-range-picker.module.mjs +59 -0
  47. package/esm2022/lib/ecabs-sep-paginator/ecabs-sep-paginator.component.mjs +42 -0
  48. package/esm2022/lib/ecabs-sep-paginator/ecabs-sep-paginator.module.mjs +22 -0
  49. package/esm2022/lib/ecabs-skeleton-card-grid/ecabs-skeleton-card-grid.component.mjs +16 -0
  50. package/esm2022/lib/ecabs-skeleton-card-grid/ecabs-skeleton-card-grid.module.mjs +21 -0
  51. package/esm2022/lib/ecabs-skeleton-profile/ecabs-skeleton-profile.component.mjs +20 -0
  52. package/esm2022/lib/ecabs-skeleton-profile/ecabs-skeleton-profile.module.mjs +21 -0
  53. package/esm2022/lib/ecabs-skeleton-table/ecabs-skeleton-table.component.mjs +24 -0
  54. package/esm2022/lib/ecabs-skeleton-table/ecabs-skeleton-table.module.mjs +21 -0
  55. package/esm2022/lib/ecabs-skeleton-table-filter/ecabs-skeleton-table-filter.component.mjs +19 -0
  56. package/esm2022/lib/ecabs-skeleton-table-filter/ecabs-skeleton-table-filter.module.mjs +21 -0
  57. package/esm2022/lib/ecabs-table/ecabs-table.component.mjs +2 -2
  58. package/esm2022/lib/ecabs-table/ecabs-table.module.mjs +3 -3
  59. package/esm2022/lib/models/pagination.models.mjs +2 -0
  60. package/esm2022/public-api.mjs +18 -1
  61. package/fesm2022/ecabs-components.mjs +1128 -145
  62. package/fesm2022/ecabs-components.mjs.map +1 -1
  63. package/lib/base/directives/element-multiplier.directive.d.ts +10 -0
  64. package/lib/base/directives/element-multiplier.directive.module.d.ts +8 -0
  65. package/lib/base/directives/style-paginator.directive.d.ts +36 -0
  66. package/lib/base/directives/style-paginator.module.d.ts +8 -0
  67. package/lib/base/element-wrapper/element-wrapper.module.d.ts +4 -4
  68. package/lib/base/hint/hint.module.d.ts +2 -2
  69. package/lib/base/validation/validation.module.d.ts +2 -2
  70. package/lib/ecabs-autocomplete/ecabs-autocomplete.component.d.ts +30 -0
  71. package/lib/ecabs-autocomplete/ecabs-autocomplete.module.d.ts +15 -0
  72. package/lib/ecabs-buttons/ecabs-buttons.module.d.ts +2 -2
  73. package/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.d.ts +3 -3
  74. package/lib/ecabs-date-picker/ecabs-date-picker.module.d.ts +2 -2
  75. package/lib/ecabs-date-range-picker/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header.component.d.ts +6 -0
  76. package/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.d.ts +47 -0
  77. package/lib/ecabs-date-range-picker/ecabs-date-range-picker.module.d.ts +30 -0
  78. package/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.d.ts +2 -2
  79. package/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.d.ts +2 -2
  80. package/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.d.ts +2 -2
  81. package/lib/ecabs-dialog-message/ecabs-dialog-message.module.d.ts +2 -2
  82. package/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.d.ts +3 -3
  83. package/lib/ecabs-increment/ecabs-increment.module.d.ts +2 -2
  84. package/lib/ecabs-input/ecabs-input.component.d.ts +2 -1
  85. package/lib/ecabs-input/ecabs-input.module.d.ts +3 -2
  86. package/lib/ecabs-language-selector/ecabs-language-selector.module.d.ts +4 -4
  87. package/lib/ecabs-phone/ecabs-phone.module.d.ts +2 -2
  88. package/lib/ecabs-picker-header/ecabs-picker-header.module.d.ts +2 -2
  89. package/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.d.ts +2 -2
  90. package/lib/ecabs-select/ecabs-select.module.d.ts +3 -3
  91. package/lib/ecabs-sep-date-range-picker/ecabs-sep-date-range-picker.component.d.ts +52 -0
  92. package/lib/ecabs-sep-date-range-picker/ecabs-sep-date-range-picker.module.d.ts +17 -0
  93. package/lib/ecabs-sep-paginator/ecabs-sep-paginator.component.d.ts +20 -0
  94. package/lib/ecabs-sep-paginator/ecabs-sep-paginator.module.d.ts +11 -0
  95. package/lib/ecabs-skeleton-card-grid/ecabs-skeleton-card-grid.component.d.ts +6 -0
  96. package/lib/ecabs-skeleton-card-grid/ecabs-skeleton-card-grid.module.d.ts +10 -0
  97. package/lib/ecabs-skeleton-profile/ecabs-skeleton-profile.component.d.ts +9 -0
  98. package/lib/ecabs-skeleton-profile/ecabs-skeleton-profile.module.d.ts +10 -0
  99. package/lib/ecabs-skeleton-table/ecabs-skeleton-table.component.d.ts +10 -0
  100. package/lib/ecabs-skeleton-table/ecabs-skeleton-table.module.d.ts +10 -0
  101. package/lib/ecabs-skeleton-table-filter/ecabs-skeleton-table-filter.component.d.ts +7 -0
  102. package/lib/ecabs-skeleton-table-filter/ecabs-skeleton-table-filter.module.d.ts +10 -0
  103. package/lib/ecabs-table/ecabs-table.module.d.ts +3 -3
  104. package/lib/models/pagination.models.d.ts +26 -0
  105. package/package.json +2 -1
  106. package/public-api.d.ts +17 -0
  107. package/styles/material/overrides/_paginator.scss +58 -0
package/README.md CHANGED
@@ -25,3 +25,4 @@ To get more help on the Angular CLI use `ng help` or go check out the [Angular C
25
25
 
26
26
  v1.0.13 - Fixed emitEvent bahavior of checkbox
27
27
  v1.0.18 - - Fixed width of date time picker
28
+ v1.0.24-alpha - Added autocomplete component, skeletons and SEP date range picker. Removed legacy Material modules
@@ -41,7 +41,7 @@ export class DigitsOnlyDirective {
41
41
  (e.key === 'c' && e.metaKey) || // Allow: Cmd+C (Mac)
42
42
  (e.key === 'v' && e.metaKey) || // Allow: Cmd+V (Mac)
43
43
  (e.key === 'x' && e.metaKey) || // Allow: Cmd+X (Mac)
44
- (this.decimal && e.key === this.decimalSeparator && this.decimalCounter < 1) || // Allow: only one decimal point
44
+ (this.decimal && e.key === this.decimalSeparator && this.decimalCounter <= 1) || // Allow: only one decimal point
45
45
  (this.decimal && e.key === this.minus && this.minusCounter < 1) // Allow: only one minus
46
46
  ) {
47
47
  return;
@@ -130,4 +130,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
130
130
  type: HostListener,
131
131
  args: ['paste', ['$event']]
132
132
  }] } });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXRzLW9ubHkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvZGlyZWN0aXZlcy9kaWdpdHMtb25seS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQUtuRixNQUFNLE9BQU8sbUJBQW1CO0lBZ0NYO0lBOUJuQixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBR25CLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFFWCxPQUFPLEdBQUksS0FBSyxDQUFDO0lBQ2pCLGdCQUFnQixHQUFJLEdBQUcsQ0FBQztJQUN4QixJQUFJLEdBQUksQ0FBQyxDQUFDO0lBRW5CLFlBQVksQ0FBbUI7SUFDL0IsS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUNaLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDakIsS0FBSyxDQUFVO0lBRVAsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUNWLGNBQWMsR0FBRztRQUNoQyxXQUFXO1FBQ1gsUUFBUTtRQUNSLEtBQUs7UUFDTCxRQUFRO1FBQ1IsT0FBTztRQUNQLE1BQU07UUFDTixLQUFLO1FBQ0wsV0FBVztRQUNYLFlBQVk7UUFDWixPQUFPO1FBQ1AsTUFBTTtRQUNOLE9BQU87S0FDUixDQUFDO0lBRUYsWUFBbUIsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQ3ZDLENBQUM7SUFHRCxTQUFTLENBQUMsQ0FBZ0I7UUFDeEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQ0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJ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LFNBQVMsR0FBRyxDQUFDLEVBQUU7WUFDakIsd0NBQXdDO1lBQ3hDLE1BQU0sYUFBYSxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDakUsTUFBTSxHQUFHLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDdEU7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sY0FBYyxDQUFDLFdBQW1CO1FBQ3hDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQTBCLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQ3hFLENBQUM7d0dBMUhVLG1CQUFtQjs0RkFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7aUJBQzVCO2lHQUdDLFVBQVU7c0JBRFQsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBNEJOLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBMkJuQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWlCakMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thcHBEaWdpdHNPbmx5XScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaWdpdHNPbmx5RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKVxyXG4gIGRpZ2l0c09ubHkgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBhbGxvd0h5cGhlbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBkZWNpbWFsPyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRlY2ltYWxTZXBhcmF0b3I/ID0gJy4nO1xyXG4gIEBJbnB1dCgpIHVuaXQ/ID0gMDtcclxuXHJcbiAgaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50O1xyXG4gIG1pbnVzID0gJy0nO1xyXG4gIG1pbnVzQ291bnRlciA9IDA7XHJcbiAgcmVnZXghOiBSZWdFeHA7XHJcblxyXG4gIHByaXZhdGUgZGVjaW1hbENvdW50ZXIgPSAwO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbmF2aWdhdGlvbktleXMgPSBbXHJcbiAgICAnQmFja3NwYWNlJyxcclxuICAgICdEZWxldGUnLFxyXG4gICAgJ1RhYicsXHJcbiAgICAnRXNjYXBlJyxcclxuICAgICdFbnRlcicsXHJcbiAgICAnSG9tZScsXHJcbiAgICAnRW5kJyxcclxuICAgICdBcnJvd0xlZnQnLFxyXG4gICAgJ0Fycm93UmlnaHQnLFxyXG4gICAgJ0NsZWFyJyxcclxuICAgICdDb3B5JyxcclxuICAgICdQYXN0ZScsXHJcbiAgXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLmlucHV0RWxlbWVudCA9IGVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBvbktleURvd24oZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlnaXRzT25seSkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uS2V5cy5pbmRleE9mKGUua2V5KSA+IC0xIHx8IC8vIEFsbG93OiBuYXZpZ2F0aW9uIGtleXM6IGJhY2tzcGFjZSwgZGVsZXRlLCBhcnJvd3MgZXRjLlxyXG4gICAgICAgIChlLmtleSA9PT0gJ2EnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrQVxyXG4gICAgICAgIChlLmtleSA9PT0gJ2MnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrQ1xyXG4gICAgICAgIChlLmtleSA9PT0gJ3YnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrVlxyXG4gICAgICAgIChlLmtleSA9PT0gJ3gnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrWFxyXG4gICAgICAgIChlLmtleSA9PT0gJ2EnICYmIGUubWV0YUtleSkgfHwgLy8gQWxsb3c6IENtZCtBIChNYWMpXHJcbiAgICAgICAgKGUua2V5ID09PSAnYycgJiYgZS5tZXRhS2V5KSB8fCAvLyBBbGxvdzogQ21kK0MgKE1hYylcclxuICAgICAgICAoZS5rZXkgPT09ICd2JyAmJiBlLm1ldGFLZXkpIHx8IC8vIEFsbG93OiBDbWQrViAoTWFjKVxyXG4gICAgICAgIChlLmtleSA9PT0gJ3gnICYmIGUubWV0YUtleSkgfHwgLy8gQWxsb3c6IENtZCtYIChNYWMpXHJcbiAgICAgICAgKHRoaXMuZGVjaW1hbCAmJiBlLmtleSA9PT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yICYmIHRoaXMuZGVjaW1hbENvdW50ZXIgPCAxKSB8fCAvLyBBbGxvdzogb25seSBvbmUgZGVjaW1hbCBwb2ludFxyXG4gICAgICAgICh0aGlzLmRlY2ltYWwgJiYgZS5rZXkgPT09IHRoaXMubWludXMgJiYgdGhpcy5taW51c0NvdW50ZXIgPCAxKSAvLyBBbGxvdzogb25seSBvbmUgbWludXNcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBFbnN1cmUgdGhhdCBpdCBpcyBhIG51bWJlciBhbmQgc3RvcCB0aGUga2V5cHJlc3NcclxuICAgICAgaWYgKGUua2V5ID09PSAnICcgfHwgIXRoaXMucmVnZXgudGVzdChlLmtleSkpIHtcclxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcclxuICBvbktleVVwKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlnaXRzT25seSkge1xyXG4gICAgICBpZiAoIXRoaXMuZGVjaW1hbCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5kZWNpbWFsQ291bnRlciA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZS5zcGxpdCh0aGlzLmRlY2ltYWxTZXBhcmF0b3IpLmxlbmd0aCAtIDE7XHJcbiAgICAgIHRoaXMubWludXNDb3VudGVyID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlLnNwbGl0KHRoaXMubWludXMpLmxlbmd0aCAtIDE7XHJcblxyXG4gICAgICBpZiAoaXNOYU4oK3RoaXMuaW5wdXRFbGVtZW50LnZhbHVlKSkge1xyXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlID0gdGhpcy5zYW5pdGl6ZUlucHV0KHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigncGFzdGUnLCBbJyRldmVudCddKVxyXG4gIG9uUGFzdGUoZXZlbnQ6IENsaXBib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaWdpdHNPbmx5KSB7XHJcbiAgICAgIGNvbnN0IHBhc3RlZElucHV0ID0gZXZlbnQuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dC9wbGFpbicpIGFzIHN0cmluZztcclxuICAgICAgdGhpcy5wYXN0ZURhdGEocGFzdGVkSW5wdXQpO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlZ2V4ID0gbmV3IFJlZ0V4cCh0aGlzLmFsbG93SHlwaGVuID8gJ15bXFxcXGQgLV0rJCcgOiAnXFxcXGQnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFzdGVEYXRhKHBhc3RlZENvbnRlbnQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2FuaXRpemVkQ29udGVudCA9IGlzTmFOKCtwYXN0ZWRDb250ZW50KSA/IHRoaXMuc2FuaXRpemVJbnB1dChwYXN0ZWRDb250ZW50KSA6IHBhc3RlZENvbnRlbnQ7XHJcbiAgICBjb25zdCBwYXN0ZWQgPSBkb2N1bWVudC5leGVjQ29tbWFuZCgnaW5zZXJ0VGV4dCcsIGZhbHNlLCBzYW5pdGl6ZWRDb250ZW50KTtcclxuICAgIGlmICghcGFzdGVkKSB7XHJcbiAgICAgIGNvbnN0IHsgc2VsZWN0aW9uU3RhcnQ6IHN0YXJ0LCBzZWxlY3Rpb25FbmQ6IGVuZCB9ID0gdGhpcy5pbnB1dEVsZW1lbnQ7XHJcbiAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnNldFJhbmdlVGV4dChzYW5pdGl6ZWRDb250ZW50LCBzdGFydCBhcyBudW1iZXIsIGVuZCBhcyBudW1iZXIsICdlbmQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2FuaXRpemVJbnB1dChpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCByZXN1bHQgPSAnJztcclxuICAgIGlmICh0aGlzLmRlY2ltYWwgJiYgdGhpcy5pc1ZhbGlkRGVjaW1hbChpbnB1dCkpIHtcclxuICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBeW1xcZCAtJHt0aGlzLmRlY2ltYWxTZXBhcmF0b3J9XSskYCwgJ2cnKTtcclxuICAgICAgcmVzdWx0ID0gaW5wdXQucmVwbGFjZShyZWdleCwgJycpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzdWx0ID0gaW5wdXQucmVwbGFjZShgLyR7dGhpcy5yZWdleH0vZ2AsICcnKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtYXhMZW5ndGggPSB0aGlzLmlucHV0RWxlbWVudC5tYXhMZW5ndGg7XHJcblxyXG4gICAgaWYgKG1heExlbmd0aCA+IDApIHtcclxuICAgICAgLy8gdGhlIGlucHV0IGVsZW1lbnQgaGFzIG1heExlbmd0aCBsaW1pdFxyXG4gICAgICBjb25zdCBhbGxvd2VkTGVuZ3RoID0gbWF4TGVuZ3RoIC0gdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUubGVuZ3RoO1xyXG4gICAgICByZXN1bHQgPSBhbGxvd2VkTGVuZ3RoID4gMCA/IHJlc3VsdC5zdWJzdHJpbmcoMCwgYWxsb3dlZExlbmd0aCkgOiAnJztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1ZhbGlkRGVjaW1hbChpbnB1dFN0cmluZzogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gaW5wdXRTdHJpbmcuc3BsaXQodGhpcy5kZWNpbWFsU2VwYXJhdG9yIGFzIHN0cmluZykubGVuZ3RoIDw9IDI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXRzLW9ubHkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvZGlyZWN0aXZlcy9kaWdpdHMtb25seS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQUtuRixNQUFNLE9BQU8sbUJBQW1CO0lBZ0NYO0lBOUJuQixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBR25CLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFFWCxPQUFPLEdBQUksS0FBSyxDQUFDO0lBQ2pCLGdCQUFnQixHQUFJLEdBQUcsQ0FBQztJQUN4QixJQUFJLEdBQUksQ0FBQyxDQUFDO0lBRW5CLFlBQVksQ0FBbUI7SUFDL0IsS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUNaLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDakIsS0FBSyxDQUFVO0lBRVAsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUNWLGNBQWMsR0FBRztRQUNoQyxXQUFXO1FBQ1gsUUFBUTtRQUNSLEtBQUs7UUFDTCxRQUFRO1FBQ1IsT0FBTztRQUNQLE1BQU07UUFDTixLQUFLO1FBQ0wsV0FBVztRQUNYLFlBQVk7UUFDWixPQUFPO1FBQ1AsTUFBTTtRQUNOLE9BQU87S0FDUixDQUFDO0lBRUYsWUFBbUIsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQ3ZDLENBQUM7SUFHRCxTQUFTLENBQUMsQ0FBZ0I7UUFDeEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQ0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJ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LFNBQVMsR0FBRyxDQUFDLEVBQUU7WUFDakIsd0NBQXdDO1lBQ3hDLE1BQU0sYUFBYSxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDakUsTUFBTSxHQUFHLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDdEU7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sY0FBYyxDQUFDLFdBQW1CO1FBQ3hDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQTBCLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQ3hFLENBQUM7d0dBMUhVLG1CQUFtQjs0RkFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUgvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7aUJBQzVCO2lHQUdDLFVBQVU7c0JBRFQsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBNEJOLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBMkJuQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWlCakMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thcHBEaWdpdHNPbmx5XScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaWdpdHNPbmx5RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKVxyXG4gIGRpZ2l0c09ubHkgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBhbGxvd0h5cGhlbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBkZWNpbWFsPyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRlY2ltYWxTZXBhcmF0b3I/ID0gJy4nO1xyXG4gIEBJbnB1dCgpIHVuaXQ/ID0gMDtcclxuXHJcbiAgaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50O1xyXG4gIG1pbnVzID0gJy0nO1xyXG4gIG1pbnVzQ291bnRlciA9IDA7XHJcbiAgcmVnZXghOiBSZWdFeHA7XHJcblxyXG4gIHByaXZhdGUgZGVjaW1hbENvdW50ZXIgPSAwO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbmF2aWdhdGlvbktleXMgPSBbXHJcbiAgICAnQmFja3NwYWNlJyxcclxuICAgICdEZWxldGUnLFxyXG4gICAgJ1RhYicsXHJcbiAgICAnRXNjYXBlJyxcclxuICAgICdFbnRlcicsXHJcbiAgICAnSG9tZScsXHJcbiAgICAnRW5kJyxcclxuICAgICdBcnJvd0xlZnQnLFxyXG4gICAgJ0Fycm93UmlnaHQnLFxyXG4gICAgJ0NsZWFyJyxcclxuICAgICdDb3B5JyxcclxuICAgICdQYXN0ZScsXHJcbiAgXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLmlucHV0RWxlbWVudCA9IGVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBvbktleURvd24oZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlnaXRzT25seSkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uS2V5cy5pbmRleE9mKGUua2V5KSA+IC0xIHx8IC8vIEFsbG93OiBuYXZpZ2F0aW9uIGtleXM6IGJhY2tzcGFjZSwgZGVsZXRlLCBhcnJvd3MgZXRjLlxyXG4gICAgICAgIChlLmtleSA9PT0gJ2EnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrQVxyXG4gICAgICAgIChlLmtleSA9PT0gJ2MnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrQ1xyXG4gICAgICAgIChlLmtleSA9PT0gJ3YnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrVlxyXG4gICAgICAgIChlLmtleSA9PT0gJ3gnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrWFxyXG4gICAgICAgIChlLmtleSA9PT0gJ2EnICYmIGUubWV0YUtleSkgfHwgLy8gQWxsb3c6IENtZCtBIChNYWMpXHJcbiAgICAgICAgKGUua2V5ID09PSAnYycgJiYgZS5tZXRhS2V5KSB8fCAvLyBBbGxvdzogQ21kK0MgKE1hYylcclxuICAgICAgICAoZS5rZXkgPT09ICd2JyAmJiBlLm1ldGFLZXkpIHx8IC8vIEFsbG93OiBDbWQrViAoTWFjKVxyXG4gICAgICAgIChlLmtleSA9PT0gJ3gnICYmIGUubWV0YUtleSkgfHwgLy8gQWxsb3c6IENtZCtYIChNYWMpXHJcbiAgICAgICAgKHRoaXMuZGVjaW1hbCAmJiBlLmtleSA9PT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yICYmIHRoaXMuZGVjaW1hbENvdW50ZXIgPD0gMSkgfHwgLy8gQWxsb3c6IG9ubHkgb25lIGRlY2ltYWwgcG9pbnRcclxuICAgICAgICAodGhpcy5kZWNpbWFsICYmIGUua2V5ID09PSB0aGlzLm1pbnVzICYmIHRoaXMubWludXNDb3VudGVyIDwgMSkgLy8gQWxsb3c6IG9ubHkgb25lIG1pbnVzXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gRW5zdXJlIHRoYXQgaXQgaXMgYSBudW1iZXIgYW5kIHN0b3AgdGhlIGtleXByZXNzXHJcbiAgICAgIGlmIChlLmtleSA9PT0gJyAnIHx8ICF0aGlzLnJlZ2V4LnRlc3QoZS5rZXkpKSB7XHJcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXHJcbiAgb25LZXlVcCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpZ2l0c09ubHkpIHtcclxuICAgICAgaWYgKCF0aGlzLmRlY2ltYWwpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZGVjaW1hbENvdW50ZXIgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUuc3BsaXQodGhpcy5kZWNpbWFsU2VwYXJhdG9yKS5sZW5ndGggLSAxO1xyXG4gICAgICB0aGlzLm1pbnVzQ291bnRlciA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZS5zcGxpdCh0aGlzLm1pbnVzKS5sZW5ndGggLSAxO1xyXG5cclxuICAgICAgaWYgKGlzTmFOKCt0aGlzLmlucHV0RWxlbWVudC52YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC52YWx1ZSA9IHRoaXMuc2FuaXRpemVJbnB1dCh0aGlzLmlucHV0RWxlbWVudC52YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3Bhc3RlJywgWyckZXZlbnQnXSlcclxuICBvblBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlnaXRzT25seSkge1xyXG4gICAgICBjb25zdCBwYXN0ZWRJbnB1dCA9IGV2ZW50LmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQvcGxhaW4nKSBhcyBzdHJpbmc7XHJcbiAgICAgIHRoaXMucGFzdGVEYXRhKHBhc3RlZElucHV0KTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZWdleCA9IG5ldyBSZWdFeHAodGhpcy5hbGxvd0h5cGhlbiA/ICdeW1xcXFxkIC1dKyQnIDogJ1xcXFxkJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhc3RlRGF0YShwYXN0ZWRDb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHNhbml0aXplZENvbnRlbnQgPSBpc05hTigrcGFzdGVkQ29udGVudCkgPyB0aGlzLnNhbml0aXplSW5wdXQocGFzdGVkQ29udGVudCkgOiBwYXN0ZWRDb250ZW50O1xyXG4gICAgY29uc3QgcGFzdGVkID0gZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2luc2VydFRleHQnLCBmYWxzZSwgc2FuaXRpemVkQ29udGVudCk7XHJcbiAgICBpZiAoIXBhc3RlZCkge1xyXG4gICAgICBjb25zdCB7IHNlbGVjdGlvblN0YXJ0OiBzdGFydCwgc2VsZWN0aW9uRW5kOiBlbmQgfSA9IHRoaXMuaW5wdXRFbGVtZW50O1xyXG4gICAgICB0aGlzLmlucHV0RWxlbWVudC5zZXRSYW5nZVRleHQoc2FuaXRpemVkQ29udGVudCwgc3RhcnQgYXMgbnVtYmVyLCBlbmQgYXMgbnVtYmVyLCAnZW5kJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNhbml0aXplSW5wdXQoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgcmVzdWx0ID0gJyc7XHJcbiAgICBpZiAodGhpcy5kZWNpbWFsICYmIHRoaXMuaXNWYWxpZERlY2ltYWwoaW5wdXQpKSB7XHJcbiAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChgXltcXGQgLSR7dGhpcy5kZWNpbWFsU2VwYXJhdG9yfV0rJGAsICdnJyk7XHJcbiAgICAgIHJlc3VsdCA9IGlucHV0LnJlcGxhY2UocmVnZXgsICcnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlc3VsdCA9IGlucHV0LnJlcGxhY2UoYC8ke3RoaXMucmVnZXh9L2dgLCAnJyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbWF4TGVuZ3RoID0gdGhpcy5pbnB1dEVsZW1lbnQubWF4TGVuZ3RoO1xyXG5cclxuICAgIGlmIChtYXhMZW5ndGggPiAwKSB7XHJcbiAgICAgIC8vIHRoZSBpbnB1dCBlbGVtZW50IGhhcyBtYXhMZW5ndGggbGltaXRcclxuICAgICAgY29uc3QgYWxsb3dlZExlbmd0aCA9IG1heExlbmd0aCAtIHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlLmxlbmd0aDtcclxuICAgICAgcmVzdWx0ID0gYWxsb3dlZExlbmd0aCA+IDAgPyByZXN1bHQuc3Vic3RyaW5nKDAsIGFsbG93ZWRMZW5ndGgpIDogJyc7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNWYWxpZERlY2ltYWwoaW5wdXRTdHJpbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGlucHV0U3RyaW5nLnNwbGl0KHRoaXMuZGVjaW1hbFNlcGFyYXRvciBhcyBzdHJpbmcpLmxlbmd0aCA8PSAyO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,26 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ElementMultiplierDirective {
4
+ templateRef;
5
+ viewContainer;
6
+ constructor(templateRef, viewContainer) {
7
+ this.templateRef = templateRef;
8
+ this.viewContainer = viewContainer;
9
+ }
10
+ set appElementMultiplier(times) {
11
+ for (let i = 0; i < times; i++) {
12
+ this.viewContainer.createEmbeddedView(this.templateRef);
13
+ }
14
+ }
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElementMultiplierDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
16
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ElementMultiplierDirective, selector: "[appElementMultiplier]", inputs: { appElementMultiplier: "appElementMultiplier" }, ngImport: i0 });
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElementMultiplierDirective, decorators: [{
19
+ type: Directive,
20
+ args: [{
21
+ selector: '[appElementMultiplier]',
22
+ }]
23
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { appElementMultiplier: [{
24
+ type: Input
25
+ }] } });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1tdWx0aXBsaWVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9iYXNlL2RpcmVjdGl2ZXMvZWxlbWVudC1tdWx0aXBsaWVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBaUMsTUFBTSxlQUFlLENBQUM7O0FBS2hGLE1BQU0sT0FBTywwQkFBMEI7SUFDaEI7SUFBdUM7SUFBNUQsWUFBcUIsV0FBNkIsRUFBVSxhQUErQjtRQUF0RSxnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7SUFBSyxDQUFDO0lBRWpHLElBQWEsb0JBQW9CLENBQUUsS0FBYTtRQUM5QyxLQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFHO1lBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBRSxDQUFDO1NBQzNEO0lBQ0gsQ0FBQzt3R0FQVSwwQkFBMEI7NEZBQTFCLDBCQUEwQjs7NEZBQTFCLDBCQUEwQjtrQkFIdEMsU0FBUzttQkFBRTtvQkFDVixRQUFRLEVBQUUsd0JBQXdCO2lCQUNuQztpSUFJYyxvQkFBb0I7c0JBQWhDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSgge1xyXG4gIHNlbGVjdG9yOiAnW2FwcEVsZW1lbnRNdWx0aXBsaWVyXScsXHJcbn0gKVxyXG5leHBvcnQgY2xhc3MgRWxlbWVudE11bHRpcGxpZXJEaXJlY3RpdmUge1xyXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LCBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYgKSB7IH1cclxuXHJcbiAgQElucHV0KCkgc2V0IGFwcEVsZW1lbnRNdWx0aXBsaWVyKCB0aW1lczogbnVtYmVyICkge1xyXG4gICAgZm9yICggbGV0IGkgPSAwOyBpIDwgdGltZXM7IGkrKyApIHtcclxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyggdGhpcy50ZW1wbGF0ZVJlZiApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,22 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { ElementMultiplierDirective } from './element-multiplier.directive';
4
+ import * as i0 from "@angular/core";
5
+ export class ElementMultiplierDirectiveModule {
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElementMultiplierDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ElementMultiplierDirectiveModule, declarations: [ElementMultiplierDirective], imports: [CommonModule], exports: [ElementMultiplierDirective] });
8
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElementMultiplierDirectiveModule, imports: [CommonModule] });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElementMultiplierDirectiveModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ imports: [CommonModule],
14
+ declarations: [
15
+ ElementMultiplierDirective,
16
+ ],
17
+ exports: [
18
+ ElementMultiplierDirective,
19
+ ],
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1tdWx0aXBsaWVyLmRpcmVjdGl2ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvYmFzZS9kaXJlY3RpdmVzL2VsZW1lbnQtbXVsdGlwbGllci5kaXJlY3RpdmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQVc1RSxNQUFNLE9BQU8sZ0NBQWdDO3dHQUFoQyxnQ0FBZ0M7eUdBQWhDLGdDQUFnQyxpQkFOekMsMEJBQTBCLGFBRmpCLFlBQVksYUFLckIsMEJBQTBCO3lHQUdqQixnQ0FBZ0MsWUFSaEMsWUFBWTs7NEZBUVosZ0NBQWdDO2tCQVQ1QyxRQUFRO21CQUFFO29CQUNULE9BQU8sRUFBRSxDQUFFLFlBQVksQ0FBRTtvQkFDekIsWUFBWSxFQUFFO3dCQUNaLDBCQUEwQjtxQkFDM0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDBCQUEwQjtxQkFDM0I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFbGVtZW50TXVsdGlwbGllckRpcmVjdGl2ZSB9IGZyb20gJy4vZWxlbWVudC1tdWx0aXBsaWVyLmRpcmVjdGl2ZSc7XHJcblxyXG5ATmdNb2R1bGUoIHtcclxuICBpbXBvcnRzOiBbIENvbW1vbk1vZHVsZSBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgRWxlbWVudE11bHRpcGxpZXJEaXJlY3RpdmUsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBFbGVtZW50TXVsdGlwbGllckRpcmVjdGl2ZSxcclxuICBdLFxyXG59IClcclxuZXhwb3J0IGNsYXNzIEVsZW1lbnRNdWx0aXBsaWVyRGlyZWN0aXZlTW9kdWxlIHsgfVxyXG4iXX0=
@@ -0,0 +1,263 @@
1
+ import { Directive, Host, Input, Optional, Self, } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { takeUntil } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/material/paginator";
6
+ export class EcabsStylePaginatorDirective {
7
+ matPaginator;
8
+ viewContainerRef;
9
+ renderer;
10
+ pageGapTxt = '...';
11
+ rangeStart;
12
+ rangeEnd;
13
+ buttons = [];
14
+ currentPageObj = {
15
+ length: 0,
16
+ pageIndex: 0,
17
+ pageSize: 0,
18
+ previousPageIndex: 0,
19
+ };
20
+ totalPages = 2;
21
+ unsubscribe$ = new Subject();
22
+ isNarrowPaginator = false;
23
+ paginatedData;
24
+ set showTotalPages(value) {
25
+ this.totalPages = value % 2 === 0 ? value + 1 : value;
26
+ }
27
+ get increment() {
28
+ return this.totalPages % 2 === 0 ? this.totalPages / 2 : (this.totalPages - 1) / 2;
29
+ }
30
+ get numOfPages() {
31
+ return this.matPaginator.getNumberOfPages();
32
+ }
33
+ get lastPageIndex() {
34
+ return this.matPaginator.getNumberOfPages() - 1;
35
+ }
36
+ constructor(matPaginator, viewContainerRef, renderer) {
37
+ this.matPaginator = matPaginator;
38
+ this.viewContainerRef = viewContainerRef;
39
+ this.renderer = renderer;
40
+ // to rerender buttons on items per page change and first, last, next and prior buttons
41
+ this.matPaginator.page.pipe(takeUntil(this.unsubscribe$)).subscribe((e) => {
42
+ this.initPaginator(e);
43
+ });
44
+ }
45
+ ngOnChanges() {
46
+ this.initPaginator({
47
+ length: this.matPaginator.length,
48
+ pageIndex: this.matPaginator.pageIndex,
49
+ pageSize: this.matPaginator.pageSize,
50
+ previousPageIndex: 0,
51
+ });
52
+ this.initPageRange();
53
+ }
54
+ // Initialize default state after view init
55
+ ngAfterViewInit() {
56
+ this.initPaginator({
57
+ length: this.matPaginator.length,
58
+ pageIndex: this.matPaginator.pageIndex,
59
+ pageSize: this.matPaginator.pageSize,
60
+ previousPageIndex: 0,
61
+ });
62
+ this.rangeStart = 0;
63
+ this.rangeEnd = this.totalPages - 1;
64
+ this.buildPaginator();
65
+ this.initPageRange();
66
+ }
67
+ ngOnDestroy() {
68
+ this.unsubscribe$.next(null);
69
+ this.unsubscribe$.complete();
70
+ }
71
+ buildPaginator() {
72
+ const pageSizeContainer = this.viewContainerRef.element.nativeElement.querySelector('div.mat-mdc-paginator-page-size');
73
+ const dropdownUnderline = this.viewContainerRef.element.nativeElement.querySelector('div.mat-mdc-paginator-page-size .mat-mdc-form-field-underline');
74
+ if (dropdownUnderline) {
75
+ this.renderer.removeChild(pageSizeContainer, dropdownUnderline);
76
+ }
77
+ }
78
+ buildPageNumbers() {
79
+ const actionContainer = this.viewContainerRef.element.nativeElement.querySelector('div.mat-mdc-paginator-range-actions');
80
+ const nextPageNode = this.viewContainerRef.element.nativeElement.querySelector('button.mat-mdc-paginator-navigation-next');
81
+ const rangeLabelContainer = this.viewContainerRef.element.nativeElement.querySelector('div.mat-mdc-paginator-range-label');
82
+ if (rangeLabelContainer) {
83
+ this.renderer.removeChild(actionContainer, rangeLabelContainer);
84
+ }
85
+ // remove buttons before creating new ones
86
+ if (this.buttons.length > 0) {
87
+ this.buttons.forEach((button) => {
88
+ this.renderer.removeChild(actionContainer, button);
89
+ });
90
+ // Empty state array
91
+ this.buttons.length = 0;
92
+ }
93
+ const buttonsArrayContainer = this.viewContainerRef.element.nativeElement.childNodes[0].childNodes[0].childNodes[2];
94
+ // initialize next page and previous page buttons
95
+ if (this.buttons.length === 0 && buttonsArrayContainer) {
96
+ const buttonsArray = buttonsArrayContainer.childNodes;
97
+ setTimeout(() => {
98
+ // eslint-disable-next-line @typescript-eslint/prefer-for-of
99
+ for (let i = 0; i < buttonsArray.length; i++) {
100
+ if (buttonsArray[i].nodeName === 'BUTTON') {
101
+ if (buttonsArray[i].innerHTML.length > 100) {
102
+ this.renderer.setAttribute(buttonsArray[i], 'tabindex', '-1');
103
+ this.renderer.setStyle(buttonsArray[i], 'border', '1px solid #A6A6A6');
104
+ this.renderer.setStyle(buttonsArray[i], 'box-sizing', 'border-box');
105
+ this.renderer.setStyle(buttonsArray[i], 'border-radius', '4px');
106
+ this.renderer.setStyle(buttonsArray[i], 'margin', '0 1rem');
107
+ const svgArrow = buttonsArray[i].childNodes[0].childNodes[0];
108
+ if (svgArrow) {
109
+ this.renderer.setStyle(svgArrow, 'padding-left', '8px');
110
+ }
111
+ }
112
+ else if (buttonsArray[i].disabled) {
113
+ this.renderer.setStyle(buttonsArray[i], 'font-weight', '700');
114
+ }
115
+ }
116
+ }
117
+ });
118
+ }
119
+ for (let i = 0; i < this.numOfPages; i++) {
120
+ if (i >= this.rangeStart && i <= this.rangeEnd) {
121
+ this.renderer.insertBefore(actionContainer, this.createButton(i, this.matPaginator.pageIndex), nextPageNode);
122
+ }
123
+ if (i === this.rangeEnd && this.numOfPages - 1 !== this.rangeEnd) {
124
+ this.renderer.insertBefore(actionContainer, this.createButton(this.pageGapTxt, this.rangeEnd), nextPageNode);
125
+ }
126
+ }
127
+ }
128
+ createButton(i, pageIndex) {
129
+ const linkBtn = this.renderer.createElement('button');
130
+ this.renderer.addClass(linkBtn, 'mat-button');
131
+ this.renderer.setStyle(linkBtn, 'background-color', 'white');
132
+ this.renderer.setStyle(linkBtn, 'padding', '0 8px');
133
+ this.renderer.setAttribute(linkBtn, 'tabindex', '-1');
134
+ if (this.isNarrowPaginator) {
135
+ this.renderer.setStyle(linkBtn, 'min-width', '32px');
136
+ this.renderer.setStyle(linkBtn, 'max-width', '32px');
137
+ }
138
+ else {
139
+ this.renderer.setStyle(linkBtn, 'min-width', '48px');
140
+ }
141
+ const pagingTxt = isNaN(i) ? this.pageGapTxt : +(i + 1);
142
+ const text = this.renderer.createText(pagingTxt + '');
143
+ this.renderer.addClass(linkBtn, 'mat-custom-page');
144
+ switch (i) {
145
+ case pageIndex:
146
+ this.renderer.setAttribute(linkBtn, 'disabled', 'disabled');
147
+ break;
148
+ case this.pageGapTxt:
149
+ let newIndex = this.currentPageObj.pageIndex + this.totalPages;
150
+ if (newIndex >= this.numOfPages) {
151
+ newIndex = this.lastPageIndex;
152
+ }
153
+ if (pageIndex !== this.lastPageIndex) {
154
+ this.renderer.listen(linkBtn, 'click', () => {
155
+ this.switchPage(newIndex);
156
+ });
157
+ }
158
+ if (pageIndex === this.lastPageIndex) {
159
+ this.renderer.setAttribute(linkBtn, 'disabled', 'disabled');
160
+ }
161
+ break;
162
+ default:
163
+ this.renderer.listen(linkBtn, 'click', () => {
164
+ this.switchPage(i);
165
+ });
166
+ break;
167
+ }
168
+ this.renderer.appendChild(linkBtn, text);
169
+ // Add button to private array for state
170
+ this.buttons.push(linkBtn);
171
+ return linkBtn;
172
+ }
173
+ // calculates the button range based on class input parameters and based on
174
+ // current page index value. Used to render new buttons after event.
175
+ initPageRange() {
176
+ const middleIndex = (this.rangeStart + this.rangeEnd) / 2;
177
+ this.rangeStart = this.calcRangeStart(middleIndex);
178
+ this.rangeEnd = this.calcRangeEnd(middleIndex);
179
+ this.buildPageNumbers();
180
+ }
181
+ // Helper function To calculate start of button range
182
+ calcRangeStart(middleIndex) {
183
+ switch (true) {
184
+ case this.currentPageObj.pageIndex === 0 && this.rangeStart !== 0:
185
+ return 0;
186
+ case this.currentPageObj.pageIndex > this.rangeEnd:
187
+ return this.currentPageObj.pageIndex + this.increment > this.lastPageIndex
188
+ ? this.lastPageIndex - this.increment * 2
189
+ : this.currentPageObj.pageIndex - this.increment;
190
+ case this.currentPageObj.pageIndex > this.currentPageObj.previousPageIndex &&
191
+ this.currentPageObj.pageIndex > middleIndex &&
192
+ this.rangeEnd < this.lastPageIndex:
193
+ return this.rangeStart + 1;
194
+ case this.currentPageObj.pageIndex < this.currentPageObj.previousPageIndex &&
195
+ this.currentPageObj.pageIndex < middleIndex &&
196
+ this.rangeStart > 0:
197
+ return this.rangeStart - 1;
198
+ default:
199
+ return this.rangeStart;
200
+ }
201
+ }
202
+ // Helpter function to calculate end of button range
203
+ calcRangeEnd(middleIndex) {
204
+ switch (true) {
205
+ case this.currentPageObj.pageIndex === 0 && this.rangeEnd !== this.totalPages:
206
+ return this.totalPages - 1;
207
+ case this.currentPageObj.pageIndex > this.rangeEnd:
208
+ return this.currentPageObj.pageIndex + this.increment > this.lastPageIndex
209
+ ? this.lastPageIndex
210
+ : this.currentPageObj.pageIndex + 1;
211
+ case this.currentPageObj.pageIndex > this.currentPageObj.previousPageIndex &&
212
+ this.currentPageObj.pageIndex > middleIndex &&
213
+ this.rangeEnd < this.lastPageIndex:
214
+ return this.rangeEnd + 1;
215
+ case this.currentPageObj.pageIndex < this.currentPageObj.previousPageIndex &&
216
+ this.currentPageObj.pageIndex < middleIndex &&
217
+ this.rangeStart >= 0 &&
218
+ this.rangeEnd > this.totalPages - 1:
219
+ return this.rangeEnd - 1;
220
+ default:
221
+ return this.rangeEnd;
222
+ }
223
+ }
224
+ // Helper function to switch page on non first, last, next and previous buttons only.
225
+ switchPage(i) {
226
+ const previousPageIndex = this.matPaginator.pageIndex;
227
+ this.matPaginator.pageIndex = i;
228
+ // tslint:disable-next-line: no-string-literal
229
+ this.matPaginator['_emitPageEvent'](previousPageIndex);
230
+ this.initPageRange();
231
+ }
232
+ initPaginator(pageObject) {
233
+ if (this.currentPageObj.pageSize !== pageObject.pageSize && this.currentPageObj.pageIndex !== 0) {
234
+ pageObject.pageIndex = 0;
235
+ this.rangeStart = 0;
236
+ this.rangeEnd = this.totalPages - 1;
237
+ }
238
+ this.currentPageObj = pageObject;
239
+ this.buildPaginator();
240
+ this.initPageRange();
241
+ }
242
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsStylePaginatorDirective, deps: [{ token: i1.MatPaginator, host: true, optional: true, self: true }, { token: i0.ViewContainerRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
243
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: EcabsStylePaginatorDirective, selector: "[ecabsStylePaginator]", inputs: { isNarrowPaginator: "isNarrowPaginator", paginatedData: "paginatedData", showTotalPages: "showTotalPages" }, usesOnChanges: true, ngImport: i0 });
244
+ }
245
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsStylePaginatorDirective, decorators: [{
246
+ type: Directive,
247
+ args: [{
248
+ selector: '[ecabsStylePaginator]',
249
+ }]
250
+ }], ctorParameters: function () { return [{ type: i1.MatPaginator, decorators: [{
251
+ type: Host
252
+ }, {
253
+ type: Self
254
+ }, {
255
+ type: Optional
256
+ }] }, { type: i0.ViewContainerRef }, { type: i0.Renderer2 }]; }, propDecorators: { isNarrowPaginator: [{
257
+ type: Input
258
+ }], paginatedData: [{
259
+ type: Input
260
+ }], showTotalPages: [{
261
+ type: Input
262
+ }] } });
263
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUtcGFnaW5hdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9iYXNlL2RpcmVjdGl2ZXMvc3R5bGUtcGFnaW5hdG9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULElBQUksRUFDSixLQUFLLEVBR0wsUUFBUSxFQUVSLElBQUksR0FFTCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBYTNDLE1BQU0sT0FBTyw0QkFBNEI7SUFvQ1E7SUFDckM7SUFDQTtJQXJDRixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ25CLFVBQVUsQ0FBUztJQUNuQixRQUFRLENBQVM7SUFDakIsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNiLGNBQWMsR0FBZTtRQUNuQyxNQUFNLEVBQUUsQ0FBQztRQUNULFNBQVMsRUFBRSxDQUFDO1FBQ1osUUFBUSxFQUFFLENBQUM7UUFDWCxpQkFBaUIsRUFBRSxDQUFDO0tBQ3JCLENBQUM7SUFDTSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBRU4sWUFBWSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7SUFFMUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQzFCLGFBQWEsQ0FBMEI7SUFFaEQsSUFDSSxjQUFjLENBQUUsS0FBYTtRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEtB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LENBQUMsWUFBWSxDQUFFLGdCQUFnQixDQUFFLENBQUUsaUJBQWlCLENBQUUsQ0FBQztRQUMzRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLGFBQWEsQ0FBRSxVQUFzQjtRQUMzQyxJQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxLQUFLLFVBQVUsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEtBQUssQ0FBQyxFQUFHO1lBQ2pHLFVBQVUsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7U0FDckM7UUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQztRQUVqQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7d0dBbFNVLDRCQUE0Qjs0RkFBNUIsNEJBQTRCOzs0RkFBNUIsNEJBQTRCO2tCQUh4QyxTQUFTO21CQUFFO29CQUNWLFFBQVEsRUFBRSx1QkFBdUI7aUJBQ2xDOzswQkFxQ0ksSUFBSTs7MEJBQUksSUFBSTs7MEJBQUksUUFBUTttR0FyQmxCLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdGLGNBQWM7c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIEhvc3QsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPcHRpb25hbCxcclxuICBSZW5kZXJlcjIsXHJcbiAgU2VsZixcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgUGFnaW5hdGlvblJlc3BvbnNlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcGFnaW5hdGlvbi5tb2RlbHMnO1xyXG5cclxuaW50ZXJmYWNlIFBhZ2VPYmplY3Qge1xyXG4gIGxlbmd0aDogbnVtYmVyO1xyXG4gIHBhZ2VJbmRleDogbnVtYmVyO1xyXG4gIHBhZ2VTaXplOiBudW1iZXI7XHJcbiAgcHJldmlvdXNQYWdlSW5kZXg6IG51bWJlcjtcclxufVxyXG5cclxuQERpcmVjdGl2ZSgge1xyXG4gIHNlbGVjdG9yOiAnW2VjYWJzU3R5bGVQYWdpbmF0b3JdJyxcclxufSApXHJcbmV4cG9ydCBjbGFzcyBFY2Fic1N0eWxlUGFnaW5hdG9yRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgcGFnZUdhcFR4dCA9ICcuLi4nO1xyXG4gIHByaXZhdGUgcmFuZ2VTdGFydDogbnVtYmVyO1xyXG4gIHByaXZhdGUgcmFuZ2VFbmQ6IG51bWJlcjtcclxuICBwcml2YXRlIGJ1dHRvbnMgPSBbXTtcclxuICBwcml2YXRlIGN1cnJlbnRQYWdlT2JqOiBQYWdlT2JqZWN0ID0ge1xyXG4gICAgbGVuZ3RoOiAwLFxyXG4gICAgcGFnZUluZGV4OiAwLFxyXG4gICAgcGFnZVNpemU6IDAsXHJcbiAgICBwcmV2aW91c1BhZ2VJbmRleDogMCxcclxuICB9O1xyXG4gIHByaXZhdGUgdG90YWxQYWdlcyA9IDI7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG5cclxuICBASW5wdXQoKSBpc05hcnJvd1BhZ2luYXRvciA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHBhZ2luYXRlZERhdGE6IFBhZ2luYXRpb25SZXNwb25zZU1vZGVsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBzaG93VG90YWxQYWdlcyggdmFsdWU6IG51bWJlciApIHtcclxuICAgIHRoaXMudG90YWxQYWdlcyA9IHZhbHVlICUgMiA9PT0gMCA/IHZhbHVlICsgMSA6IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGluY3JlbWVudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudG90YWxQYWdlcyAlIDIgPT09IDAgPyB0aGlzLnRvdGFsUGFnZXMgLyAyIDogKCB0aGlzLnRvdGFsUGFnZXMgLSAxICkgLyAyO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG51bU9mUGFnZXMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLm1hdFBhZ2luYXRvci5nZXROdW1iZXJPZlBhZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgbGFzdFBhZ2VJbmRleCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMubWF0UGFnaW5hdG9yLmdldE51bWJlck9mUGFnZXMoKSAtIDE7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBIb3N0KCkgQFNlbGYoKSBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IG1hdFBhZ2luYXRvcjogTWF0UGFnaW5hdG9yLFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXHJcbiAgKSB7XHJcbiAgICAvLyB0byByZXJlbmRlciBidXR0b25zIG9uIGl0ZW1zIHBlciBwYWdlIGNoYW5nZSBhbmQgZmlyc3QsIGxhc3QsIG5leHQgYW5kIHByaW9yIGJ1dHRvbnNcclxuICAgIHRoaXMubWF0UGFnaW5hdG9yLnBhZ2UucGlwZSggdGFrZVVudGlsKCB0aGlzLnVuc3Vic2NyaWJlJCApICkuc3Vic2NyaWJlKCAoIGU6IFBhZ2VPYmplY3QgKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5pdFBhZ2luYXRvciggZSApO1xyXG4gICAgfSApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRQYWdpbmF0b3IoIHtcclxuICAgICAgbGVuZ3RoOiB0aGlzLm1hdFBhZ2luYXRvci5sZW5ndGgsXHJcbiAgICAgIHBhZ2VJbmRleDogdGhpcy5tYXRQYWdpbmF0b3IucGFnZUluZGV4LFxyXG4gICAgICBwYWdlU2l6ZTogdGhpcy5tYXRQYWdpbmF0b3IucGFnZVNpemUsXHJcbiAgICAgIHByZXZpb3VzUGFnZUluZGV4OiAwLFxyXG4gICAgfSApO1xyXG4gICAgdGhpcy5pbml0UGFnZVJhbmdlKCk7XHJcbiAgfVxyXG5cclxuICAvLyBJbml0aWFsaXplIGRlZmF1bHQgc3RhdGUgYWZ0ZXIgdmlldyBpbml0XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0UGFnaW5hdG9yKCB7XHJcbiAgICAgIGxlbmd0aDogdGhpcy5tYXRQYWdpbmF0b3IubGVuZ3RoLFxyXG4gICAgICBwYWdlSW5kZXg6IHRoaXMubWF0UGFnaW5hdG9yLnBhZ2VJbmRleCxcclxuICAgICAgcGFnZVNpemU6IHRoaXMubWF0UGFnaW5hdG9yLnBhZ2VTaXplLFxyXG4gICAgICBwcmV2aW91c1BhZ2VJbmRleDogMCxcclxuICAgIH0gKTtcclxuICAgIHRoaXMucmFuZ2VTdGFydCA9IDA7XHJcbiAgICB0aGlzLnJhbmdlRW5kID0gdGhpcy50b3RhbFBhZ2VzIC0gMTtcclxuICAgIHRoaXMuYnVpbGRQYWdpbmF0b3IoKTtcclxuICAgIHRoaXMuaW5pdFBhZ2VSYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCBudWxsICk7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZFBhZ2luYXRvcigpOiB2b2lkIHtcclxuICAgIGNvbnN0IHBhZ2VTaXplQ29udGFpbmVyID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxyXG4gICAgICAnZGl2Lm1hdC1tZGMtcGFnaW5hdG9yLXBhZ2Utc2l6ZSdcclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgZHJvcGRvd25VbmRlcmxpbmUgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcbiAgICAgICdkaXYubWF0LW1kYy1wYWdpbmF0b3ItcGFnZS1zaXplIC5tYXQtbWRjLWZvcm0tZmllbGQtdW5kZXJsaW5lJ1xyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoIGRyb3Bkb3duVW5kZXJsaW5lICkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKCBwYWdlU2l6ZUNvbnRhaW5lciwgZHJvcGRvd25VbmRlcmxpbmUgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRQYWdlTnVtYmVycygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGFjdGlvbkNvbnRhaW5lciA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcclxuICAgICAgJ2Rpdi5tYXQtbWRjLXBhZ2luYXRvci1yYW5nZS1hY3Rpb25zJ1xyXG4gICAgKTtcclxuICAgIGNvbnN0IG5leHRQYWdlTm9kZSA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcclxuICAgICAgJ2J1dHRvbi5tYXQtbWRjLXBhZ2luYXRvci1uYXZpZ2F0aW9uLW5leHQnXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IHJhbmdlTGFiZWxDb250YWluZXIgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcbiAgICAgICdkaXYubWF0LW1kYy1wYWdpbmF0b3ItcmFuZ2UtbGFiZWwnXHJcbiAgICApO1xyXG5cclxuICAgIGlmICggcmFuZ2VMYWJlbENvbnRhaW5lciApIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCggYWN0aW9uQ29udGFpbmVyLCByYW5nZUxhYmVsQ29udGFpbmVyICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gcmVtb3ZlIGJ1dHRvbnMgYmVmb3JlIGNyZWF0aW5nIG5ldyBvbmVzXHJcbiAgICBpZiAoIHRoaXMuYnV0dG9ucy5sZW5ndGggPiAwICkge1xyXG4gICAgICB0aGlzLmJ1dHRvbnMuZm9yRWFjaCggKCBidXR0b24gKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCggYWN0aW9uQ29udGFpbmVyLCBidXR0b24gKTtcclxuICAgICAgfSApO1xyXG4gICAgICAvLyBFbXB0eSBzdGF0ZSBhcnJheVxyXG4gICAgICB0aGlzLmJ1dHRvbnMubGVuZ3RoID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBidXR0b25zQXJyYXlDb250YWluZXIgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNoaWxkTm9kZXNbIDAgXS5jaGlsZE5vZGVzWyAwIF0uY2hpbGROb2Rlc1sgMiBdO1xyXG4gICAgLy8gaW5pdGlhbGl6ZSBuZXh0IHBhZ2UgYW5kIHByZXZpb3VzIHBhZ2UgYnV0dG9uc1xyXG4gICAgaWYgKCB0aGlzLmJ1dHRvbnMubGVuZ3RoID09PSAwICYmIGJ1dHRvbnNBcnJheUNvbnRhaW5lciApIHtcclxuICAgICAgY29uc3QgYnV0dG9uc0FycmF5ID0gYnV0dG9uc0FycmF5Q29udGFpbmVyLmNoaWxkTm9kZXM7XHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCAoKSA9PiB7XHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcmVmZXItZm9yLW9mXHJcbiAgICAgICAgZm9yICggbGV0IGkgPSAwOyBpIDwgYnV0dG9uc0FycmF5Lmxlbmd0aDsgaSsrICkge1xyXG4gICAgICAgICAgaWYgKCBidXR0b25zQXJyYXlbIGkgXS5ub2RlTmFtZSA9PT0gJ0JVVFRPTicgKSB7XHJcbiAgICAgICAgICAgIGlmICggYnV0dG9uc0FycmF5WyBpIF0uaW5uZXJIVE1MLmxlbmd0aCA+IDEwMCApIHtcclxuICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSggYnV0dG9uc0FycmF5WyBpIF0sICd0YWJpbmRleCcsICctMScgKTtcclxuICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKCBidXR0b25zQXJyYXlbIGkgXSwgJ2JvcmRlcicsICcxcHggc29saWQgI0E2QTZBNicgKTtcclxuICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKCBidXR0b25zQXJyYXlbIGkgXSwgJ2JveC1zaXppbmcnLCAnYm9yZGVyLWJveCcgKTtcclxuICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKCBidXR0b25zQXJyYXlbIGkgXSwgJ2JvcmRlci1yYWRpdXMnLCAnNHB4JyApO1xyXG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoIGJ1dHRvbnNBcnJheVsgaSBdLCAnbWFyZ2luJywgJzAgMXJlbScgKTtcclxuXHJcbiAgICAgICAgICAgICAgY29uc3Qgc3ZnQXJyb3cgPSBidXR0b25zQXJyYXlbIGkgXS5jaGlsZE5vZGVzWyAwIF0uY2hpbGROb2Rlc1sgMCBdO1xyXG4gICAgICAgICAgICAgIGlmICggc3ZnQXJyb3cgKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKCBzdmdBcnJvdywgJ3BhZGRpbmctbGVmdCcsICc4cHgnICk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKCBidXR0b25zQXJyYXlbIGkgXS5kaXNhYmxlZCApIHtcclxuICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKCBidXR0b25zQXJyYXlbIGkgXSwgJ2ZvbnQtd2VpZ2h0JywgJzcwMCcgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSApO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAoIGxldCBpID0gMDsgaSA8IHRoaXMubnVtT2ZQYWdlczsgaSsrICkge1xyXG4gICAgICBpZiAoIGkgPj0gdGhpcy5yYW5nZVN0YXJ0ICYmIGkgPD0gdGhpcy5yYW5nZUVuZCApIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZSggYWN0aW9uQ29udGFpbmVyLCB0aGlzLmNyZWF0ZUJ1dHRvbiggaSwgdGhpcy5tYXRQYWdpbmF0b3IucGFnZUluZGV4ICksIG5leHRQYWdlTm9kZSApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoIGkgPT09IHRoaXMucmFuZ2VFbmQgJiYgdGhpcy5udW1PZlBhZ2VzIC0gMSAhPT0gdGhpcy5yYW5nZUVuZCApIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZSggYWN0aW9uQ29udGFpbmVyLCB0aGlzLmNyZWF0ZUJ1dHRvbiggdGhpcy5wYWdlR2FwVHh0LCB0aGlzLnJhbmdlRW5kICksIG5leHRQYWdlTm9kZSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUJ1dHRvbiggaTogYW55LCBwYWdlSW5kZXg6IG51bWJlciApOiBhbnkge1xyXG4gICAgY29uc3QgbGlua0J0bjogTWF0QnV0dG9uID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCAnYnV0dG9uJyApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyggbGlua0J0biwgJ21hdC1idXR0b24nICk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKCBsaW5rQnRuLCAnYmFja2dyb3VuZC1jb2xvcicsICd3aGl0ZScgKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoIGxpbmtCdG4sICdwYWRkaW5nJywgJzAgOHB4JyApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoIGxpbmtCdG4sICd0YWJpbmRleCcsICctMScgKTtcclxuXHJcbiAgICBpZiAoIHRoaXMuaXNOYXJyb3dQYWdpbmF0b3IgKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoIGxpbmtCdG4sICdtaW4td2lkdGgnLCAnMzJweCcgKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSggbGlua0J0biwgJ21heC13aWR0aCcsICczMnB4JyApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSggbGlua0J0biwgJ21pbi13aWR0aCcsICc0OHB4JyApO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBhZ2luZ1R4dCA9IGlzTmFOKCBpICkgPyB0aGlzLnBhZ2VHYXBUeHQgOiArKCBpICsgMSApO1xyXG4gICAgY29uc3QgdGV4dCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dCggcGFnaW5nVHh0ICsgJycgKTtcclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKCBsaW5rQnRuLCAnbWF0LWN1c3RvbS1wYWdlJyApO1xyXG4gICAgc3dpdGNoICggaSApIHtcclxuICAgICAgY2FzZSBwYWdlSW5kZXg6XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoIGxpbmtCdG4sICdkaXNhYmxlZCcsICdkaXNhYmxlZCcgKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgdGhpcy5wYWdlR2FwVHh0OlxyXG4gICAgICAgIGxldCBuZXdJbmRleCA9IHRoaXMuY3VycmVudFBhZ2VPYmoucGFnZUluZGV4ICsgdGhpcy50b3RhbFBhZ2VzO1xyXG5cclxuICAgICAgICBpZiAoIG5ld0luZGV4ID49IHRoaXMubnVtT2ZQYWdlcyApIHtcclxuICAgICAgICAgIG5ld0luZGV4ID0gdGhpcy5sYXN0UGFnZUluZGV4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCBwYWdlSW5kZXggIT09IHRoaXMubGFzdFBhZ2VJbmRleCApIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKCBsaW5rQnRuLCAnY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc3dpdGNoUGFnZSggbmV3SW5kZXggKTtcclxuICAgICAgICAgIH0gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICggcGFnZUluZGV4ID09PSB0aGlzLmxhc3RQYWdlSW5kZXggKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSggbGlua0J0biwgJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJyApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oIGxpbmtCdG4sICdjbGljaycsICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuc3dpdGNoUGFnZSggaSApO1xyXG4gICAgICAgIH0gKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKCBsaW5rQnRuLCB0ZXh0ICk7XHJcbiAgICAvLyBBZGQgYnV0dG9uIHRvIHByaXZhdGUgYXJyYXkgZm9yIHN0YXRlXHJcbiAgICB0aGlzLmJ1dHRvbnMucHVzaCggbGlua0J0biApO1xyXG5cclxuICAgIHJldHVybiBsaW5rQnRuO1xyXG4gIH1cclxuXHJcbiAgLy8gY2FsY3VsYXRlcyB0aGUgYnV0dG9uIHJhbmdlIGJhc2VkIG9uIGNsYXNzIGlucHV0IHBhcmFtZXRlcnMgYW5kIGJhc2VkIG9uXHJcbiAgLy8gY3VycmVudCBwYWdlIGluZGV4IHZhbHVlLiBVc2VkIHRvIHJlbmRlciBuZXcgYnV0dG9ucyBhZnRlciBldmVudC5cclxuICBwcml2YXRlIGluaXRQYWdlUmFuZ2UoKTogdm9pZCB7XHJcbiAgICBjb25zdCBtaWRkbGVJbmRleCA9ICggdGhpcy5yYW5nZVN0YXJ0ICsgdGhpcy5yYW5nZUVuZCApIC8gMjtcclxuXHJcbiAgICB0aGlzLnJhbmdlU3RhcnQgPSB0aGlzLmNhbGNSYW5nZVN0YXJ0KCBtaWRkbGVJbmRleCApO1xyXG4gICAgdGhpcy5yYW5nZUVuZCA9IHRoaXMuY2FsY1JhbmdlRW5kKCBtaWRkbGVJbmRleCApO1xyXG4gICAgdGhpcy5idWlsZFBhZ2VOdW1iZXJzKCk7XHJcbiAgfVxyXG5cclxuICAvLyBIZWxwZXIgZnVuY3Rpb24gVG8gY2FsY3VsYXRlIHN0YXJ0IG9mIGJ1dHRvbiByYW5nZVxyXG4gIHByaXZhdGUgY2FsY1JhbmdlU3RhcnQoIG1pZGRsZUluZGV4OiBudW1iZXIgKTogbnVtYmVyIHtcclxuICAgIHN3aXRjaCAoIHRydWUgKSB7XHJcbiAgICAgIGNhc2UgdGhpcy5jdXJyZW50UGFnZU9iai5wYWdlSW5kZXggPT09IDAgJiYgdGhpcy5yYW5nZVN0YXJ0ICE9PSAwOlxyXG4gICAgICAgIHJldHVybiAwO1xyXG5cclxuICAgICAgY2FzZSB0aGlzLmN1cnJlbnRQYWdlT2JqLnBhZ2VJbmRleCA+IHRoaXMucmFuZ2VFbmQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFBhZ2VPYmoucGFnZUluZGV4ICsgdGhpcy5pbmNyZW1lbnQgPiB0aGlzLmxhc3RQYWdlSW5kZXhcclxuICAgICAgICAgID8gdGhpcy5sYXN0UGFnZUluZGV4IC0gdGhpcy5pbmNyZW1lbnQgKiAyXHJcbiAgICAgICAgICA6IHRoaXMuY3VycmVudFBhZ2VPYmoucGFnZUluZGV4IC0gdGhpcy5pbmNyZW1lbnQ7XHJcblxyXG4gICAgICBjYXNlIHRoaXMuY3VycmVudFBhZ2VPYmoucGFnZUluZGV4ID4gdGhpcy5jdXJyZW50UGFnZU9iai5wcmV2aW91c1BhZ2VJbmRleCAmJlxyXG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2VPYmoucGFnZUluZGV4ID4gbWlkZGxlSW5kZXggJiZcclxuICAgICAgICB0aGlzLnJhbmdlRW5kIDwgdGhpcy5sYXN0UGFnZUluZGV4OlxyXG4gICAgICAgIHJldHVybiB0aGlzLnJhbmdlU3RhcnQgKyAxO1xyXG5cclxuICAgICAgY2FzZSB0aGlzLmN1cnJlbnRQYWdlT2JqLnBhZ2VJbmRleCA8IHRoaXMuY3VycmVudFBhZ2VPYmoucHJldmlvdXNQYWdlSW5kZXggJiZcclxuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlT2JqLnBhZ2VJbmRleCA8IG1pZGRsZUluZGV4ICYmXHJcbiAgICAgICAgdGhpcy5yYW5nZVN0YXJ0ID4gMDpcclxuICAgICAgICByZXR1cm4gdGhpcy5yYW5nZVN0YXJ0IC0gMTtcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmFuZ2VTdGFydDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEhlbHB0ZXIgZnVuY3Rpb24gdG8gY2FsY3VsYXRlIGVuZCBvZiBidXR0b24gcmFuZ2VcclxuICBwcml2YXRlIGNhbGNSYW5nZUVuZCggbWlkZGxlSW5kZXg6IG51bWJlciApOiBudW1iZXIge1xyXG4gICAgc3dpdGNoICggdHJ1ZSApIHtcclxuICAgICAgY2FzZSB0aGlzLmN1cnJlbnRQYWdlT2JqLnBhZ2VJbmRleCA9PT0gMCAmJiB0aGlzLnJhbmdlRW5kICE9PSB0aGlzLnRvdGFsUGFnZXM6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudG90YWxQYWdlcyAtIDE7XHJcblxyXG4gICAgICBjYXNlIHRoaXMuY3VycmVudFBhZ2VPYmoucGFnZUluZGV4ID4gdGhpcy5yYW5nZUVuZDpcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50UGFnZU9iai5wYWdlSW5kZXggKyB0aGlzLmluY3JlbWVudCA+IHRoaXMubGFzdFBhZ2VJbmRleFxyXG4gICAgICAgICAgPyB0aGlzLmxhc3RQYWdlSW5kZXhcclxuICAgICAgICAgIDogdGhpcy5jdXJyZW50UGFnZU9iai5wYWdlSW5kZXggKyAxO1xyXG5cclxuICAgICAgY2FzZSB0aGlzLmN1cnJlbnRQYWdlT2JqLnBhZ2VJbmRleCA+IHRoaXMuY3VycmVudFBhZ2VPYmoucHJldmlvdXNQYWdlSW5kZXggJiZcclxuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlT2JqLnBhZ2VJbmRleCA+IG1pZGRsZUluZGV4ICYmXHJcbiAgICAgICAgdGhpcy5yYW5nZUVuZCA8IHRoaXMubGFzdFBhZ2VJbmRleDpcclxuICAgICAgICByZXR1cm4gdGhpcy5yYW5nZUVuZCArIDE7XHJcblxyXG4gICAgICBjYXNlIHRoaXMuY3VycmVudFBhZ2VPYmoucGFnZUluZGV4IDwgdGhpcy5jdXJyZW50UGFnZU9iai5wcmV2aW91c1BhZ2VJbmRleCAmJlxyXG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2VPYmoucGFnZUluZGV4IDwgbWlkZGxlSW5kZXggJiZcclxuICAgICAgICB0aGlzLnJhbmdlU3RhcnQgPj0gMCAmJlxyXG4gICAgICAgIHRoaXMucmFuZ2VFbmQgPiB0aGlzLnRvdGFsUGFnZXMgLSAxOlxyXG4gICAgICAgIHJldHVybiB0aGlzLnJhbmdlRW5kIC0gMTtcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmFuZ2VFbmQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gc3dpdGNoIHBhZ2Ugb24gbm9uIGZpcnN0LCBsYXN0LCBuZXh0IGFuZCBwcmV2aW91cyBidXR0b25zIG9ubHkuXHJcbiAgcHJpdmF0ZSBzd2l0Y2hQYWdlKCBpOiBudW1iZXIgKTogdm9pZCB7XHJcbiAgICBjb25zdCBwcmV2aW91c1BhZ2VJbmRleCA9IHRoaXMubWF0UGFnaW5hdG9yLnBhZ2VJbmRleDtcclxuICAgIHRoaXMubWF0UGFnaW5hdG9yLnBhZ2VJbmRleCA9IGk7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLXN0cmluZy1saXRlcmFsXHJcbiAgICB0aGlzLm1hdFBhZ2luYXRvclsgJ19lbWl0UGFnZUV2ZW50JyBdKCBwcmV2aW91c1BhZ2VJbmRleCApO1xyXG4gICAgdGhpcy5pbml0UGFnZVJhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRQYWdpbmF0b3IoIHBhZ2VPYmplY3Q6IFBhZ2VPYmplY3QgKTogdm9pZCB7XHJcbiAgICBpZiAoIHRoaXMuY3VycmVudFBhZ2VPYmoucGFnZVNpemUgIT09IHBhZ2VPYmplY3QucGFnZVNpemUgJiYgdGhpcy5jdXJyZW50UGFnZU9iai5wYWdlSW5kZXggIT09IDAgKSB7XHJcbiAgICAgIHBhZ2VPYmplY3QucGFnZUluZGV4ID0gMDtcclxuICAgICAgdGhpcy5yYW5nZVN0YXJ0ID0gMDtcclxuICAgICAgdGhpcy5yYW5nZUVuZCA9IHRoaXMudG90YWxQYWdlcyAtIDE7XHJcbiAgICB9XHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlT2JqID0gcGFnZU9iamVjdDtcclxuXHJcbiAgICB0aGlzLmJ1aWxkUGFnaW5hdG9yKCk7XHJcbiAgICB0aGlzLmluaXRQYWdlUmFuZ2UoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,19 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { EcabsStylePaginatorDirective } from './style-paginator.directive';
4
+ import * as i0 from "@angular/core";
5
+ const COMPONENTS = [EcabsStylePaginatorDirective];
6
+ export class EcabsStylePaginatorDirectiveModule {
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsStylePaginatorDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: EcabsStylePaginatorDirectiveModule, declarations: [EcabsStylePaginatorDirective], imports: [CommonModule], exports: [EcabsStylePaginatorDirective] });
9
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsStylePaginatorDirectiveModule, imports: [CommonModule] });
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsStylePaginatorDirectiveModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ declarations: [COMPONENTS],
15
+ imports: [CommonModule],
16
+ exports: [COMPONENTS],
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUtcGFnaW5hdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9iYXNlL2RpcmVjdGl2ZXMvc3R5bGUtcGFnaW5hdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFFM0UsTUFBTSxVQUFVLEdBQUcsQ0FBRSw0QkFBNEIsQ0FBRSxDQUFDO0FBT3BELE1BQU0sT0FBTyxrQ0FBa0M7d0dBQWxDLGtDQUFrQzt5R0FBbEMsa0NBQWtDLGlCQVAxQiw0QkFBNEIsYUFJcEMsWUFBWSxhQUpKLDRCQUE0Qjt5R0FPcEMsa0NBQWtDLFlBSGxDLFlBQVk7OzRGQUdaLGtDQUFrQztrQkFMOUMsUUFBUTttQkFBRTtvQkFDVCxZQUFZLEVBQUUsQ0FBRSxVQUFVLENBQUU7b0JBQzVCLE9BQU8sRUFBRSxDQUFFLFlBQVksQ0FBRTtvQkFDekIsT0FBTyxFQUFFLENBQUUsVUFBVSxDQUFFO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVjYWJzU3R5bGVQYWdpbmF0b3JEaXJlY3RpdmUgfSBmcm9tICcuL3N0eWxlLXBhZ2luYXRvci5kaXJlY3RpdmUnO1xyXG5cclxuY29uc3QgQ09NUE9ORU5UUyA9IFsgRWNhYnNTdHlsZVBhZ2luYXRvckRpcmVjdGl2ZSBdO1xyXG5cclxuQE5nTW9kdWxlKCB7XHJcbiAgZGVjbGFyYXRpb25zOiBbIENPTVBPTkVOVFMgXSxcclxuICBpbXBvcnRzOiBbIENvbW1vbk1vZHVsZSBdLFxyXG4gIGV4cG9ydHM6IFsgQ09NUE9ORU5UUyBdLFxyXG59IClcclxuZXhwb3J0IGNsYXNzIEVjYWJzU3R5bGVQYWdpbmF0b3JEaXJlY3RpdmVNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -4,7 +4,7 @@ import * as i1 from "@angular/common";
4
4
  import * as i2 from "../../ecabs-loading/spinner/spinner.component";
5
5
  import * as i3 from "../validation/validation.component";
6
6
  import * as i4 from "@angular/material/icon";
7
- import * as i5 from "@angular/material/legacy-tooltip";
7
+ import * as i5 from "@angular/material/tooltip";
8
8
  import * as i6 from "../hint/hint.component";
9
9
  export class ElementWrapperComponent {
10
10
  data;
@@ -29,7 +29,7 @@ export class ElementWrapperComponent {
29
29
  this.decrease.emit();
30
30
  }
31
31
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElementWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
32
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ElementWrapperComponent, selector: "app-element-wrapper", inputs: { data: "data", showCloseIcon: "showCloseIcon", focusedFlag: "focusedFlag", showPassword: "showPassword", control: "control" }, outputs: { showHidePassword: "showHidePassword", clear: "clear", increase: "increase", decrease: "decrease" }, ngImport: i0, template: "<div\r\n class=\"form-field\"\r\n [ngClass]=\"{\r\n 'form-field--invalid':\r\n data?.showValidation && (data?.control?.touched || data?.showValidationOnNotTouched) && data?.control?.invalid,\r\n disabled: data?.disabled,\r\n 'form-field--required': data?.required && data?.showAsterisk\r\n }\"\r\n>\r\n <div>\r\n <label class=\"form-field__label\" [attr.for]=\"data?.name\" *ngIf=\"data?.label\">\r\n <span [innerHTML]=\"data?.label\"></span>\r\n <mat-icon class=\"icon\" *ngIf=\"data?.tooltip\" [matTooltip]=\"data?.tooltip\">error_outline</mat-icon>\r\n </label>\r\n </div>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ecabs-loading-spinner class=\"spinner\" size=\"tiny\" *ngIf=\"data.loading\"></ecabs-loading-spinner>\r\n\r\n <app-hint [element]=\"data?.control\" [showHint]=\"data?.showHint\" [maxValue]=\"data?.maxLength\"></app-hint>\r\n\r\n <app-validations-messages\r\n *ngIf=\"data?.showValidation && !data?.hideValidationMessage\"\r\n [element]=\"data?.control\"\r\n [label]=\"data?.label ? data?.label : data?.placeholder ? data.placeholder : data?.validationLabel\"\r\n [showValidationOnNotTouched]=\"data?.showValidationOnNotTouched\"\r\n >\r\n </app-validations-messages>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EcabsSpinnerComponent, selector: "ecabs-loading-spinner", inputs: ["size"] }, { kind: "component", type: i3.ValidationComponent, selector: "app-validations-messages", inputs: ["element", "label", "showValidationOnNotTouched", "updatedErrors"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.MatLegacyTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i6.HintComponent, selector: "app-hint", inputs: ["element", "maxValue", "showHint"] }] });
32
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ElementWrapperComponent, selector: "app-element-wrapper", inputs: { data: "data", showCloseIcon: "showCloseIcon", focusedFlag: "focusedFlag", showPassword: "showPassword", control: "control" }, outputs: { showHidePassword: "showHidePassword", clear: "clear", increase: "increase", decrease: "decrease" }, ngImport: i0, template: "<div\r\n class=\"form-field\"\r\n [ngClass]=\"{\r\n 'form-field--invalid':\r\n data?.showValidation && (data?.control?.touched || data?.showValidationOnNotTouched) && data?.control?.invalid,\r\n disabled: data?.disabled,\r\n 'form-field--required': data?.required && data?.showAsterisk\r\n }\"\r\n>\r\n <div>\r\n <label class=\"form-field__label\" [attr.for]=\"data?.name\" *ngIf=\"data?.label\">\r\n <span [innerHTML]=\"data?.label\"></span>\r\n <mat-icon class=\"icon\" *ngIf=\"data?.tooltip\" [matTooltip]=\"data?.tooltip\">error_outline</mat-icon>\r\n </label>\r\n </div>\r\n\r\n <ng-content></ng-content>\r\n\r\n <ecabs-loading-spinner class=\"spinner\" size=\"tiny\" *ngIf=\"data.loading\"></ecabs-loading-spinner>\r\n\r\n <app-hint [element]=\"data?.control\" [showHint]=\"data?.showHint\" [maxValue]=\"data?.maxLength\"></app-hint>\r\n\r\n <app-validations-messages\r\n *ngIf=\"data?.showValidation && !data?.hideValidationMessage\"\r\n [element]=\"data?.control\"\r\n [label]=\"data?.label ? data?.label : data?.placeholder ? data.placeholder : data?.validationLabel\"\r\n [showValidationOnNotTouched]=\"data?.showValidationOnNotTouched\"\r\n >\r\n </app-validations-messages>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EcabsSpinnerComponent, selector: "ecabs-loading-spinner", inputs: ["size"] }, { kind: "component", type: i3.ValidationComponent, selector: "app-validations-messages", inputs: ["element", "label", "showValidationOnNotTouched", "updatedErrors"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i6.HintComponent, selector: "app-hint", inputs: ["element", "maxValue", "showHint"] }] });
33
33
  }
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElementWrapperComponent, decorators: [{
35
35
  type: Component,
@@ -6,9 +6,9 @@ import { ValidationModule } from '../validation/validation.module';
6
6
  import { ElementWrapperComponent } from './element-wrapper.component';
7
7
  import { MatIconModule } from '@angular/material/icon';
8
8
  import { EcabsLoadingModule } from '../../ecabs-loading/ecabs-loading.module';
9
- import { MatLegacyFormFieldModule as MatFormFieldModule } from '@angular/material/legacy-form-field';
10
- import { MatLegacyInputModule as MatInputModule } from '@angular/material/legacy-input';
11
- import { MatLegacyTooltipModule as MatTooltipModule } from "@angular/material/legacy-tooltip";
9
+ import { MatFormFieldModule } from '@angular/material/form-field';
10
+ import { MatInputModule } from '@angular/material/input';
11
+ import { MatTooltipModule } from "@angular/material/tooltip";
12
12
  import * as i0 from "@angular/core";
13
13
  export class ElementWrapperModule {
14
14
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElementWrapperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -49,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
49
49
  exports: [ElementWrapperComponent],
50
50
  }]
51
51
  }] });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC13cmFwcGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9iYXNlL2VsZW1lbnQtd3JhcHBlci9lbGVtZW50LXdyYXBwZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDcEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxrQkFBa0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ25HLE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxjQUFjLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RixPQUFPLEVBQUMsc0JBQXNCLElBQUksZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFpQjVGLE1BQU0sT0FBTyxvQkFBb0I7d0dBQXBCLG9CQUFvQjt5R0FBcEIsb0JBQW9CLGlCQWRoQix1QkFBdUIsYUFFcEMsWUFBWTtZQUNaLFdBQVc7WUFDWCxrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixVQUFVLGFBRUYsdUJBQXVCO3lHQUV0QixvQkFBb0IsWUFaN0IsWUFBWTtZQUNaLFdBQVc7WUFDWCxrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixVQUFVOzs0RkFJRCxvQkFBb0I7a0JBZmhDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsdUJBQXVCLENBQUM7b0JBQ3ZDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsVUFBVTtxQkFDWDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7SGludE1vZHVsZX0gZnJvbSAnLi4vaGludC9oaW50Lm1vZHVsZSc7XHJcbmltcG9ydCB7VmFsaWRhdGlvbk1vZHVsZX0gZnJvbSAnLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uLm1vZHVsZSc7XHJcbmltcG9ydCB7RWxlbWVudFdyYXBwZXJDb21wb25lbnR9IGZyb20gJy4vZWxlbWVudC13cmFwcGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7RWNhYnNMb2FkaW5nTW9kdWxlfSBmcm9tICcuLi8uLi9lY2Ficy1sb2FkaW5nL2VjYWJzLWxvYWRpbmcubW9kdWxlJztcclxuaW1wb3J0IHtNYXRMZWdhY3lGb3JtRmllbGRNb2R1bGUgYXMgTWF0Rm9ybUZpZWxkTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7TWF0TGVnYWN5SW5wdXRNb2R1bGUgYXMgTWF0SW5wdXRNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1pbnB1dCc7XHJcbmltcG9ydCB7TWF0TGVnYWN5VG9vbHRpcE1vZHVsZSBhcyBNYXRUb29sdGlwTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LXRvb2x0aXBcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbRWxlbWVudFdyYXBwZXJDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgRWNhYnNMb2FkaW5nTW9kdWxlLFxyXG4gICAgVmFsaWRhdGlvbk1vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBIaW50TW9kdWxlLFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW0VsZW1lbnRXcmFwcGVyQ29tcG9uZW50XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVsZW1lbnRXcmFwcGVyTW9kdWxlIHtcclxufVxyXG4iXX0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC13cmFwcGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9iYXNlL2VsZW1lbnQtd3JhcHBlci9lbGVtZW50LXdyYXBwZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFpQjdELE1BQU0sT0FBTyxvQkFBb0I7d0dBQXBCLG9CQUFvQjt5R0FBcEIsb0JBQW9CLGlCQWRmLHVCQUF1QixhQUVyQyxZQUFZO1lBQ1osV0FBVztZQUNYLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCxhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLFVBQVUsYUFFRCx1QkFBdUI7eUdBRXZCLG9CQUFvQixZQVo3QixZQUFZO1lBQ1osV0FBVztZQUNYLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCxhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLFVBQVU7OzRGQUlELG9CQUFvQjtrQkFmaEMsUUFBUTttQkFBRTtvQkFDVCxZQUFZLEVBQUUsQ0FBRSx1QkFBdUIsQ0FBRTtvQkFDekMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixVQUFVO3FCQUNYO29CQUNELE9BQU8sRUFBRSxDQUFFLHVCQUF1QixDQUFFO2lCQUNyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgSGludE1vZHVsZSB9IGZyb20gJy4uL2hpbnQvaGludC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uTW9kdWxlIH0gZnJvbSAnLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uLm1vZHVsZSc7XHJcbmltcG9ydCB7IEVsZW1lbnRXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9lbGVtZW50LXdyYXBwZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBFY2Fic0xvYWRpbmdNb2R1bGUgfSBmcm9tICcuLi8uLi9lY2Ficy1sb2FkaW5nL2VjYWJzLWxvYWRpbmcubW9kdWxlJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcclxuXHJcbkBOZ01vZHVsZSgge1xyXG4gIGRlY2xhcmF0aW9uczogWyBFbGVtZW50V3JhcHBlckNvbXBvbmVudCBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgRWNhYnNMb2FkaW5nTW9kdWxlLFxyXG4gICAgVmFsaWRhdGlvbk1vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBIaW50TW9kdWxlLFxyXG4gIF0sXHJcbiAgZXhwb3J0czogWyBFbGVtZW50V3JhcHBlckNvbXBvbmVudCBdLFxyXG59IClcclxuZXhwb3J0IGNsYXNzIEVsZW1lbnRXcmFwcGVyTW9kdWxlIHtcclxufVxyXG4iXX0=
@@ -2,7 +2,7 @@ import { CommonModule } from '@angular/common';
2
2
  import { NgModule } from '@angular/core';
3
3
  import { FormsModule } from '@angular/forms';
4
4
  import { HintComponent } from './hint.component';
5
- import { MatLegacyFormFieldModule as MatFormFieldModule } from '@angular/material/legacy-form-field';
5
+ import { MatFormFieldModule } from '@angular/material/form-field';
6
6
  import * as i0 from "@angular/core";
7
7
  export class HintModule {
8
8
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HintModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
17
17
  exports: [HintComponent],
18
18
  }]
19
19
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvYmFzZS9oaW50L2hpbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLHdCQUF3QixJQUFJLGtCQUFrQixFQUFDLE1BQU0scUNBQXFDLENBQUM7O0FBT25HLE1BQU0sT0FBTyxVQUFVO3dHQUFWLFVBQVU7eUdBQVYsVUFBVSxpQkFKTixhQUFhLGFBQ2xCLFlBQVksRUFBRSxXQUFXLEVBQUUsa0JBQWtCLGFBQzdDLGFBQWE7eUdBRVosVUFBVSxZQUhYLFlBQVksRUFBRSxXQUFXLEVBQUUsa0JBQWtCOzs0RkFHNUMsVUFBVTtrQkFMdEIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxhQUFhLENBQUM7b0JBQzdCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsa0JBQWtCLENBQUM7b0JBQ3hELE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtIaW50Q29tcG9uZW50fSBmcm9tICcuL2hpbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHtNYXRMZWdhY3lGb3JtRmllbGRNb2R1bGUgYXMgTWF0Rm9ybUZpZWxkTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZm9ybS1maWVsZCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0hpbnRDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtIaW50Q29tcG9uZW50XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpbnRNb2R1bGUge1xyXG59XHJcbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvYmFzZS9oaW50L2hpbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBT2xFLE1BQU0sT0FBTyxVQUFVO3dHQUFWLFVBQVU7eUdBQVYsVUFBVSxpQkFKTCxhQUFhLGFBQ2xCLFlBQVksRUFBRSxXQUFXLEVBQUUsa0JBQWtCLGFBQzdDLGFBQWE7eUdBRWIsVUFBVSxZQUhWLFlBQVksRUFBRSxXQUFXLEVBQUUsa0JBQWtCOzs0RkFHN0MsVUFBVTtrQkFMdEIsUUFBUTttQkFBRTtvQkFDVCxZQUFZLEVBQUUsQ0FBRSxhQUFhLENBQUU7b0JBQy9CLE9BQU8sRUFBRSxDQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsa0JBQWtCLENBQUU7b0JBQzFELE9BQU8sRUFBRSxDQUFFLGFBQWEsQ0FBRTtpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSGludENvbXBvbmVudCB9IGZyb20gJy4vaGludC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuXHJcbkBOZ01vZHVsZSgge1xyXG4gIGRlY2xhcmF0aW9uczogWyBIaW50Q29tcG9uZW50IF0sXHJcbiAgaW1wb3J0czogWyBDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUgXSxcclxuICBleHBvcnRzOiBbIEhpbnRDb21wb25lbnQgXSxcclxufSApXHJcbmV4cG9ydCBjbGFzcyBIaW50TW9kdWxlIHtcclxufVxyXG4iXX0=
@@ -2,7 +2,7 @@ import { NgModule } from '@angular/core';
2
2
  import { ValidationComponent } from './validation.component';
3
3
  import { FormsModule } from '@angular/forms';
4
4
  import { CommonModule } from '@angular/common';
5
- import { MatLegacyFormFieldModule as MatFormFieldModule } from '@angular/material/legacy-form-field';
5
+ import { MatFormFieldModule } from '@angular/material/form-field';
6
6
  import * as i0 from "@angular/core";
7
7
  export class ValidationModule {
8
8
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ValidationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
17
17
  exports: [ValidationComponent],
18
18
  }]
19
19
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvYmFzZS92YWxpZGF0aW9uL3ZhbGlkYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsd0JBQXdCLElBQUksa0JBQWtCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFPbkcsTUFBTSxPQUFPLGdCQUFnQjt3R0FBaEIsZ0JBQWdCO3lHQUFoQixnQkFBZ0IsaUJBSlosbUJBQW1CLGFBQ3hCLFlBQVksRUFBRSxXQUFXLEVBQUUsa0JBQWtCLGFBQzdDLG1CQUFtQjt5R0FFbEIsZ0JBQWdCLFlBSGpCLFlBQVksRUFBRSxXQUFXLEVBQUUsa0JBQWtCOzs0RkFHNUMsZ0JBQWdCO2tCQUw1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixDQUFDO29CQUN4RCxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtWYWxpZGF0aW9uQ29tcG9uZW50fSBmcm9tICcuL3ZhbGlkYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtNYXRMZWdhY3lGb3JtRmllbGRNb2R1bGUgYXMgTWF0Rm9ybUZpZWxkTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZm9ybS1maWVsZCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1ZhbGlkYXRpb25Db21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtWYWxpZGF0aW9uQ29tcG9uZW50XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25Nb2R1bGUge1xyXG59XHJcbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvYmFzZS92YWxpZGF0aW9uL3ZhbGlkYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFPbEUsTUFBTSxPQUFPLGdCQUFnQjt3R0FBaEIsZ0JBQWdCO3lHQUFoQixnQkFBZ0IsaUJBSlgsbUJBQW1CLGFBQ3hCLFlBQVksRUFBRSxXQUFXLEVBQUUsa0JBQWtCLGFBQzdDLG1CQUFtQjt5R0FFbkIsZ0JBQWdCLFlBSGhCLFlBQVksRUFBRSxXQUFXLEVBQUUsa0JBQWtCOzs0RkFHN0MsZ0JBQWdCO2tCQUw1QixRQUFRO21CQUFFO29CQUNULFlBQVksRUFBRSxDQUFFLG1CQUFtQixDQUFFO29CQUNyQyxPQUFPLEVBQUUsQ0FBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixDQUFFO29CQUMxRCxPQUFPLEVBQUUsQ0FBRSxtQkFBbUIsQ0FBRTtpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi92YWxpZGF0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuXHJcbkBOZ01vZHVsZSgge1xyXG4gIGRlY2xhcmF0aW9uczogWyBWYWxpZGF0aW9uQ29tcG9uZW50IF0sXHJcbiAgaW1wb3J0czogWyBDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUgXSxcclxuICBleHBvcnRzOiBbIFZhbGlkYXRpb25Db21wb25lbnQgXSxcclxufSApXHJcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uTW9kdWxlIHtcclxufVxyXG4iXX0=