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.
- package/README.md +1 -0
- package/esm2022/lib/base/directives/digits-only.directive.mjs +2 -2
- package/esm2022/lib/base/directives/element-multiplier.directive.mjs +26 -0
- package/esm2022/lib/base/directives/element-multiplier.directive.module.mjs +22 -0
- package/esm2022/lib/base/directives/style-paginator.directive.mjs +263 -0
- package/esm2022/lib/base/directives/style-paginator.module.mjs +19 -0
- package/esm2022/lib/base/element-wrapper/element-wrapper.component.mjs +2 -2
- package/esm2022/lib/base/element-wrapper/element-wrapper.module.mjs +4 -4
- package/esm2022/lib/base/hint/hint.module.mjs +2 -2
- package/esm2022/lib/base/validation/validation.module.mjs +2 -2
- package/esm2022/lib/ecabs-autocomplete/ecabs-autocomplete.component.mjs +91 -0
- package/esm2022/lib/ecabs-autocomplete/ecabs-autocomplete.module.mjs +28 -0
- package/esm2022/lib/ecabs-buttons/ecabs-buttons.component.mjs +4 -4
- package/esm2022/lib/ecabs-buttons/ecabs-buttons.module.mjs +2 -2
- package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.mjs +4 -4
- package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.mjs +3 -3
- package/esm2022/lib/ecabs-date-picker/ecabs-date-picker.component.mjs +2 -2
- package/esm2022/lib/ecabs-date-picker/ecabs-date-picker.module.mjs +2 -2
- package/esm2022/lib/ecabs-date-range-picker/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header.component.mjs +15 -0
- package/esm2022/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.mjs +123 -0
- package/esm2022/lib/ecabs-date-range-picker/ecabs-date-range-picker.module.mjs +75 -0
- package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +2 -2
- package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.mjs +2 -2
- package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.mjs +2 -2
- package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.mjs +2 -2
- package/esm2022/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.mjs +4 -5
- package/esm2022/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.mjs +2 -2
- package/esm2022/lib/ecabs-dialog-message/ecabs-dialog-message.component.mjs +4 -5
- package/esm2022/lib/ecabs-dialog-message/ecabs-dialog-message.module.mjs +2 -2
- package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.mjs +2 -2
- package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.mjs +3 -3
- package/esm2022/lib/ecabs-increment/ecabs-increment.component.mjs +2 -2
- package/esm2022/lib/ecabs-increment/ecabs-increment.module.mjs +2 -2
- package/esm2022/lib/ecabs-input/ecabs-input.component.mjs +8 -4
- package/esm2022/lib/ecabs-input/ecabs-input.module.mjs +9 -5
- package/esm2022/lib/ecabs-language-selector/ecabs-language-selector.component.mjs +5 -5
- package/esm2022/lib/ecabs-language-selector/ecabs-language-selector.module.mjs +4 -4
- package/esm2022/lib/ecabs-phone/ecabs-phone.module.mjs +2 -2
- package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.component.mjs +3 -3
- package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.module.mjs +2 -2
- package/esm2022/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.mjs +2 -2
- package/esm2022/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.mjs +2 -2
- package/esm2022/lib/ecabs-select/ecabs-select.component.mjs +6 -6
- package/esm2022/lib/ecabs-select/ecabs-select.module.mjs +3 -3
- package/esm2022/lib/ecabs-sep-date-range-picker/ecabs-sep-date-range-picker.component.mjs +165 -0
- package/esm2022/lib/ecabs-sep-date-range-picker/ecabs-sep-date-range-picker.module.mjs +59 -0
- package/esm2022/lib/ecabs-sep-paginator/ecabs-sep-paginator.component.mjs +42 -0
- package/esm2022/lib/ecabs-sep-paginator/ecabs-sep-paginator.module.mjs +22 -0
- package/esm2022/lib/ecabs-skeleton-card-grid/ecabs-skeleton-card-grid.component.mjs +16 -0
- package/esm2022/lib/ecabs-skeleton-card-grid/ecabs-skeleton-card-grid.module.mjs +21 -0
- package/esm2022/lib/ecabs-skeleton-profile/ecabs-skeleton-profile.component.mjs +20 -0
- package/esm2022/lib/ecabs-skeleton-profile/ecabs-skeleton-profile.module.mjs +21 -0
- package/esm2022/lib/ecabs-skeleton-table/ecabs-skeleton-table.component.mjs +24 -0
- package/esm2022/lib/ecabs-skeleton-table/ecabs-skeleton-table.module.mjs +21 -0
- package/esm2022/lib/ecabs-skeleton-table-filter/ecabs-skeleton-table-filter.component.mjs +19 -0
- package/esm2022/lib/ecabs-skeleton-table-filter/ecabs-skeleton-table-filter.module.mjs +21 -0
- package/esm2022/lib/ecabs-table/ecabs-table.component.mjs +2 -2
- package/esm2022/lib/ecabs-table/ecabs-table.module.mjs +3 -3
- package/esm2022/lib/models/pagination.models.mjs +2 -0
- package/esm2022/public-api.mjs +18 -1
- package/fesm2022/ecabs-components.mjs +1128 -145
- package/fesm2022/ecabs-components.mjs.map +1 -1
- package/lib/base/directives/element-multiplier.directive.d.ts +10 -0
- package/lib/base/directives/element-multiplier.directive.module.d.ts +8 -0
- package/lib/base/directives/style-paginator.directive.d.ts +36 -0
- package/lib/base/directives/style-paginator.module.d.ts +8 -0
- package/lib/base/element-wrapper/element-wrapper.module.d.ts +4 -4
- package/lib/base/hint/hint.module.d.ts +2 -2
- package/lib/base/validation/validation.module.d.ts +2 -2
- package/lib/ecabs-autocomplete/ecabs-autocomplete.component.d.ts +30 -0
- package/lib/ecabs-autocomplete/ecabs-autocomplete.module.d.ts +15 -0
- package/lib/ecabs-buttons/ecabs-buttons.module.d.ts +2 -2
- package/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.d.ts +3 -3
- package/lib/ecabs-date-picker/ecabs-date-picker.module.d.ts +2 -2
- package/lib/ecabs-date-range-picker/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header.component.d.ts +6 -0
- package/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.d.ts +47 -0
- package/lib/ecabs-date-range-picker/ecabs-date-range-picker.module.d.ts +30 -0
- package/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.d.ts +2 -2
- package/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.d.ts +2 -2
- package/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.d.ts +2 -2
- package/lib/ecabs-dialog-message/ecabs-dialog-message.module.d.ts +2 -2
- package/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.d.ts +3 -3
- package/lib/ecabs-increment/ecabs-increment.module.d.ts +2 -2
- package/lib/ecabs-input/ecabs-input.component.d.ts +2 -1
- package/lib/ecabs-input/ecabs-input.module.d.ts +3 -2
- package/lib/ecabs-language-selector/ecabs-language-selector.module.d.ts +4 -4
- package/lib/ecabs-phone/ecabs-phone.module.d.ts +2 -2
- package/lib/ecabs-picker-header/ecabs-picker-header.module.d.ts +2 -2
- package/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.d.ts +2 -2
- package/lib/ecabs-select/ecabs-select.module.d.ts +3 -3
- package/lib/ecabs-sep-date-range-picker/ecabs-sep-date-range-picker.component.d.ts +52 -0
- package/lib/ecabs-sep-date-range-picker/ecabs-sep-date-range-picker.module.d.ts +17 -0
- package/lib/ecabs-sep-paginator/ecabs-sep-paginator.component.d.ts +20 -0
- package/lib/ecabs-sep-paginator/ecabs-sep-paginator.module.d.ts +11 -0
- package/lib/ecabs-skeleton-card-grid/ecabs-skeleton-card-grid.component.d.ts +6 -0
- package/lib/ecabs-skeleton-card-grid/ecabs-skeleton-card-grid.module.d.ts +10 -0
- package/lib/ecabs-skeleton-profile/ecabs-skeleton-profile.component.d.ts +9 -0
- package/lib/ecabs-skeleton-profile/ecabs-skeleton-profile.module.d.ts +10 -0
- package/lib/ecabs-skeleton-table/ecabs-skeleton-table.component.d.ts +10 -0
- package/lib/ecabs-skeleton-table/ecabs-skeleton-table.module.d.ts +10 -0
- package/lib/ecabs-skeleton-table-filter/ecabs-skeleton-table-filter.component.d.ts +7 -0
- package/lib/ecabs-skeleton-table-filter/ecabs-skeleton-table-filter.module.d.ts +10 -0
- package/lib/ecabs-table/ecabs-table.module.d.ts +3 -3
- package/lib/models/pagination.models.d.ts +26 -0
- package/package.json +2 -1
- package/public-api.d.ts +17 -0
- 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
|
|
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/
|
|
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.
|
|
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 {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
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,
|
|
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 {
|
|
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,
|
|
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 {
|
|
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,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvYmFzZS92YWxpZGF0aW9uL3ZhbGlkYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFPbEUsTUFBTSxPQUFPLGdCQUFnQjt3R0FBaEIsZ0JBQWdCO3lHQUFoQixnQkFBZ0IsaUJBSlgsbUJBQW1CLGFBQ3hCLFlBQVksRUFBRSxXQUFXLEVBQUUsa0JBQWtCLGFBQzdDLG1CQUFtQjt5R0FFbkIsZ0JBQWdCLFlBSGhCLFlBQVksRUFBRSxXQUFXLEVBQUUsa0JBQWtCOzs0RkFHN0MsZ0JBQWdCO2tCQUw1QixRQUFRO21CQUFFO29CQUNULFlBQVksRUFBRSxDQUFFLG1CQUFtQixDQUFFO29CQUNyQyxPQUFPLEVBQUUsQ0FBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixDQUFFO29CQUMxRCxPQUFPLEVBQUUsQ0FBRSxtQkFBbUIsQ0FBRTtpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi92YWxpZGF0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuXHJcbkBOZ01vZHVsZSgge1xyXG4gIGRlY2xhcmF0aW9uczogWyBWYWxpZGF0aW9uQ29tcG9uZW50IF0sXHJcbiAgaW1wb3J0czogWyBDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUgXSxcclxuICBleHBvcnRzOiBbIFZhbGlkYXRpb25Db21wb25lbnQgXSxcclxufSApXHJcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uTW9kdWxlIHtcclxufVxyXG4iXX0=
|