@unifylib/ui-lib 1.1.58 → 1.1.60
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/esm2022/lib/base-model/field-info.mjs +4 -1
- package/esm2022/lib/base-model/response-envelop.model.mjs +2 -2
- package/esm2022/lib/components/advanced-filter/filter-builder/filter-builder.component.mjs +3 -3
- package/esm2022/lib/components/base-form-canvas/MaxDigitsDirective.mjs +29 -0
- package/esm2022/lib/components/base-form-canvas/base-form-canvas.component.mjs +91 -7
- package/esm2022/lib/components/base-table/base-table.component.mjs +2 -2
- package/esm2022/lib/components/editable-base-table/editable-base-table.component.mjs +4 -3
- package/esm2022/lib/services/backend-service.mjs +2 -5
- package/esm2022/lib/utils/base-utils.mjs +6 -2
- package/fesm2022/iq-ui-lib.mjs +130 -16
- package/fesm2022/iq-ui-lib.mjs.map +1 -1
- package/fesm2022/unifylib-ui-lib.mjs +130 -16
- package/fesm2022/unifylib-ui-lib.mjs.map +1 -1
- package/lib/base-model/field-info.d.ts +4 -1
- package/lib/base-model/response-envelop.model.d.ts +1 -1
- package/lib/components/base-form-canvas/MaxDigitsDirective.d.ts +7 -0
- package/lib/components/base-form-canvas/base-form-canvas.component.d.ts +10 -1
- package/lib/components/editable-base-table/editable-base-table.component.d.ts +2 -1
- package/package.json +1 -1
|
@@ -56,6 +56,9 @@ export class FieldInfo {
|
|
|
56
56
|
this.showSearchIcon = fieldInfo.showSearchIcon;
|
|
57
57
|
this.multiLevelSearchEnable = fieldInfo.multiLevelSearchEnable;
|
|
58
58
|
this.maxDecimals = fieldInfo.maxDecimals ?? 10;
|
|
59
|
+
this.maxLength = fieldInfo.maxLength ?? 100;
|
|
60
|
+
this.emptyReadonlyPlaceholderKey = fieldInfo.emptyReadonlyPlaceholderKey;
|
|
61
|
+
this.readonlyDateDisplay = fieldInfo.readonlyDateDisplay;
|
|
59
62
|
}
|
|
60
63
|
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtaW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludm9pY2VxL3VpLWxpYi9zcmMvbGliL2Jhc2UtbW9kZWwvZmllbGQtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sU0FBUztJQXNEcEIsWUFBWSxTQUFvQjtRQXJEOUIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixtQkFBYyxHQUFZLEVBQUUsQ0FBQztRQUU3QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFNBQUksR0FBbVksTUFBTSxDQUFDO1FBRTlZLGFBQVEsR0FBYSxLQUFLLENBQUM7UUFFM0IsVUFBSyxHQUFZLEVBQUUsQ0FBQztRQWlCcEIsY0FBUyxHQUFhLEtBQUssQ0FBQztRQUc1QixZQUFPLEdBQWEsSUFBSSxDQUFDO1FBcUJ6QiwyQkFBc0IsR0FBYSxLQUFLLENBQUM7UUFLckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDO1FBQ25DLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDLGNBQWMsQ0FBQztRQUMvQyxJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFDbkMsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUM1RixJQUFJLENBQUMsR0FBRyxHQUFHLFNB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QWMsR0FBRyxTQUFTLENBQUMsY0FBYyxDQUFDO1FBQy9DLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxTQUFTLENBQUMsc0JBQXNCLENBQUM7UUFDL0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1ZhbGlkYXRvckZufSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gXCIuL2ZpbHRlci5tb2RlbFwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpZWxkSW5mbyB7XHJcbiAgICBwcm9wZXJ0eTogc3RyaW5nID0gXCJcIjtcclxuICAgIHRhcmdldFByb3BlcnR5Pzogc3RyaW5nID0gXCJcIjtcclxuICAgIHJvdzogbnVtYmVyO1xyXG4gICAgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHR5cGU6ICd0ZXh0JyB8ICdhbW91bnQnIHwnY29sb3ItcGlja2VyJyB8ICdjdXJyZW5jeScgfCAnZGF0ZScgfCAnbnVtYmVyJyB8ICdzZXF1ZW5jZScgfCAnbGlzdCcgfCdsb29rdXAnfCAnbXVsdGktc2VsZWN0JyB8ICdwYXNzd29yZCd8ICdyaWNoLXRleHQnfCdyYWRpby1idXR0b24nfCAncGhvbmUtbnVtYmVyJ3wgJ2liYW4tdGV4dCd8J2NoZWNrYm94JyB8J3RleHRhcmVhJyB8J2J1dHRvbid8J3NwYWNlcicgfCAnYXR0YWNobWVudCd8ICdzZWN0aW9uLXRpdGxlJ3wgJ2NoaXAtbGlzdCcgfCd0aW1lJyB8ICdkaXZpZGVyJyB8ICdoeXBlci10ZXh0JyB8J3N0YXRlVHlwZSd8J3N0YXR1cycgfCAneWVhcicgfCAnZXF1YXRpb24tYnVpbGRlcid8ICd0b2dnbGUnfCAnYmlnZGVjaW1hbCcgPSAndGV4dCc7XHJcbiAgICB0ZXh0Rm9ybWF0PzogJ2pzb24nO1xyXG4gICAgcmVhZG9ubHk/OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICB2aWV3b25seT86IGJvb2xlYW4gO1xyXG4gICAgbGFiZWw/OiBzdHJpbmcgPSAnJztcclxuICAgIGN1cnJlbmN5Pzogc3RyaW5nO1xyXG4gICAgbG9va3VwQXBpUGF0aD86IHN0cmluZztcclxuICAgIG11bHRpPzpib29sZWFuO1xyXG4gICAgc3VwcG9ydGVkVHlwZXM/OnN0cmluZztcclxuICAgIGNhc2NhZGVkQnk/OiBzdHJpbmc7XHJcbiAgICBjYXNjYWRlZEJ5UHJvcGVydHk/OiBzdHJpbmc7XHJcbiAgICBwYXRoUGFyYW1zPzogc3RyaW5nO1xyXG4gICAgbGlzdE9wdGlvbnM/OiBhbnlbXTtcclxuICAgIG9wZXJhdG9ycz86IGFueVtdO1xyXG4gICAgZmllbGRzQXBpPzogc3RyaW5nO1xyXG4gICAgcmVwb3J0RmlsdGVyPzpzdHJpbmc7XHJcbiAgICB1cGRhdGVPbmx5PzogYm9vbGVhbjtcclxuICAgIGZpZWxkU2l6ZSA/OiBudW1iZXIgIDtcclxuICAgIGluY2x1ZGVBbGxPcHRpb24/OiBib29sZWFuO1xyXG4gICAgZGVmYXVsdExpc3RPcHRpb24/OiBhbnk7XHJcbiAgICBhY2NlcHROZXdJdGVtPzogYm9vbGVhbjtcclxuICAgIHRyYW5zbGF0ZT86IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHZhbGlkYXRvcnM/OiBWYWxpZGF0b3JGbltdO1xyXG4gICAgcGxhY2Vob2xkZXI/OiBhbnk7XHJcbiAgICB2aXNpYmxlPzogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBwYXR0ZXJuPzogc3RyaW5nO1xyXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gICAgYWR2YW5jZWRGaWx0ZXI/OiBib29sZWFuO1xyXG4gICAgZmlsdGVyT3BlcmF0b3I/OiAnR1JFQVRFUl9USEFOX0VRVUFMJ3wnR1JFQVRFUl9USEFOJ3wgJ0xFU1NfVEhBTid8J0xFU1NfVEhBTl9FUVVBTCd8ICdFUVVBTFMnfCAnTElLRSd8ICdOT1RfRVEnfCAnSU4nIDtcclxuICAgIHdvcmtmbG93TWFuYWdlZD86IGJvb2xlYW47XHJcbiAgICB3b3JrZmxvd0Nhc2NhZGluZ0ZpZWxkPzogc3RyaW5nO1xyXG4gICAgYXR0YWNobWVudFR5cGU/OiBzdHJpbmc7XHJcbiAgICBsb29rdXBGaWx0ZXJMaXN0PzogRmlsdGVyW107XHJcbiAgICBidXR0b25UeXBlPzogc3RyaW5nO1xyXG4gICAgaGlkZUZpbGVzPzogYm9vbGVhbjtcclxuICAgIGJlaGF2aW9yYWxOYW1lPzogc3RyaW5nO1xyXG4gICAgZmxhdHRlbkJ5U3ViQXR0cmlidXRlPzogc3RyaW5nO1xyXG4gICAgZGVmYXVsdFZhbHVlPzphbnk7XHJcbiAgICBleHRyYUxvb2t1cHNDb2x1bW5zPzogc3RyaW5nW107XHJcbiAgICBkaXNwbGF5Q29sdW1uPzogc3RyaW5nO1xyXG4gICAgc2VhcmNoQXR0cmlidXRlPzpzdHJpbmc7XHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZXM/OiBhbnk7XHJcbiAgICBoaWRlTGFiZWw/OmJvb2xlYW47XHJcbiAgICBzZWFyY2hPcGVyYXRvcj86XCJHUkVBVEVSX1RIQU5fRVFVQUxcIiB8IFwiR1JFQVRFUl9USEFOXCIgfCBcIkxFU1NfVEhBTlwiIHwgXCJMRVNTX1RIQU5fRVFVQUxcIiB8IFwiRVFVQUxTXCIgfCBcIkxJS0VcIiB8IFwiTk9UX0VRXCIgfCBcIklOXCIgfCBcIk5PVF9OVUxMXCI7XHJcbiAgICBzaG93U2VhcmNoSWNvbj86IGJvb2xlYW47XHJcbiAgICBtdWx0aUxldmVsU2VhcmNoRW5hYmxlPzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbWF4RGVjaW1hbHM/OiBudW1iZXIgO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoZmllbGRJbmZvOiBGaWVsZEluZm8pIHtcclxuICAgICAgICB0aGlzLnByb3BlcnR5ID0gZmllbGRJbmZvLnByb3BlcnR5O1xyXG4gICAgICAgIHRoaXMudGFyZ2V0UHJvcGVydHkgPSBmaWVsZEluZm8udGFyZ2V0UHJvcGVydHk7XHJcbiAgICAgICAgdGhpcy5yZXF1aXJlZCA9IGZpZWxkSW5mby5yZXF1aXJlZDtcclxuICAgICAgICB0aGlzLnR5cGUgPSBmaWVsZEluZm8udHlwZTtcclxuICAgICAgICB0aGlzLnJlYWRvbmx5ID0gZmllbGRJbmZvLnJlYWRvbmx5O1xyXG4gICAgICAgIHRoaXMubGFiZWwgPSBmaWVsZEluZm8ubGFiZWw7XHJcbiAgICAgICAgdGhpcy5maWVsZFNpemUgPSBmaWVsZEluZm8uZmllbGRTaXplO1xyXG4gICAgICAgIHRoaXMubG9va3VwQXBpUGF0aCA9IGZpZWxkSW5mby5sb29rdXBBcGlQYXRoID8gZmllbGRJbmZvLmxvb2t1cEFwaVBhdGggOiBmaWVsZEluZm8ucHJvcGVydHk7XHJcbiAgICAgICAgdGhpcy5yb3cgPSBmaWVsZEluZm8ucm93O1xyXG4gICAgICAgIHRoaXMuc3VwcG9ydGVkVHlwZXMgPSBmaWVsZEluZm8uc3VwcG9ydGVkVHlwZXM7XHJcbiAgICAgICAgdGhpcy5saXN0T3B0aW9ucyA9IGZpZWxkSW5mby5saXN0T3B0aW9ucztcclxuICAgICAgICB0aGlzLnBhdGhQYXJhbXMgPSBmaWVsZEluZm8ucGF0aFBhcmFtcztcclxuICAgICAgICB0aGlzLnZpZXdvbmx5ID0gZmllbGRJbmZvLnZpZXdvbmx5O1xyXG4gICAgICAgIHRoaXMubXVsdGkgPSBmaWVsZEluZm8ubXVsdGk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVPbmx5ID0gZmllbGRJbmZvLnVwZGF0ZU9ubHk7XHJcbiAgICAgICAgdGhpcy5pbmNsdWRlQWxsT3B0aW9uID0gZmllbGRJbmZvLmluY2x1ZGVBbGxPcHRpb247XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0TGlzdE9wdGlvbiA9IGZpZWxkSW5mby5kZWZhdWx0TGlzdE9wdGlvbjtcclxuICAgICAgICB0aGlzLmFjY2VwdE5ld0l0ZW0gPSBmaWVsZEluZm8uYWNjZXB0TmV3SXRlbTtcclxuICAgICAgICB0aGlzLmNhc2NhZGVkQnkgPSBmaWVsZEluZm8uY2FzY2FkZWRCeTtcclxuICAgICAgICB0aGlzLmNhc2NhZGVkQnlQcm9wZXJ0eSA9IGZpZWxkSW5mby5jYXNjYWRlZEJ5UHJvcGVydHkgPyBmaWVsZEluZm8uY2FzY2FkZWRCeVByb3BlcnR5IDogIGZpZWxkSW5mby5jYXNjYWRlZEJ5O1xyXG4gICAgICAgIHRoaXMuY3VycmVuY3kgPSBmaWVsZEluZm8uY3VycmVuY3k7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGUgPSBmaWVsZEluZm8udHJhbnNsYXRlO1xyXG4gICAgICAgIHRoaXMuYWR2YW5jZWRGaWx0ZXIgPSBmaWVsZEluZm8uYWR2YW5jZWRGaWx0ZXI7XHJcbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IGZpZWxkSW5mby5wbGFjZWhvbGRlcjtcclxuICAgICAgICB0aGlzLnZhbGlkYXRvcnMgPSBmaWVsZEluZm8udmFsaWRhdG9ycztcclxuICAgICAgICB0aGlzLmZpbHRlck9wZXJhdG9yID0gZmllbGRJbmZvLmZpbHRlck9wZXJhdG9yO1xyXG4gICAgICAgIHRoaXMucGF0dGVybiA9IGZpZWxkSW5mby5wYXR0ZXJuO1xyXG4gICAgICAgIHRoaXMud29ya2Zsb3dNYW5hZ2VkID0gZmllbGRJbmZvLndvcmtmbG93TWFuYWdlZDtcclxuICAgICAgICB0aGlzLndvcmtmbG93Q2FzY2FkaW5nRmllbGQgPSBmaWVsZEluZm8ud29ya2Zsb3dDYXNjYWRpbmdGaWVsZDtcclxuICAgICAgICB0aGlzLnZpc2libGUgPSBmaWVsZEluZm8udmlzaWJsZSA9PT0gdW5kZWZpbmVkIHx8IGZpZWxkSW5mby52aXNpYmxlO1xyXG4gICAgICAgIHRoaXMuYXR0YWNobWVudFR5cGUgPSBmaWVsZEluZm8uYXR0YWNobWVudFR5cGU7XHJcbiAgICAgICAgdGhpcy5sb29rdXBGaWx0ZXJMaXN0ID0gZmllbGRJbmZvLmxvb2t1cEZpbHRlckxpc3Q7XHJcbiAgICAgICAgdGhpcy5leHRyYUxvb2t1cHNDb2x1bW5zID0gZmllbGRJbmZvLmV4dHJhTG9va3Vwc0NvbHVtbnM7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5Q29sdW1uID0gZmllbGRJbmZvLmRpc3BsYXlDb2x1bW47XHJcbiAgICAgICAgdGhpcy50ZXh0Rm9ybWF0ID0gZmllbGRJbmZvLnRleHRGb3JtYXQ7XHJcbiAgICAgICAgdGhpcy5idXR0b25UeXBlID0gZmllbGRJbmZvLmJ1dHRvblR5cGU7XHJcbiAgICAgICAgdGhpcy5oaWRlRmlsZXMgPSBmaWVsZEluZm8uaGlkZUZpbGVzO1xyXG4gICAgICAgIHRoaXMuYmVoYXZpb3JhbE5hbWUgPSBmaWVsZEluZm8uYmVoYXZpb3JhbE5hbWU7XHJcbiAgICAgICAgdGhpcy5mbGF0dGVuQnlTdWJBdHRyaWJ1dGUgPSBmaWVsZEluZm8uZmxhdHRlbkJ5U3ViQXR0cmlidXRlO1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gZmllbGRJbmZvLmRlZmF1bHRWYWx1ZTtcclxuICAgICAgICB0aGlzLnNlYXJjaEF0dHJpYnV0ZSA9IGZpZWxkSW5mby5zZWFyY2hBdHRyaWJ1dGUgfHwgdGhpcy5wcm9wZXJ0eTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlcyA9IGZpZWxkSW5mby52YWxpZGF0aW9uTWVzc2FnZXM7XHJcbiAgICAgICAgdGhpcy5oaWRlTGFiZWwgPSBmaWVsZEluZm8uaGlkZUxhYmVsO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoT3BlcmF0b3IgPSBmaWVsZEluZm8uc2VhcmNoT3BlcmF0b3IgfHwgJ0VRVUFMUyc7XHJcbiAgICAgICAgdGhpcy5zaG93U2VhcmNoSWNvbiA9IGZpZWxkSW5mby5zaG93U2VhcmNoSWNvbjtcclxuICAgICAgICB0aGlzLm11bHRpTGV2ZWxTZWFyY2hFbmFibGUgPSBmaWVsZEluZm8ubXVsdGlMZXZlbFNlYXJjaEVuYWJsZTtcclxuICAgICAgICB0aGlzLm1heERlY2ltYWxzID0gZmllbGRJbmZvLm1heERlY2ltYWxzID8/IDEwO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtaW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludm9pY2VxL3VpLWxpYi9zcmMvbGliL2Jhc2UtbW9kZWwvZmllbGQtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sU0FBUztJQXlEcEIsWUFBWSxTQUFvQjtRQXhEOUIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixtQkFBYyxHQUFZLEVBQUUsQ0FBQztRQUU3QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFNBQUksR0FBNFosTUFBTSxDQUFDO1FBRXZhLGFBQVEsR0FBYSxLQUFLLENBQUM7UUFFM0IsVUFBSyxHQUFZLEVBQUUsQ0FBQztRQWlCcEIsY0FBUyxHQUFhLEtBQUssQ0FBQztRQUc1QixZQUFPLEdBQWEsSUFBSSxDQUFDO1FBcUJ6QiwyQkFBc0IsR0FBYSxLQUFLLENBQUM7UUFRckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDO1FBQ25DLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDLGNBQWMsQ0FBQztRQUMvQyxJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFDbkMsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUM1RixJQUFJLENBQUMsR0FBRyxHQUFHLFNB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QWMsR0FBRyxTQUFTLENBQUMsY0FBYyxDQUFDO1FBQy9DLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxTQUFTLENBQUMsc0JBQXNCLENBQUM7UUFDL0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLElBQUksR0FBRyxDQUFDO1FBQzVDLElBQUksQ0FBQywyQkFBMkIsR0FBRyxTQUFTLENBQUMsMkJBQTJCLENBQUM7UUFDekUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQztJQUMvRCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1ZhbGlkYXRvckZufSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gXCIuL2ZpbHRlci5tb2RlbFwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpZWxkSW5mbyB7XHJcbiAgICBwcm9wZXJ0eTogc3RyaW5nID0gXCJcIjtcclxuICAgIHRhcmdldFByb3BlcnR5Pzogc3RyaW5nID0gXCJcIjtcclxuICAgIHJvdzogbnVtYmVyO1xyXG4gICAgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHR5cGU6ICd0ZXh0JyB8ICdhbW91bnQnIHwnY29sb3ItcGlja2VyJyB8ICdjdXJyZW5jeScgfCAnZGF0ZScgfCAnbnVtYmVyJyB8ICdzZXF1ZW5jZScgfCAnbGlzdCcgfCdsb29rdXAnfCAnbXVsdGktc2VsZWN0JyB8ICdwYXNzd29yZCd8ICdyaWNoLXRleHQnfCdyYWRpby1idXR0b24nfCAncGhvbmUtbnVtYmVyJ3wgJ2liYW4tdGV4dCd8J2NoZWNrYm94JyB8J3RleHRhcmVhJyB8J2J1dHRvbid8J3NwYWNlcicgfCAnYXR0YWNobWVudCd8ICdzZWN0aW9uLXRpdGxlJ3wgJ2NoaXAtbGlzdCcgfCd0aW1lJyB8ICdkaXZpZGVyJyB8ICdoeXBlci10ZXh0JyB8J3N0YXRlVHlwZSd8J3N0YXR1cycgfCAneWVhcicgfCAnZXF1YXRpb24tYnVpbGRlcid8ICd0b2dnbGUnfCAnYmlnZGVjaW1hbCcgfCAnbXVsdGktc3RhdGUtY2hlY2tib3gnID0gJ3RleHQnO1xyXG4gICAgdGV4dEZvcm1hdD86ICdqc29uJztcclxuICAgIHJlYWRvbmx5PzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgdmlld29ubHk/OiBib29sZWFuIDtcclxuICAgIGxhYmVsPzogc3RyaW5nID0gJyc7XHJcbiAgICBjdXJyZW5jeT86IHN0cmluZztcclxuICAgIGxvb2t1cEFwaVBhdGg/OiBzdHJpbmc7XHJcbiAgICBtdWx0aT86Ym9vbGVhbjtcclxuICAgIHN1cHBvcnRlZFR5cGVzPzpzdHJpbmc7XHJcbiAgICBjYXNjYWRlZEJ5Pzogc3RyaW5nO1xyXG4gICAgY2FzY2FkZWRCeVByb3BlcnR5Pzogc3RyaW5nO1xyXG4gICAgcGF0aFBhcmFtcz86IHN0cmluZztcclxuICAgIGxpc3RPcHRpb25zPzogYW55W107XHJcbiAgICBvcGVyYXRvcnM/OiBhbnlbXTtcclxuICAgIGZpZWxkc0FwaT86IHN0cmluZztcclxuICAgIHJlcG9ydEZpbHRlcj86c3RyaW5nO1xyXG4gICAgdXBkYXRlT25seT86IGJvb2xlYW47XHJcbiAgICBmaWVsZFNpemUgPzogbnVtYmVyICA7XHJcbiAgICBpbmNsdWRlQWxsT3B0aW9uPzogYm9vbGVhbjtcclxuICAgIGRlZmF1bHRMaXN0T3B0aW9uPzogYW55O1xyXG4gICAgYWNjZXB0TmV3SXRlbT86IGJvb2xlYW47XHJcbiAgICB0cmFuc2xhdGU/OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICB2YWxpZGF0b3JzPzogVmFsaWRhdG9yRm5bXTtcclxuICAgIHBsYWNlaG9sZGVyPzogYW55O1xyXG4gICAgdmlzaWJsZT86IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgcGF0dGVybj86IHN0cmluZztcclxuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICAgIGFkdmFuY2VkRmlsdGVyPzogYm9vbGVhbjtcclxuICAgIGZpbHRlck9wZXJhdG9yPzogJ0dSRUFURVJfVEhBTl9FUVVBTCd8J0dSRUFURVJfVEhBTid8ICdMRVNTX1RIQU4nfCdMRVNTX1RIQU5fRVFVQUwnfCAnRVFVQUxTJ3wgJ0xJS0UnfCAnTk9UX0VRJ3wgJ0lOJyA7XHJcbiAgICB3b3JrZmxvd01hbmFnZWQ/OiBib29sZWFuO1xyXG4gICAgd29ya2Zsb3dDYXNjYWRpbmdGaWVsZD86IHN0cmluZztcclxuICAgIGF0dGFjaG1lbnRUeXBlPzogc3RyaW5nO1xyXG4gICAgbG9va3VwRmlsdGVyTGlzdD86IEZpbHRlcltdO1xyXG4gICAgYnV0dG9uVHlwZT86IHN0cmluZztcclxuICAgIGhpZGVGaWxlcz86IGJvb2xlYW47XHJcbiAgICBiZWhhdmlvcmFsTmFtZT86IHN0cmluZztcclxuICAgIGZsYXR0ZW5CeVN1YkF0dHJpYnV0ZT86IHN0cmluZztcclxuICAgIGRlZmF1bHRWYWx1ZT86YW55O1xyXG4gICAgZXh0cmFMb29rdXBzQ29sdW1ucz86IHN0cmluZ1tdO1xyXG4gICAgZGlzcGxheUNvbHVtbj86IHN0cmluZztcclxuICAgIHNlYXJjaEF0dHJpYnV0ZT86c3RyaW5nO1xyXG4gICAgdmFsaWRhdGlvbk1lc3NhZ2VzPzogYW55O1xyXG4gICAgaGlkZUxhYmVsPzpib29sZWFuO1xyXG4gICAgc2VhcmNoT3BlcmF0b3I/OlwiR1JFQVRFUl9USEFOX0VRVUFMXCIgfCBcIkdSRUFURVJfVEhBTlwiIHwgXCJMRVNTX1RIQU5cIiB8IFwiTEVTU19USEFOX0VRVUFMXCIgfCBcIkVRVUFMU1wiIHwgXCJMSUtFXCIgfCBcIk5PVF9FUVwiIHwgXCJJTlwiIHwgXCJOT1RfTlVMTFwiO1xyXG4gICAgc2hvd1NlYXJjaEljb24/OiBib29sZWFuO1xyXG4gICAgbXVsdGlMZXZlbFNlYXJjaEVuYWJsZT86IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIG1heERlY2ltYWxzPzogbnVtYmVyIDtcclxuICAgIGVtcHR5UmVhZG9ubHlQbGFjZWhvbGRlcktleT86IHN0cmluZztcclxuICAgIG1heExlbmd0aD86IG51bWJlciA7XHJcbiAgICByZWFkb25seURhdGVEaXNwbGF5PzogJ2RhdGUnIHwgJ2RhdGV0aW1lJztcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKGZpZWxkSW5mbzogRmllbGRJbmZvKSB7XHJcbiAgICAgICAgdGhpcy5wcm9wZXJ0eSA9IGZpZWxkSW5mby5wcm9wZXJ0eTtcclxuICAgICAgICB0aGlzLnRhcmdldFByb3BlcnR5ID0gZmllbGRJbmZvLnRhcmdldFByb3BlcnR5O1xyXG4gICAgICAgIHRoaXMucmVxdWlyZWQgPSBmaWVsZEluZm8ucmVxdWlyZWQ7XHJcbiAgICAgICAgdGhpcy50eXBlID0gZmllbGRJbmZvLnR5cGU7XHJcbiAgICAgICAgdGhpcy5yZWFkb25seSA9IGZpZWxkSW5mby5yZWFkb25seTtcclxuICAgICAgICB0aGlzLmxhYmVsID0gZmllbGRJbmZvLmxhYmVsO1xyXG4gICAgICAgIHRoaXMuZmllbGRTaXplID0gZmllbGRJbmZvLmZpZWxkU2l6ZTtcclxuICAgICAgICB0aGlzLmxvb2t1cEFwaVBhdGggPSBmaWVsZEluZm8ubG9va3VwQXBpUGF0aCA/IGZpZWxkSW5mby5sb29rdXBBcGlQYXRoIDogZmllbGRJbmZvLnByb3BlcnR5O1xyXG4gICAgICAgIHRoaXMucm93ID0gZmllbGRJbmZvLnJvdztcclxuICAgICAgICB0aGlzLnN1cHBvcnRlZFR5cGVzID0gZmllbGRJbmZvLnN1cHBvcnRlZFR5cGVzO1xyXG4gICAgICAgIHRoaXMubGlzdE9wdGlvbnMgPSBmaWVsZEluZm8ubGlzdE9wdGlvbnM7XHJcbiAgICAgICAgdGhpcy5wYXRoUGFyYW1zID0gZmllbGRJbmZvLnBhdGhQYXJhbXM7XHJcbiAgICAgICAgdGhpcy52aWV3b25seSA9IGZpZWxkSW5mby52aWV3b25seTtcclxuICAgICAgICB0aGlzLm11bHRpID0gZmllbGRJbmZvLm11bHRpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlT25seSA9IGZpZWxkSW5mby51cGRhdGVPbmx5O1xyXG4gICAgICAgIHRoaXMuaW5jbHVkZUFsbE9wdGlvbiA9IGZpZWxkSW5mby5pbmNsdWRlQWxsT3B0aW9uO1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdExpc3RPcHRpb24gPSBmaWVsZEluZm8uZGVmYXVsdExpc3RPcHRpb247XHJcbiAgICAgICAgdGhpcy5hY2NlcHROZXdJdGVtID0gZmllbGRJbmZvLmFjY2VwdE5ld0l0ZW07XHJcbiAgICAgICAgdGhpcy5jYXNjYWRlZEJ5ID0gZmllbGRJbmZvLmNhc2NhZGVkQnk7XHJcbiAgICAgICAgdGhpcy5jYXNjYWRlZEJ5UHJvcGVydHkgPSBmaWVsZEluZm8uY2FzY2FkZWRCeVByb3BlcnR5ID8gZmllbGRJbmZvLmNhc2NhZGVkQnlQcm9wZXJ0eSA6ICBmaWVsZEluZm8uY2FzY2FkZWRCeTtcclxuICAgICAgICB0aGlzLmN1cnJlbmN5ID0gZmllbGRJbmZvLmN1cnJlbmN5O1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlID0gZmllbGRJbmZvLnRyYW5zbGF0ZTtcclxuICAgICAgICB0aGlzLmFkdmFuY2VkRmlsdGVyID0gZmllbGRJbmZvLmFkdmFuY2VkRmlsdGVyO1xyXG4gICAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSBmaWVsZEluZm8ucGxhY2Vob2xkZXI7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0b3JzID0gZmllbGRJbmZvLnZhbGlkYXRvcnM7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJPcGVyYXRvciA9IGZpZWxkSW5mby5maWx0ZXJPcGVyYXRvcjtcclxuICAgICAgICB0aGlzLnBhdHRlcm4gPSBmaWVsZEluZm8ucGF0dGVybjtcclxuICAgICAgICB0aGlzLndvcmtmbG93TWFuYWdlZCA9IGZpZWxkSW5mby53b3JrZmxvd01hbmFnZWQ7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvd0Nhc2NhZGluZ0ZpZWxkID0gZmllbGRJbmZvLndvcmtmbG93Q2FzY2FkaW5nRmllbGQ7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gZmllbGRJbmZvLnZpc2libGUgPT09IHVuZGVmaW5lZCB8fCBmaWVsZEluZm8udmlzaWJsZTtcclxuICAgICAgICB0aGlzLmF0dGFjaG1lbnRUeXBlID0gZmllbGRJbmZvLmF0dGFjaG1lbnRUeXBlO1xyXG4gICAgICAgIHRoaXMubG9va3VwRmlsdGVyTGlzdCA9IGZpZWxkSW5mby5sb29rdXBGaWx0ZXJMaXN0O1xyXG4gICAgICAgIHRoaXMuZXh0cmFMb29rdXBzQ29sdW1ucyA9IGZpZWxkSW5mby5leHRyYUxvb2t1cHNDb2x1bW5zO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheUNvbHVtbiA9IGZpZWxkSW5mby5kaXNwbGF5Q29sdW1uO1xyXG4gICAgICAgIHRoaXMudGV4dEZvcm1hdCA9IGZpZWxkSW5mby50ZXh0Rm9ybWF0O1xyXG4gICAgICAgIHRoaXMuYnV0dG9uVHlwZSA9IGZpZWxkSW5mby5idXR0b25UeXBlO1xyXG4gICAgICAgIHRoaXMuaGlkZUZpbGVzID0gZmllbGRJbmZvLmhpZGVGaWxlcztcclxuICAgICAgICB0aGlzLmJlaGF2aW9yYWxOYW1lID0gZmllbGRJbmZvLmJlaGF2aW9yYWxOYW1lO1xyXG4gICAgICAgIHRoaXMuZmxhdHRlbkJ5U3ViQXR0cmlidXRlID0gZmllbGRJbmZvLmZsYXR0ZW5CeVN1YkF0dHJpYnV0ZTtcclxuICAgICAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IGZpZWxkSW5mby5kZWZhdWx0VmFsdWU7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hBdHRyaWJ1dGUgPSBmaWVsZEluZm8uc2VhcmNoQXR0cmlidXRlIHx8IHRoaXMucHJvcGVydHk7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZXMgPSBmaWVsZEluZm8udmFsaWRhdGlvbk1lc3NhZ2VzO1xyXG4gICAgICAgIHRoaXMuaGlkZUxhYmVsID0gZmllbGRJbmZvLmhpZGVMYWJlbDtcclxuICAgICAgICB0aGlzLnNlYXJjaE9wZXJhdG9yID0gZmllbGRJbmZvLnNlYXJjaE9wZXJhdG9yIHx8ICdFUVVBTFMnO1xyXG4gICAgICAgIHRoaXMuc2hvd1NlYXJjaEljb24gPSBmaWVsZEluZm8uc2hvd1NlYXJjaEljb247XHJcbiAgICAgICAgdGhpcy5tdWx0aUxldmVsU2VhcmNoRW5hYmxlID0gZmllbGRJbmZvLm11bHRpTGV2ZWxTZWFyY2hFbmFibGU7XHJcbiAgICAgICAgdGhpcy5tYXhEZWNpbWFscyA9IGZpZWxkSW5mby5tYXhEZWNpbWFscyA/PyAxMDtcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9IGZpZWxkSW5mby5tYXhMZW5ndGggPz8gMTAwO1xyXG4gICAgICAgIHRoaXMuZW1wdHlSZWFkb25seVBsYWNlaG9sZGVyS2V5ID0gZmllbGRJbmZvLmVtcHR5UmVhZG9ubHlQbGFjZWhvbGRlcktleTtcclxuICAgICAgICB0aGlzLnJlYWRvbmx5RGF0ZURpc3BsYXkgPSBmaWVsZEluZm8ucmVhZG9ubHlEYXRlRGlzcGxheTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export class ResponseEnvelop {
|
|
2
2
|
constructor(responseEnvelop) {
|
|
3
3
|
this.valid = responseEnvelop.valid;
|
|
4
|
-
this.
|
|
4
|
+
this.messages = responseEnvelop.messages;
|
|
5
5
|
this.body = responseEnvelop.body;
|
|
6
6
|
this.pagesCount = responseEnvelop.pagesCount;
|
|
7
7
|
this.totalSize = responseEnvelop.totalSize;
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UtZW52ZWxvcC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ludm9pY2VxL3VpLWxpYi9zcmMvbGliL2Jhc2UtbW9kZWwvcmVzcG9uc2UtZW52ZWxvcC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sZUFBZTtJQU8xQixZQUFZLGVBQStCO1FBQ3pDLElBQUksQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxVQUFVLEdBQUcsZUFBZSxDQUFDLFVBQVUsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUM7SUFDN0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFJlc3BvbnNlRW52ZWxvcCB7XHJcbiAgdmFsaWQ6IGJvb2xlYW47XHJcbiAgbWVzc2FnZXM6IHN0cmluZ1tdO1xyXG4gIGJvZHk6IGFueTtcclxuICBwYWdlc0NvdW50OiBudW1iZXI7XHJcbiAgdG90YWxTaXplOiBudW1iZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHJlc3BvbnNlRW52ZWxvcDpSZXNwb25zZUVudmVsb3ApIHtcclxuICAgIHRoaXMudmFsaWQgPSByZXNwb25zZUVudmVsb3AudmFsaWQ7XHJcbiAgICB0aGlzLm1lc3NhZ2VzID0gcmVzcG9uc2VFbnZlbG9wLm1lc3NhZ2VzO1xyXG4gICAgdGhpcy5ib2R5ID0gcmVzcG9uc2VFbnZlbG9wLmJvZHk7XHJcbiAgICB0aGlzLnBhZ2VzQ291bnQgPSByZXNwb25zZUVudmVsb3AucGFnZXNDb3VudDtcclxuICAgIHRoaXMudG90YWxTaXplID0gcmVzcG9uc2VFbnZlbG9wLnRvdGFsU2l6ZTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -257,7 +257,7 @@ export class FilterBuilderComponent {
|
|
|
257
257
|
};
|
|
258
258
|
}
|
|
259
259
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FilterBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
260
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FilterBuilderComponent, isStandalone: true, selector: "app-filter-builder", inputs: { columns: "columns", isChecked: "isChecked", filterFields: "filterFields", pageInfo: "pageInfo", pendingFilters: "pendingFilters", showExportButton: "showExportButton" }, outputs: { filterInformation: "filterInformation", isEmpty: "isEmpty", applyFilter: "applyFilter", sortByClicked: "sortByClicked", exportClicked: "exportClicked" }, host: { listeners: { "keydown": "onKeyDown($event)" } }, ngImport: i0, template: "<div class=\"main-filter-builder\">\r\n\r\n <!-- Desktop View -->\r\n <div class=\"filterForm desktop-view\">\r\n <div class=\"filterForm__row\">\r\n <div class=\"filterForm__col\">\r\n <app-field-filter\r\n [editable]=\"isEditable()\"\r\n [filter]=\"filter\"\r\n [pageInfo]=\"pageInfo\"\r\n *ngIf=\"isEditable()\"\r\n [filterFields]=\"filterFields\"\r\n [filterResetNonce]=\"filterResetNonce\"\r\n (filterFieldInformation)=\"formChanges($event)\"\r\n class=\"filterForm__filed-filter\"\r\n >\r\n </app-field-filter>\r\n </div>\r\n <div class=\"button-group\">\r\n <button\r\n mat-flat-button\r\n class=\"btn-apply-filter\"\r\n type=\"button\"\r\n (click)=\"onClearFilters()\">\r\n <div class=\"button-text\">\r\n <mat-icon>clear_all</mat-icon>\r\n <span>{{ 'FILTER-BUILDER.clearFilters' | translate }}</span>\r\n </div>\r\n </button>\r\n <button\r\n mat-flat-button\r\n class=\"btn-apply-filter\"\r\n type=\"button\"\r\n (click)=\"onApplyFilter()\">\r\n <div class=\"button-text\">\r\n <mat-icon>filter_list</mat-icon>\r\n <span>{{ 'FILTER-BUILDER.applyFilter' | translate }}</span>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Mobile View -->\r\n <div class=\"mobile-view\">\r\n <!-- Mobile Row 1: Search Field and Export Button -->\r\n <div class=\"mobile-search-row\">\r\n <div class=\"mobile-search-field\">\r\n <app-field-filter\r\n [editable]=\"isEditable()\"\r\n [filter]=\"filter\"\r\n [pageInfo]=\"pageInfo\"\r\n *ngIf=\"isEditable()\"\r\n [filterFields]=\"filterFields\"\r\n [filterResetNonce]=\"filterResetNonce\"\r\n (filterFieldInformation)=\"formChanges($event)\"\r\n class=\"mobile-field-filter\"\r\n >\r\n </app-field-filter>\r\n </div>\r\n <button\r\n *ngIf=\"showExportButton\"\r\n mat-flat-button\r\n class=\"btn-export-mobile\"\r\n [matMenuTriggerFor]=\"exportMenu\">\r\n <div class=\"button-content\">\r\n <mat-icon>file_export</mat-icon>\r\n <mat-icon class=\"arrow-icon\">keyboard_arrow_down</mat-icon>\r\n </div>\r\n </button>\r\n <mat-menu #exportMenu=\"matMenu\">\r\n <button mat-menu-item (click)=\"onExportClick('pdf')\">PDF</button>\r\n <button mat-menu-item (click)=\"onExportClick('xlsx')\">Excel</button>\r\n <button mat-menu-item (click)=\"onExportClick('csv')\">CSV</button>\r\n </mat-menu>\r\n </div>\r\n\r\n <!-- Mobile Row 2: Filter By and Sort By Buttons -->\r\n <div class=\"mobile-filter-row\">\r\n <button\r\n mat-flat-button\r\n class=\"btn-filter-by btn-filter-by--icon-only\"\r\n type=\"button\"\r\n (click)=\"onClearFilters()\"\r\n [attr.aria-label]=\"'FILTER-BUILDER.clearFilters' | translate\">\r\n <div class=\"button-content\">\r\n <mat-icon>clear_all</mat-icon>\r\n </div>\r\n </button>\r\n <button\r\n mat-flat-button\r\n class=\"btn-filter-by\"\r\n type=\"button\"\r\n (click)=\"onApplyFilter()\">\r\n <div class=\"button-content\">\r\n <mat-icon>filter_list</mat-icon>\r\n <span>{{ 'FILTER-BUILDER.filterBy' | translate }}</span>\r\n </div>\r\n </button>\r\n <button\r\n mat-flat-button\r\n class=\"btn-sort-by\"\r\n type=\"button\"\r\n [matMenuTriggerFor]=\"sortMenu\">\r\n <div class=\"button-content\">\r\n <mat-icon>unfold_more</mat-icon>\r\n <span>{{ 'FILTER-BUILDER.sortBy' | translate }}</span>\r\n <mat-icon class=\"arrow-icon\">keyboard_arrow_down</mat-icon>\r\n </div>\r\n </button>\r\n <mat-menu #sortMenu=\"matMenu\">\r\n <button\r\n *ngFor=\"let column of getSortableColumns()\"\r\n mat-menu-item\r\n (click)=\"onSortByClick(column.property)\">\r\n {{ labelKey(column) | translate }}\r\n </button>\r\n <button\r\n *ngIf=\"getSortableColumns().length === 0\"\r\n mat-menu-item\r\n disabled>\r\n {{ 'FILTER-BUILDER.noSortableColumns' | translate }}\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </div>\r\n\r\n<!-- <div *ngIf=\"checkIsEmpty()\" class=\"line-top\">-->\r\n<!-- <mat-divider></mat-divider>-->\r\n<!-- </div>-->\r\n\r\n<!-- <div class=\"line-bottom\">-->\r\n<!-- <mat-divider></mat-divider>-->\r\n<!-- </div>-->\r\n\r\n<!-- <div class=\"action\">-->\r\n<!-- <button class=\"btn-none-background-primary action__clear\" mat-button (click)=\"deleteAll()\">-->\r\n<!-- {{'FILTER-BUILDER.clearAllFilters' | translate}}-->\r\n<!-- </button>-->\r\n<!-- <button class=\"btn-background-primary\" mat-button (click)=\"doSearch()\">-->\r\n<!-- {{'FILTER-BUILDER.search' | translate}}-->\r\n<!-- </button>-->\r\n<!-- </div>-->\r\n</div>\r\n", styles: [".main-filter-builder{width:100%;max-width:100%;box-sizing:border-box;flex:1 1 auto;min-width:0;display:flex;align-items:center;overflow:visible;min-height:48px;margin-bottom:7px}.main-filter-builder .filterForm{display:flex;width:100%;max-width:100%;box-sizing:border-box;align-items:center}.main-filter-builder .filterForm__row{display:flex;align-items:center;gap:16px;margin:0;flex-wrap:nowrap;width:100%;max-width:100%;box-sizing:border-box;min-width:0}.main-filter-builder .filterForm__col{flex:1 1 auto;min-width:0;max-width:none;width:auto}.main-filter-builder .filterForm__filed-filter{margin:0!important}.main-filter-builder .filterForm__filed-filter ::ng-deep .main-form-canvas{display:flex!important;flex-direction:row!important;align-items:center!important;margin-top:0!important;width:100%!important;flex-wrap:nowrap!important;gap:16px!important}.main-filter-builder .filterForm__filed-filter ::ng-deep .form-wrapper{display:flex!important;flex-direction:row!important;align-items:center!important;flex:1 1 auto!important;width:100%!important;min-width:0!important}.main-filter-builder .filterForm__filed-filter ::ng-deep .form-content{width:100%!important;display:flex!important;flex-direction:row!important;align-items:center!important}.main-filter-builder .filterForm__filed-filter ::ng-deep .form-row{display:flex!important;gap:16px;align-items:center;flex-wrap:nowrap;width:100%!important}.main-filter-builder .filterForm__filed-filter ::ng-deep .form-column{flex:0 0 auto;width:100%}.main-filter-builder .filterForm__filed-filter ::ng-deep .row-container{display:flex;gap:16px;align-items:center;flex-wrap:nowrap;width:auto}.main-filter-builder .filterForm__filed-filter ::ng-deep .field-column{flex:0 0 auto;width:auto}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field{width:auto!important;margin:0!important;overflow:visible!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-infix{min-height:44px!important;padding:0 16px!important;display:flex!important;align-items:center!important;border-top:none!important;overflow:visible!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-input-control{height:44px!important;font-weight:300!important;font-size:16px!important;line-height:1.2!important;color:#000!important;overflow:visible!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-outline{border:1px solid #b7b7b7!important;border-radius:8px!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-prefix{padding-right:4px!important;display:flex!important;align-items:center!important;justify-content:center!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-prefix mat-icon{font-size:24px!important;width:10px!important;height:28px!important;color:#0d4261!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-suffix{padding-left:4px!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-suffix mat-icon{font-size:24px!important;width:24px!important;height:24px!important;color:#0d4261!important;margin-top:6px}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field input::placeholder{color:#888!important;font-weight:300!important;font-size:16px!important;line-height:1.2!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-select{font-weight:300!important;font-size:16px!important;line-height:1.2!important;color:#888!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-datepicker-toggle .mat-icon-button{width:24px!important;height:24px!important;padding:0!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-datepicker-toggle .mat-icon-button mat-icon{font-size:24px!important;width:24px!important;height:24px!important;color:#0d4261}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{height:0!important;min-height:0!important;margin:0!important;padding:0!important}.main-filter-builder .filterForm .action-filter{flex:0 0 auto}.main-filter-builder .filterForm .action-filter .edit-design{margin:auto}.main-filter-builder .filterForm .action-filter .edit-design__add-button{background:#fff!important;color:var(--primary-color)!important;height:48px;width:48px;border-radius:5px;border:#D9D9D9 solid 1px;margin:30px 0 0}.main-filter-builder .filterForm .action-filter .edit-design__add-button__add-button-text{margin:0 5px}.main-filter-builder .line-top mat-divider{width:98%;margin:0 auto 10px}.main-filter-builder .advanced-button{display:flex;flex-wrap:wrap;gap:8px}.main-filter-builder .advanced-button .view{background:#e3fbff!important;border:1px solid #00ABC8!important;border-radius:6px!important;margin:10px 0;padding:6px 8px;height:32px;margin-top:0!important;display:flex;align-items:center;gap:6px}.main-filter-builder .advanced-button .view__filed{margin-top:-3px;display:inline-block;color:#1c355e;font-weight:400;font-size:14px;line-height:16px;font-style:normal;text-align:center!important}.main-filter-builder .advanced-button .view__close{margin-left:6px}.main-filter-builder .advanced-button .view__close__icon{color:#1c355e;font-size:14px;cursor:pointer;display:inline-block}.main-filter-builder .line-bottom mat-divider{width:98%;margin:0 auto 10px}.main-filter-builder .action{justify-content:end;padding:5px 10px 10px}.main-filter-builder .action__clear{border:none!important;margin:0 5px}@media (max-width: 599.98px){.main-filter-builder .filterForm__row{flex-wrap:wrap}.main-filter-builder .filterForm .action-filter .edit-design__add-button{width:100%;height:45px;margin:5px 5px 10px}}@media (min-width: 600px){.main-filter-builder .add-text-responsive{display:none}}.main-filter-builder .button-group{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-end;gap:8px!important;flex-shrink:0!important;flex-grow:0!important;flex-basis:auto!important;height:46px!important;white-space:nowrap!important;min-width:0!important;max-width:none!important}.main-filter-builder .btn-apply-filter{background:#fff!important;border:1px solid #3e627b!important;border-radius:8px!important;height:46px!important;min-width:120px!important;padding:0 16px!important;box-shadow:none!important}.main-filter-builder .btn-apply-filter .button-text{display:flex;align-items:center;justify-content:center;gap:4px;width:100%}.main-filter-builder .btn-apply-filter mat-icon{font-size:24px;width:24px;height:30px;color:#0d4261}.main-filter-builder .btn-apply-filter span{font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#0d4261;white-space:nowrap}.main-filter-builder .btn-apply-filter:hover{background:#fafafa!important}.main-filter-builder .mobile-view{display:none;flex-direction:column;gap:8px;width:100%;box-sizing:border-box}.main-filter-builder .mobile-filter-row{display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box}.main-filter-builder .btn-filter-by,.main-filter-builder .btn-sort-by{background:#fff!important;border:1px solid #3e627b!important;border-radius:8px!important;height:40px!important;flex:1 1 0!important;min-width:0!important;padding:0 16px!important;box-shadow:none!important;display:flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important}.main-filter-builder .btn-filter-by .button-content,.main-filter-builder .btn-sort-by .button-content{display:flex;align-items:center;justify-content:center;gap:4px;width:100%}.main-filter-builder .btn-filter-by mat-icon,.main-filter-builder .btn-sort-by mat-icon{font-size:24px;width:24px;height:28px;color:#0d4261}.main-filter-builder .btn-filter-by span,.main-filter-builder .btn-sort-by span{font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1;color:#0d4261;white-space:nowrap}.main-filter-builder .btn-filter-by:hover,.main-filter-builder .btn-sort-by:hover{background:#fafafa!important}.main-filter-builder .btn-sort-by{border:1px solid #0d4261!important}.main-filter-builder .btn-sort-by .sort-icons{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;height:24px;width:24px;flex-shrink:0}.main-filter-builder .btn-sort-by .sort-icons .sort-arrow-up,.main-filter-builder .btn-sort-by .sort-icons .sort-arrow-down{font-size:16px;width:16px;height:8px;line-height:8px;margin:0;color:#0d4261}.main-filter-builder .btn-sort-by .sort-icons .sort-arrow-up{margin-bottom:-2px}.main-filter-builder .btn-sort-by .sort-icons .sort-arrow-down{margin-top:-2px}.main-filter-builder .btn-sort-by .arrow-icon{font-size:16px;width:16px;height:16px;margin-left:auto}.main-filter-builder .btn-filter-by.btn-filter-by--icon-only{flex:0 0 44px!important;min-width:44px!important;max-width:48px!important;padding:0 6px!important}.main-filter-builder .mobile-search-row{display:flex;align-items:flex-start;gap:8px;width:100%;box-sizing:border-box}.main-filter-builder .mobile-search-field{flex:1;min-width:0;width:100%;max-width:none}.main-filter-builder .btn-export-mobile{background:transparent!important;border:none!important;border-radius:8px!important;height:40px!important;width:60px!important;padding:0!important;box-shadow:none!important;display:flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important;flex-shrink:0!important}.main-filter-builder .btn-export-mobile .button-content{display:flex;align-items:center;justify-content:center;gap:4px;width:100%}.main-filter-builder .btn-export-mobile mat-icon{font-size:24px;width:24px;height:24px;color:#0d4261}.main-filter-builder .btn-export-mobile .arrow-icon{font-size:16px;width:16px;height:16px}.main-filter-builder .btn-export-mobile:hover{background:#fafafa!important}.main-filter-builder .mobile-field-filter{margin:0!important;width:100%!important}.main-filter-builder .mobile-field-filter ::ng-deep .main-form-canvas{display:flex!important;flex-direction:row!important;align-items:center!important;margin-top:0!important;width:100%!important;flex-wrap:nowrap!important;gap:0!important}.main-filter-builder .mobile-field-filter ::ng-deep .form-wrapper{display:flex!important;flex-direction:row!important;align-items:center!important;flex:1 1 auto!important;width:100%!important;min-width:0!important}.main-filter-builder .mobile-field-filter ::ng-deep .form-content{width:100%!important;align-items:center!important}.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(input.mat-datepicker-input),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(.mat-datepicker-toggle),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(mat-datepicker){display:none!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field{width:100%!important;margin:0!important;overflow:visible!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(input.mat-datepicker-input),.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(.mat-datepicker-toggle),.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(mat-datepicker){display:none!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field .mat-mdc-form-field-infix{min-height:40px!important;padding:0 16px!important;display:flex!important;align-items:center!important;border-top:none!important;overflow:visible!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field .mat-mdc-form-field-input-control{height:40px!important;font-weight:300!important;font-size:16px!important;line-height:1.2!important;color:#000!important;overflow:visible!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field .mat-mdc-form-field-outline{border:1px solid #b7b7b7!important;border-radius:8px!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-prefix{padding-right:4px!important;display:flex!important;align-items:center!important;justify-content:center!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-prefix mat-icon{font-size:24px!important;width:24px!important;height:24px!important;color:#0d4261!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field input::placeholder{color:#888!important;font-weight:300!important;font-size:16px!important;line-height:1.2!important}@media (max-width: 768px){.main-filter-builder .desktop-view{display:none!important}.main-filter-builder .mobile-view{display:flex!important}.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(input.mat-datepicker-input),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(.mat-datepicker-toggle),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(mat-datepicker),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(mat-select){display:none!important}.main-filter-builder .mobile-field-filter ::ng-deep .field-column mat-form-field:has(input.mat-datepicker-input),.main-filter-builder .mobile-field-filter ::ng-deep .field-column mat-form-field:has(.mat-datepicker-toggle),.main-filter-builder .mobile-field-filter ::ng-deep .field-column mat-form-field:has(mat-datepicker),.main-filter-builder .mobile-field-filter ::ng-deep .field-column mat-form-field:has(mat-select){display:none!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(input.mat-datepicker-input),.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(.mat-datepicker-toggle),.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(mat-datepicker),.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(mat-select){display:none!important}}@media (min-width: 769px){.main-filter-builder .desktop-view{display:flex!important}.main-filter-builder .mobile-view{display:none!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FieldFilterComponent, selector: "app-field-filter", inputs: ["filter", "pageInfo", "filterFields", "item", "editable", "filterResetNonce"], outputs: ["selectedValue", "filterFieldInformation"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }] }); }
|
|
260
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FilterBuilderComponent, isStandalone: true, selector: "app-filter-builder", inputs: { columns: "columns", isChecked: "isChecked", filterFields: "filterFields", pageInfo: "pageInfo", pendingFilters: "pendingFilters", showExportButton: "showExportButton" }, outputs: { filterInformation: "filterInformation", isEmpty: "isEmpty", applyFilter: "applyFilter", sortByClicked: "sortByClicked", exportClicked: "exportClicked" }, host: { listeners: { "keydown": "onKeyDown($event)" } }, ngImport: i0, template: "<div class=\"main-filter-builder\">\r\n\r\n <!-- Desktop View -->\r\n <div class=\"filterForm desktop-view\">\r\n <div class=\"filterForm__row\">\r\n <div class=\"filterForm__col\">\r\n <app-field-filter\r\n [editable]=\"isEditable()\"\r\n [filter]=\"filter\"\r\n [pageInfo]=\"pageInfo\"\r\n *ngIf=\"isEditable()\"\r\n [filterFields]=\"filterFields\"\r\n [filterResetNonce]=\"filterResetNonce\"\r\n (filterFieldInformation)=\"formChanges($event)\"\r\n class=\"filterForm__filed-filter\"\r\n >\r\n </app-field-filter>\r\n </div>\r\n <div class=\"button-group\">\r\n <button\r\n mat-flat-button\r\n class=\"btn-apply-filter\"\r\n type=\"button\"\r\n (click)=\"onClearFilters()\">\r\n <div class=\"button-text\">\r\n <mat-icon>clear_all</mat-icon>\r\n <span>{{ 'FILTER-BUILDER.clearFilters' | translate }}</span>\r\n </div>\r\n </button>\r\n <button\r\n mat-flat-button\r\n class=\"btn-apply-filter\"\r\n type=\"button\"\r\n (click)=\"onApplyFilter()\">\r\n <div class=\"button-text\">\r\n <mat-icon>filter_list</mat-icon>\r\n <span>{{ 'FILTER-BUILDER.applyFilter' | translate }}</span>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Mobile View -->\r\n <div class=\"mobile-view\">\r\n <!-- Mobile Row 1: Search Field and Export Button -->\r\n <div class=\"mobile-search-row\">\r\n <div class=\"mobile-search-field\">\r\n <app-field-filter\r\n [editable]=\"isEditable()\"\r\n [filter]=\"filter\"\r\n [pageInfo]=\"pageInfo\"\r\n *ngIf=\"isEditable()\"\r\n [filterFields]=\"filterFields\"\r\n [filterResetNonce]=\"filterResetNonce\"\r\n (filterFieldInformation)=\"formChanges($event)\"\r\n class=\"mobile-field-filter\"\r\n >\r\n </app-field-filter>\r\n </div>\r\n <button\r\n *ngIf=\"showExportButton\"\r\n mat-flat-button\r\n class=\"btn-export-mobile\"\r\n [matMenuTriggerFor]=\"exportMenu\">\r\n <div class=\"button-content\">\r\n <mat-icon>file_export</mat-icon>\r\n <mat-icon class=\"arrow-icon\">keyboard_arrow_down</mat-icon>\r\n </div>\r\n </button>\r\n <mat-menu #exportMenu=\"matMenu\">\r\n <button mat-menu-item (click)=\"onExportClick('pdf')\">PDF</button>\r\n <button mat-menu-item (click)=\"onExportClick('xlsx')\">Excel</button>\r\n <button mat-menu-item (click)=\"onExportClick('csv')\">CSV</button>\r\n </mat-menu>\r\n </div>\r\n\r\n <!-- Mobile Row 2: Filter By and Sort By Buttons -->\r\n <div class=\"mobile-filter-row\">\r\n <button\r\n mat-flat-button\r\n class=\"btn-filter-by btn-filter-by--icon-only\"\r\n type=\"button\"\r\n (click)=\"onClearFilters()\"\r\n [attr.aria-label]=\"'FILTER-BUILDER.clearFilters' | translate\">\r\n <div class=\"button-content\">\r\n <mat-icon>delete_sweep</mat-icon>\r\n </div>\r\n </button>\r\n <button\r\n mat-flat-button\r\n class=\"btn-filter-by\"\r\n type=\"button\"\r\n (click)=\"onApplyFilter()\">\r\n <div class=\"button-content\">\r\n <mat-icon>filter_list</mat-icon>\r\n <span>{{ 'FILTER-BUILDER.applyFilter' | translate }}</span>\r\n </div>\r\n </button>\r\n <button\r\n mat-flat-button\r\n class=\"btn-sort-by\"\r\n type=\"button\"\r\n [matMenuTriggerFor]=\"sortMenu\">\r\n <div class=\"button-content\">\r\n <mat-icon>unfold_more</mat-icon>\r\n <span>{{ 'FILTER-BUILDER.sortBy' | translate }}</span>\r\n <mat-icon class=\"arrow-icon\">keyboard_arrow_down</mat-icon>\r\n </div>\r\n </button>\r\n <mat-menu #sortMenu=\"matMenu\">\r\n <button\r\n *ngFor=\"let column of getSortableColumns()\"\r\n mat-menu-item\r\n (click)=\"onSortByClick(column.property)\">\r\n {{ labelKey(column) | translate }}\r\n </button>\r\n <button\r\n *ngIf=\"getSortableColumns().length === 0\"\r\n mat-menu-item\r\n disabled>\r\n {{ 'FILTER-BUILDER.noSortableColumns' | translate }}\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </div>\r\n\r\n<!-- <div *ngIf=\"checkIsEmpty()\" class=\"line-top\">-->\r\n<!-- <mat-divider></mat-divider>-->\r\n<!-- </div>-->\r\n\r\n<!-- <div class=\"line-bottom\">-->\r\n<!-- <mat-divider></mat-divider>-->\r\n<!-- </div>-->\r\n\r\n<!-- <div class=\"action\">-->\r\n<!-- <button class=\"btn-none-background-primary action__clear\" mat-button (click)=\"deleteAll()\">-->\r\n<!-- {{'FILTER-BUILDER.clearAllFilters' | translate}}-->\r\n<!-- </button>-->\r\n<!-- <button class=\"btn-background-primary\" mat-button (click)=\"doSearch()\">-->\r\n<!-- {{'FILTER-BUILDER.search' | translate}}-->\r\n<!-- </button>-->\r\n<!-- </div>-->\r\n</div>\r\n", styles: [".main-filter-builder{width:100%;max-width:100%;box-sizing:border-box;flex:1 1 auto;min-width:0;display:flex;align-items:center;overflow:visible;min-height:48px;margin-bottom:7px}.main-filter-builder .filterForm{display:flex;width:100%;max-width:100%;box-sizing:border-box;align-items:center}.main-filter-builder .filterForm__row{display:flex;align-items:center;gap:16px;margin:0;flex-wrap:nowrap;width:100%;max-width:100%;box-sizing:border-box;min-width:0}.main-filter-builder .filterForm__col{flex:1 1 auto;min-width:0;max-width:none;width:auto}.main-filter-builder .filterForm__filed-filter{margin:0!important}.main-filter-builder .filterForm__filed-filter ::ng-deep .main-form-canvas{display:flex!important;flex-direction:row!important;align-items:center!important;margin-top:0!important;width:100%!important;flex-wrap:nowrap!important;gap:16px!important}.main-filter-builder .filterForm__filed-filter ::ng-deep .form-wrapper{display:flex!important;flex-direction:row!important;align-items:center!important;flex:1 1 auto!important;width:100%!important;min-width:0!important}.main-filter-builder .filterForm__filed-filter ::ng-deep .form-content{width:100%!important;display:flex!important;flex-direction:row!important;align-items:center!important}.main-filter-builder .filterForm__filed-filter ::ng-deep .form-row{display:flex!important;gap:16px;align-items:center;flex-wrap:nowrap;width:100%!important}.main-filter-builder .filterForm__filed-filter ::ng-deep .form-column{flex:0 0 auto;width:100%}.main-filter-builder .filterForm__filed-filter ::ng-deep .row-container{display:flex;gap:16px;align-items:center;flex-wrap:nowrap;width:auto}.main-filter-builder .filterForm__filed-filter ::ng-deep .field-column{flex:0 0 auto;width:auto}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field{width:auto!important;margin:0!important;overflow:visible!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-infix{min-height:44px!important;padding:0 16px!important;display:flex!important;align-items:center!important;border-top:none!important;overflow:visible!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-input-control{height:44px!important;font-weight:300!important;font-size:16px!important;line-height:1.2!important;color:#000!important;overflow:visible!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-outline{border:1px solid #b7b7b7!important;border-radius:8px!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-prefix{padding-right:4px!important;display:flex!important;align-items:center!important;justify-content:center!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-prefix mat-icon{font-size:24px!important;width:10px!important;height:28px!important;color:#0d4261!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-suffix{padding-left:4px!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-suffix mat-icon{font-size:24px!important;width:24px!important;height:24px!important;color:#0d4261!important;margin-top:6px}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field input::placeholder{color:#888!important;font-weight:300!important;font-size:16px!important;line-height:1.2!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-select{font-weight:300!important;font-size:16px!important;line-height:1.2!important;color:#888!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-datepicker-toggle .mat-icon-button{width:24px!important;height:24px!important;padding:0!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-datepicker-toggle .mat-icon-button mat-icon{font-size:24px!important;width:24px!important;height:24px!important;color:#0d4261}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{height:0!important;min-height:0!important;margin:0!important;padding:0!important}.main-filter-builder .filterForm .action-filter{flex:0 0 auto}.main-filter-builder .filterForm .action-filter .edit-design{margin:auto}.main-filter-builder .filterForm .action-filter .edit-design__add-button{background:#fff!important;color:var(--primary-color)!important;height:48px;width:48px;border-radius:5px;border:#D9D9D9 solid 1px;margin:30px 0 0}.main-filter-builder .filterForm .action-filter .edit-design__add-button__add-button-text{margin:0 5px}.main-filter-builder .line-top mat-divider{width:98%;margin:0 auto 10px}.main-filter-builder .advanced-button{display:flex;flex-wrap:wrap;gap:8px}.main-filter-builder .advanced-button .view{background:#e3fbff!important;border:1px solid #00ABC8!important;border-radius:6px!important;margin:10px 0;padding:6px 8px;height:32px;margin-top:0!important;display:flex;align-items:center;gap:6px}.main-filter-builder .advanced-button .view__filed{margin-top:-3px;display:inline-block;color:#1c355e;font-weight:400;font-size:14px;line-height:16px;font-style:normal;text-align:center!important}.main-filter-builder .advanced-button .view__close{margin-left:6px}.main-filter-builder .advanced-button .view__close__icon{color:#1c355e;font-size:14px;cursor:pointer;display:inline-block}.main-filter-builder .line-bottom mat-divider{width:98%;margin:0 auto 10px}.main-filter-builder .action{justify-content:end;padding:5px 10px 10px}.main-filter-builder .action__clear{border:none!important;margin:0 5px}@media (max-width: 599.98px){.main-filter-builder .filterForm__row{flex-wrap:wrap}.main-filter-builder .filterForm .action-filter .edit-design__add-button{width:100%;height:45px;margin:5px 5px 10px}}@media (min-width: 600px){.main-filter-builder .add-text-responsive{display:none}}.main-filter-builder .button-group{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-end;gap:8px!important;flex-shrink:0!important;flex-grow:0!important;flex-basis:auto!important;height:46px!important;white-space:nowrap!important;min-width:0!important;max-width:none!important}.main-filter-builder .btn-apply-filter{background:#fff!important;border:1px solid #3e627b!important;border-radius:8px!important;height:46px!important;min-width:120px!important;padding:0 16px!important;box-shadow:none!important}.main-filter-builder .btn-apply-filter .button-text{display:flex;align-items:center;justify-content:center;gap:4px;width:100%}.main-filter-builder .btn-apply-filter mat-icon{font-size:24px;width:24px;height:30px;color:#0d4261}.main-filter-builder .btn-apply-filter span{font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#0d4261;white-space:nowrap}.main-filter-builder .btn-apply-filter:hover{background:#fafafa!important}.main-filter-builder .mobile-view{display:none;flex-direction:column;gap:8px;width:100%;box-sizing:border-box}.main-filter-builder .mobile-filter-row{display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box}.main-filter-builder .btn-filter-by,.main-filter-builder .btn-sort-by{background:#fff!important;border:1px solid #3e627b!important;border-radius:8px!important;height:40px!important;flex:1 1 0!important;min-width:0!important;padding:0 16px!important;box-shadow:none!important;display:flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important}.main-filter-builder .btn-filter-by .button-content,.main-filter-builder .btn-sort-by .button-content{display:flex;align-items:center;justify-content:center;gap:4px;width:100%}.main-filter-builder .btn-filter-by mat-icon,.main-filter-builder .btn-sort-by mat-icon{font-size:24px;width:24px;height:28px;color:#0d4261}.main-filter-builder .btn-filter-by span,.main-filter-builder .btn-sort-by span{font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1;color:#0d4261;white-space:nowrap}.main-filter-builder .btn-filter-by:hover,.main-filter-builder .btn-sort-by:hover{background:#fafafa!important}.main-filter-builder .btn-sort-by{border:1px solid #0d4261!important}.main-filter-builder .btn-sort-by .sort-icons{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;height:24px;width:24px;flex-shrink:0}.main-filter-builder .btn-sort-by .sort-icons .sort-arrow-up,.main-filter-builder .btn-sort-by .sort-icons .sort-arrow-down{font-size:16px;width:16px;height:8px;line-height:8px;margin:0;color:#0d4261}.main-filter-builder .btn-sort-by .sort-icons .sort-arrow-up{margin-bottom:-2px}.main-filter-builder .btn-sort-by .sort-icons .sort-arrow-down{margin-top:-2px}.main-filter-builder .btn-sort-by .arrow-icon{font-size:16px;width:16px;height:16px;margin-left:auto}.main-filter-builder .btn-filter-by.btn-filter-by--icon-only{flex:0 0 44px!important;min-width:44px!important;max-width:48px!important;padding:0 6px!important}.main-filter-builder .mobile-search-row{display:flex;align-items:flex-start;gap:8px;width:100%;box-sizing:border-box}.main-filter-builder .mobile-search-field{flex:1;min-width:0;width:100%;max-width:none}.main-filter-builder .btn-export-mobile{background:transparent!important;border:none!important;border-radius:8px!important;height:40px!important;width:60px!important;padding:0!important;box-shadow:none!important;display:flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important;flex-shrink:0!important}.main-filter-builder .btn-export-mobile .button-content{display:flex;align-items:center;justify-content:center;gap:4px;width:100%}.main-filter-builder .btn-export-mobile mat-icon{font-size:24px;width:24px;height:24px;color:#0d4261}.main-filter-builder .btn-export-mobile .arrow-icon{font-size:16px;width:16px;height:16px}.main-filter-builder .btn-export-mobile:hover{background:#fafafa!important}.main-filter-builder .mobile-field-filter{margin:0!important;width:100%!important}.main-filter-builder .mobile-field-filter ::ng-deep .main-form-canvas{display:flex!important;flex-direction:row!important;align-items:center!important;margin-top:0!important;width:100%!important;flex-wrap:nowrap!important;gap:0!important}.main-filter-builder .mobile-field-filter ::ng-deep .form-wrapper{display:flex!important;flex-direction:row!important;align-items:center!important;flex:1 1 auto!important;width:100%!important;min-width:0!important}.main-filter-builder .mobile-field-filter ::ng-deep .form-content{width:100%!important;align-items:center!important}.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(input.mat-datepicker-input),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(.mat-datepicker-toggle),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(mat-datepicker),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(.multi-state-filter){display:none!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field{width:100%!important;margin:0!important;overflow:visible!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(input.mat-datepicker-input),.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(.mat-datepicker-toggle),.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(mat-datepicker){display:none!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field .mat-mdc-form-field-infix{min-height:40px!important;padding:0 16px!important;display:flex!important;align-items:center!important;border-top:none!important;overflow:visible!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field .mat-mdc-form-field-input-control{height:40px!important;font-weight:300!important;font-size:16px!important;line-height:1.2!important;color:#000!important;overflow:visible!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field .mat-mdc-form-field-outline{border:1px solid #b7b7b7!important;border-radius:8px!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-prefix{padding-right:4px!important;display:flex!important;align-items:center!important;justify-content:center!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-prefix mat-icon{font-size:24px!important;width:24px!important;height:24px!important;color:#0d4261!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field input::placeholder{color:#888!important;font-weight:300!important;font-size:16px!important;line-height:1.2!important}@media (max-width: 768px){.main-filter-builder .desktop-view{display:none!important}.main-filter-builder .mobile-view{display:flex!important}.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(input.mat-datepicker-input),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(.mat-datepicker-toggle),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(mat-datepicker),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(mat-select),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(.multi-state-filter){display:none!important}.main-filter-builder .mobile-field-filter ::ng-deep .field-column mat-form-field:has(input.mat-datepicker-input),.main-filter-builder .mobile-field-filter ::ng-deep .field-column mat-form-field:has(.mat-datepicker-toggle),.main-filter-builder .mobile-field-filter ::ng-deep .field-column mat-form-field:has(mat-datepicker),.main-filter-builder .mobile-field-filter ::ng-deep .field-column mat-form-field:has(mat-select){display:none!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(input.mat-datepicker-input),.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(.mat-datepicker-toggle),.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(mat-datepicker),.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(mat-select){display:none!important}}@media (min-width: 769px){.main-filter-builder .desktop-view{display:flex!important}.main-filter-builder .mobile-view{display:none!important}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FieldFilterComponent, selector: "app-field-filter", inputs: ["filter", "pageInfo", "filterFields", "item", "editable", "filterResetNonce"], outputs: ["selectedValue", "filterFieldInformation"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }] }); }
|
|
261
261
|
}
|
|
262
262
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FilterBuilderComponent, decorators: [{
|
|
263
263
|
type: Component,
|
|
@@ -271,7 +271,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
271
271
|
MatMenuItem,
|
|
272
272
|
MatMenuTrigger,
|
|
273
273
|
NgForOf
|
|
274
|
-
], template: "<div class=\"main-filter-builder\">\r\n\r\n <!-- Desktop View -->\r\n <div class=\"filterForm desktop-view\">\r\n <div class=\"filterForm__row\">\r\n <div class=\"filterForm__col\">\r\n <app-field-filter\r\n [editable]=\"isEditable()\"\r\n [filter]=\"filter\"\r\n [pageInfo]=\"pageInfo\"\r\n *ngIf=\"isEditable()\"\r\n [filterFields]=\"filterFields\"\r\n [filterResetNonce]=\"filterResetNonce\"\r\n (filterFieldInformation)=\"formChanges($event)\"\r\n class=\"filterForm__filed-filter\"\r\n >\r\n </app-field-filter>\r\n </div>\r\n <div class=\"button-group\">\r\n <button\r\n mat-flat-button\r\n class=\"btn-apply-filter\"\r\n type=\"button\"\r\n (click)=\"onClearFilters()\">\r\n <div class=\"button-text\">\r\n <mat-icon>clear_all</mat-icon>\r\n <span>{{ 'FILTER-BUILDER.clearFilters' | translate }}</span>\r\n </div>\r\n </button>\r\n <button\r\n mat-flat-button\r\n class=\"btn-apply-filter\"\r\n type=\"button\"\r\n (click)=\"onApplyFilter()\">\r\n <div class=\"button-text\">\r\n <mat-icon>filter_list</mat-icon>\r\n <span>{{ 'FILTER-BUILDER.applyFilter' | translate }}</span>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Mobile View -->\r\n <div class=\"mobile-view\">\r\n <!-- Mobile Row 1: Search Field and Export Button -->\r\n <div class=\"mobile-search-row\">\r\n <div class=\"mobile-search-field\">\r\n <app-field-filter\r\n [editable]=\"isEditable()\"\r\n [filter]=\"filter\"\r\n [pageInfo]=\"pageInfo\"\r\n *ngIf=\"isEditable()\"\r\n [filterFields]=\"filterFields\"\r\n [filterResetNonce]=\"filterResetNonce\"\r\n (filterFieldInformation)=\"formChanges($event)\"\r\n class=\"mobile-field-filter\"\r\n >\r\n </app-field-filter>\r\n </div>\r\n <button\r\n *ngIf=\"showExportButton\"\r\n mat-flat-button\r\n class=\"btn-export-mobile\"\r\n [matMenuTriggerFor]=\"exportMenu\">\r\n <div class=\"button-content\">\r\n <mat-icon>file_export</mat-icon>\r\n <mat-icon class=\"arrow-icon\">keyboard_arrow_down</mat-icon>\r\n </div>\r\n </button>\r\n <mat-menu #exportMenu=\"matMenu\">\r\n <button mat-menu-item (click)=\"onExportClick('pdf')\">PDF</button>\r\n <button mat-menu-item (click)=\"onExportClick('xlsx')\">Excel</button>\r\n <button mat-menu-item (click)=\"onExportClick('csv')\">CSV</button>\r\n </mat-menu>\r\n </div>\r\n\r\n <!-- Mobile Row 2: Filter By and Sort By Buttons -->\r\n <div class=\"mobile-filter-row\">\r\n <button\r\n mat-flat-button\r\n class=\"btn-filter-by btn-filter-by--icon-only\"\r\n type=\"button\"\r\n (click)=\"onClearFilters()\"\r\n [attr.aria-label]=\"'FILTER-BUILDER.clearFilters' | translate\">\r\n <div class=\"button-content\">\r\n <mat-icon>clear_all</mat-icon>\r\n </div>\r\n </button>\r\n <button\r\n mat-flat-button\r\n class=\"btn-filter-by\"\r\n type=\"button\"\r\n (click)=\"onApplyFilter()\">\r\n <div class=\"button-content\">\r\n <mat-icon>filter_list</mat-icon>\r\n <span>{{ 'FILTER-BUILDER.filterBy' | translate }}</span>\r\n </div>\r\n </button>\r\n <button\r\n mat-flat-button\r\n class=\"btn-sort-by\"\r\n type=\"button\"\r\n [matMenuTriggerFor]=\"sortMenu\">\r\n <div class=\"button-content\">\r\n <mat-icon>unfold_more</mat-icon>\r\n <span>{{ 'FILTER-BUILDER.sortBy' | translate }}</span>\r\n <mat-icon class=\"arrow-icon\">keyboard_arrow_down</mat-icon>\r\n </div>\r\n </button>\r\n <mat-menu #sortMenu=\"matMenu\">\r\n <button\r\n *ngFor=\"let column of getSortableColumns()\"\r\n mat-menu-item\r\n (click)=\"onSortByClick(column.property)\">\r\n {{ labelKey(column) | translate }}\r\n </button>\r\n <button\r\n *ngIf=\"getSortableColumns().length === 0\"\r\n mat-menu-item\r\n disabled>\r\n {{ 'FILTER-BUILDER.noSortableColumns' | translate }}\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </div>\r\n\r\n<!-- <div *ngIf=\"checkIsEmpty()\" class=\"line-top\">-->\r\n<!-- <mat-divider></mat-divider>-->\r\n<!-- </div>-->\r\n\r\n<!-- <div class=\"line-bottom\">-->\r\n<!-- <mat-divider></mat-divider>-->\r\n<!-- </div>-->\r\n\r\n<!-- <div class=\"action\">-->\r\n<!-- <button class=\"btn-none-background-primary action__clear\" mat-button (click)=\"deleteAll()\">-->\r\n<!-- {{'FILTER-BUILDER.clearAllFilters' | translate}}-->\r\n<!-- </button>-->\r\n<!-- <button class=\"btn-background-primary\" mat-button (click)=\"doSearch()\">-->\r\n<!-- {{'FILTER-BUILDER.search' | translate}}-->\r\n<!-- </button>-->\r\n<!-- </div>-->\r\n</div>\r\n", styles: [".main-filter-builder{width:100%;max-width:100%;box-sizing:border-box;flex:1 1 auto;min-width:0;display:flex;align-items:center;overflow:visible;min-height:48px;margin-bottom:7px}.main-filter-builder .filterForm{display:flex;width:100%;max-width:100%;box-sizing:border-box;align-items:center}.main-filter-builder .filterForm__row{display:flex;align-items:center;gap:16px;margin:0;flex-wrap:nowrap;width:100%;max-width:100%;box-sizing:border-box;min-width:0}.main-filter-builder .filterForm__col{flex:1 1 auto;min-width:0;max-width:none;width:auto}.main-filter-builder .filterForm__filed-filter{margin:0!important}.main-filter-builder .filterForm__filed-filter ::ng-deep .main-form-canvas{display:flex!important;flex-direction:row!important;align-items:center!important;margin-top:0!important;width:100%!important;flex-wrap:nowrap!important;gap:16px!important}.main-filter-builder .filterForm__filed-filter ::ng-deep .form-wrapper{display:flex!important;flex-direction:row!important;align-items:center!important;flex:1 1 auto!important;width:100%!important;min-width:0!important}.main-filter-builder .filterForm__filed-filter ::ng-deep .form-content{width:100%!important;display:flex!important;flex-direction:row!important;align-items:center!important}.main-filter-builder .filterForm__filed-filter ::ng-deep .form-row{display:flex!important;gap:16px;align-items:center;flex-wrap:nowrap;width:100%!important}.main-filter-builder .filterForm__filed-filter ::ng-deep .form-column{flex:0 0 auto;width:100%}.main-filter-builder .filterForm__filed-filter ::ng-deep .row-container{display:flex;gap:16px;align-items:center;flex-wrap:nowrap;width:auto}.main-filter-builder .filterForm__filed-filter ::ng-deep .field-column{flex:0 0 auto;width:auto}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field{width:auto!important;margin:0!important;overflow:visible!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-infix{min-height:44px!important;padding:0 16px!important;display:flex!important;align-items:center!important;border-top:none!important;overflow:visible!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-input-control{height:44px!important;font-weight:300!important;font-size:16px!important;line-height:1.2!important;color:#000!important;overflow:visible!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-outline{border:1px solid #b7b7b7!important;border-radius:8px!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-prefix{padding-right:4px!important;display:flex!important;align-items:center!important;justify-content:center!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-prefix mat-icon{font-size:24px!important;width:10px!important;height:28px!important;color:#0d4261!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-suffix{padding-left:4px!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-suffix mat-icon{font-size:24px!important;width:24px!important;height:24px!important;color:#0d4261!important;margin-top:6px}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field input::placeholder{color:#888!important;font-weight:300!important;font-size:16px!important;line-height:1.2!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-select{font-weight:300!important;font-size:16px!important;line-height:1.2!important;color:#888!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-datepicker-toggle .mat-icon-button{width:24px!important;height:24px!important;padding:0!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-datepicker-toggle .mat-icon-button mat-icon{font-size:24px!important;width:24px!important;height:24px!important;color:#0d4261}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{height:0!important;min-height:0!important;margin:0!important;padding:0!important}.main-filter-builder .filterForm .action-filter{flex:0 0 auto}.main-filter-builder .filterForm .action-filter .edit-design{margin:auto}.main-filter-builder .filterForm .action-filter .edit-design__add-button{background:#fff!important;color:var(--primary-color)!important;height:48px;width:48px;border-radius:5px;border:#D9D9D9 solid 1px;margin:30px 0 0}.main-filter-builder .filterForm .action-filter .edit-design__add-button__add-button-text{margin:0 5px}.main-filter-builder .line-top mat-divider{width:98%;margin:0 auto 10px}.main-filter-builder .advanced-button{display:flex;flex-wrap:wrap;gap:8px}.main-filter-builder .advanced-button .view{background:#e3fbff!important;border:1px solid #00ABC8!important;border-radius:6px!important;margin:10px 0;padding:6px 8px;height:32px;margin-top:0!important;display:flex;align-items:center;gap:6px}.main-filter-builder .advanced-button .view__filed{margin-top:-3px;display:inline-block;color:#1c355e;font-weight:400;font-size:14px;line-height:16px;font-style:normal;text-align:center!important}.main-filter-builder .advanced-button .view__close{margin-left:6px}.main-filter-builder .advanced-button .view__close__icon{color:#1c355e;font-size:14px;cursor:pointer;display:inline-block}.main-filter-builder .line-bottom mat-divider{width:98%;margin:0 auto 10px}.main-filter-builder .action{justify-content:end;padding:5px 10px 10px}.main-filter-builder .action__clear{border:none!important;margin:0 5px}@media (max-width: 599.98px){.main-filter-builder .filterForm__row{flex-wrap:wrap}.main-filter-builder .filterForm .action-filter .edit-design__add-button{width:100%;height:45px;margin:5px 5px 10px}}@media (min-width: 600px){.main-filter-builder .add-text-responsive{display:none}}.main-filter-builder .button-group{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-end;gap:8px!important;flex-shrink:0!important;flex-grow:0!important;flex-basis:auto!important;height:46px!important;white-space:nowrap!important;min-width:0!important;max-width:none!important}.main-filter-builder .btn-apply-filter{background:#fff!important;border:1px solid #3e627b!important;border-radius:8px!important;height:46px!important;min-width:120px!important;padding:0 16px!important;box-shadow:none!important}.main-filter-builder .btn-apply-filter .button-text{display:flex;align-items:center;justify-content:center;gap:4px;width:100%}.main-filter-builder .btn-apply-filter mat-icon{font-size:24px;width:24px;height:30px;color:#0d4261}.main-filter-builder .btn-apply-filter span{font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#0d4261;white-space:nowrap}.main-filter-builder .btn-apply-filter:hover{background:#fafafa!important}.main-filter-builder .mobile-view{display:none;flex-direction:column;gap:8px;width:100%;box-sizing:border-box}.main-filter-builder .mobile-filter-row{display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box}.main-filter-builder .btn-filter-by,.main-filter-builder .btn-sort-by{background:#fff!important;border:1px solid #3e627b!important;border-radius:8px!important;height:40px!important;flex:1 1 0!important;min-width:0!important;padding:0 16px!important;box-shadow:none!important;display:flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important}.main-filter-builder .btn-filter-by .button-content,.main-filter-builder .btn-sort-by .button-content{display:flex;align-items:center;justify-content:center;gap:4px;width:100%}.main-filter-builder .btn-filter-by mat-icon,.main-filter-builder .btn-sort-by mat-icon{font-size:24px;width:24px;height:28px;color:#0d4261}.main-filter-builder .btn-filter-by span,.main-filter-builder .btn-sort-by span{font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1;color:#0d4261;white-space:nowrap}.main-filter-builder .btn-filter-by:hover,.main-filter-builder .btn-sort-by:hover{background:#fafafa!important}.main-filter-builder .btn-sort-by{border:1px solid #0d4261!important}.main-filter-builder .btn-sort-by .sort-icons{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;height:24px;width:24px;flex-shrink:0}.main-filter-builder .btn-sort-by .sort-icons .sort-arrow-up,.main-filter-builder .btn-sort-by .sort-icons .sort-arrow-down{font-size:16px;width:16px;height:8px;line-height:8px;margin:0;color:#0d4261}.main-filter-builder .btn-sort-by .sort-icons .sort-arrow-up{margin-bottom:-2px}.main-filter-builder .btn-sort-by .sort-icons .sort-arrow-down{margin-top:-2px}.main-filter-builder .btn-sort-by .arrow-icon{font-size:16px;width:16px;height:16px;margin-left:auto}.main-filter-builder .btn-filter-by.btn-filter-by--icon-only{flex:0 0 44px!important;min-width:44px!important;max-width:48px!important;padding:0 6px!important}.main-filter-builder .mobile-search-row{display:flex;align-items:flex-start;gap:8px;width:100%;box-sizing:border-box}.main-filter-builder .mobile-search-field{flex:1;min-width:0;width:100%;max-width:none}.main-filter-builder .btn-export-mobile{background:transparent!important;border:none!important;border-radius:8px!important;height:40px!important;width:60px!important;padding:0!important;box-shadow:none!important;display:flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important;flex-shrink:0!important}.main-filter-builder .btn-export-mobile .button-content{display:flex;align-items:center;justify-content:center;gap:4px;width:100%}.main-filter-builder .btn-export-mobile mat-icon{font-size:24px;width:24px;height:24px;color:#0d4261}.main-filter-builder .btn-export-mobile .arrow-icon{font-size:16px;width:16px;height:16px}.main-filter-builder .btn-export-mobile:hover{background:#fafafa!important}.main-filter-builder .mobile-field-filter{margin:0!important;width:100%!important}.main-filter-builder .mobile-field-filter ::ng-deep .main-form-canvas{display:flex!important;flex-direction:row!important;align-items:center!important;margin-top:0!important;width:100%!important;flex-wrap:nowrap!important;gap:0!important}.main-filter-builder .mobile-field-filter ::ng-deep .form-wrapper{display:flex!important;flex-direction:row!important;align-items:center!important;flex:1 1 auto!important;width:100%!important;min-width:0!important}.main-filter-builder .mobile-field-filter ::ng-deep .form-content{width:100%!important;align-items:center!important}.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(input.mat-datepicker-input),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(.mat-datepicker-toggle),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(mat-datepicker){display:none!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field{width:100%!important;margin:0!important;overflow:visible!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(input.mat-datepicker-input),.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(.mat-datepicker-toggle),.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(mat-datepicker){display:none!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field .mat-mdc-form-field-infix{min-height:40px!important;padding:0 16px!important;display:flex!important;align-items:center!important;border-top:none!important;overflow:visible!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field .mat-mdc-form-field-input-control{height:40px!important;font-weight:300!important;font-size:16px!important;line-height:1.2!important;color:#000!important;overflow:visible!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field .mat-mdc-form-field-outline{border:1px solid #b7b7b7!important;border-radius:8px!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-prefix{padding-right:4px!important;display:flex!important;align-items:center!important;justify-content:center!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-prefix mat-icon{font-size:24px!important;width:24px!important;height:24px!important;color:#0d4261!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field input::placeholder{color:#888!important;font-weight:300!important;font-size:16px!important;line-height:1.2!important}@media (max-width: 768px){.main-filter-builder .desktop-view{display:none!important}.main-filter-builder .mobile-view{display:flex!important}.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(input.mat-datepicker-input),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(.mat-datepicker-toggle),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(mat-datepicker),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(mat-select){display:none!important}.main-filter-builder .mobile-field-filter ::ng-deep .field-column mat-form-field:has(input.mat-datepicker-input),.main-filter-builder .mobile-field-filter ::ng-deep .field-column mat-form-field:has(.mat-datepicker-toggle),.main-filter-builder .mobile-field-filter ::ng-deep .field-column mat-form-field:has(mat-datepicker),.main-filter-builder .mobile-field-filter ::ng-deep .field-column mat-form-field:has(mat-select){display:none!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(input.mat-datepicker-input),.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(.mat-datepicker-toggle),.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(mat-datepicker),.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(mat-select){display:none!important}}@media (min-width: 769px){.main-filter-builder .desktop-view{display:flex!important}.main-filter-builder .mobile-view{display:none!important}}\n"] }]
|
|
274
|
+
], template: "<div class=\"main-filter-builder\">\r\n\r\n <!-- Desktop View -->\r\n <div class=\"filterForm desktop-view\">\r\n <div class=\"filterForm__row\">\r\n <div class=\"filterForm__col\">\r\n <app-field-filter\r\n [editable]=\"isEditable()\"\r\n [filter]=\"filter\"\r\n [pageInfo]=\"pageInfo\"\r\n *ngIf=\"isEditable()\"\r\n [filterFields]=\"filterFields\"\r\n [filterResetNonce]=\"filterResetNonce\"\r\n (filterFieldInformation)=\"formChanges($event)\"\r\n class=\"filterForm__filed-filter\"\r\n >\r\n </app-field-filter>\r\n </div>\r\n <div class=\"button-group\">\r\n <button\r\n mat-flat-button\r\n class=\"btn-apply-filter\"\r\n type=\"button\"\r\n (click)=\"onClearFilters()\">\r\n <div class=\"button-text\">\r\n <mat-icon>clear_all</mat-icon>\r\n <span>{{ 'FILTER-BUILDER.clearFilters' | translate }}</span>\r\n </div>\r\n </button>\r\n <button\r\n mat-flat-button\r\n class=\"btn-apply-filter\"\r\n type=\"button\"\r\n (click)=\"onApplyFilter()\">\r\n <div class=\"button-text\">\r\n <mat-icon>filter_list</mat-icon>\r\n <span>{{ 'FILTER-BUILDER.applyFilter' | translate }}</span>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Mobile View -->\r\n <div class=\"mobile-view\">\r\n <!-- Mobile Row 1: Search Field and Export Button -->\r\n <div class=\"mobile-search-row\">\r\n <div class=\"mobile-search-field\">\r\n <app-field-filter\r\n [editable]=\"isEditable()\"\r\n [filter]=\"filter\"\r\n [pageInfo]=\"pageInfo\"\r\n *ngIf=\"isEditable()\"\r\n [filterFields]=\"filterFields\"\r\n [filterResetNonce]=\"filterResetNonce\"\r\n (filterFieldInformation)=\"formChanges($event)\"\r\n class=\"mobile-field-filter\"\r\n >\r\n </app-field-filter>\r\n </div>\r\n <button\r\n *ngIf=\"showExportButton\"\r\n mat-flat-button\r\n class=\"btn-export-mobile\"\r\n [matMenuTriggerFor]=\"exportMenu\">\r\n <div class=\"button-content\">\r\n <mat-icon>file_export</mat-icon>\r\n <mat-icon class=\"arrow-icon\">keyboard_arrow_down</mat-icon>\r\n </div>\r\n </button>\r\n <mat-menu #exportMenu=\"matMenu\">\r\n <button mat-menu-item (click)=\"onExportClick('pdf')\">PDF</button>\r\n <button mat-menu-item (click)=\"onExportClick('xlsx')\">Excel</button>\r\n <button mat-menu-item (click)=\"onExportClick('csv')\">CSV</button>\r\n </mat-menu>\r\n </div>\r\n\r\n <!-- Mobile Row 2: Filter By and Sort By Buttons -->\r\n <div class=\"mobile-filter-row\">\r\n <button\r\n mat-flat-button\r\n class=\"btn-filter-by btn-filter-by--icon-only\"\r\n type=\"button\"\r\n (click)=\"onClearFilters()\"\r\n [attr.aria-label]=\"'FILTER-BUILDER.clearFilters' | translate\">\r\n <div class=\"button-content\">\r\n <mat-icon>delete_sweep</mat-icon>\r\n </div>\r\n </button>\r\n <button\r\n mat-flat-button\r\n class=\"btn-filter-by\"\r\n type=\"button\"\r\n (click)=\"onApplyFilter()\">\r\n <div class=\"button-content\">\r\n <mat-icon>filter_list</mat-icon>\r\n <span>{{ 'FILTER-BUILDER.applyFilter' | translate }}</span>\r\n </div>\r\n </button>\r\n <button\r\n mat-flat-button\r\n class=\"btn-sort-by\"\r\n type=\"button\"\r\n [matMenuTriggerFor]=\"sortMenu\">\r\n <div class=\"button-content\">\r\n <mat-icon>unfold_more</mat-icon>\r\n <span>{{ 'FILTER-BUILDER.sortBy' | translate }}</span>\r\n <mat-icon class=\"arrow-icon\">keyboard_arrow_down</mat-icon>\r\n </div>\r\n </button>\r\n <mat-menu #sortMenu=\"matMenu\">\r\n <button\r\n *ngFor=\"let column of getSortableColumns()\"\r\n mat-menu-item\r\n (click)=\"onSortByClick(column.property)\">\r\n {{ labelKey(column) | translate }}\r\n </button>\r\n <button\r\n *ngIf=\"getSortableColumns().length === 0\"\r\n mat-menu-item\r\n disabled>\r\n {{ 'FILTER-BUILDER.noSortableColumns' | translate }}\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </div>\r\n\r\n<!-- <div *ngIf=\"checkIsEmpty()\" class=\"line-top\">-->\r\n<!-- <mat-divider></mat-divider>-->\r\n<!-- </div>-->\r\n\r\n<!-- <div class=\"line-bottom\">-->\r\n<!-- <mat-divider></mat-divider>-->\r\n<!-- </div>-->\r\n\r\n<!-- <div class=\"action\">-->\r\n<!-- <button class=\"btn-none-background-primary action__clear\" mat-button (click)=\"deleteAll()\">-->\r\n<!-- {{'FILTER-BUILDER.clearAllFilters' | translate}}-->\r\n<!-- </button>-->\r\n<!-- <button class=\"btn-background-primary\" mat-button (click)=\"doSearch()\">-->\r\n<!-- {{'FILTER-BUILDER.search' | translate}}-->\r\n<!-- </button>-->\r\n<!-- </div>-->\r\n</div>\r\n", styles: [".main-filter-builder{width:100%;max-width:100%;box-sizing:border-box;flex:1 1 auto;min-width:0;display:flex;align-items:center;overflow:visible;min-height:48px;margin-bottom:7px}.main-filter-builder .filterForm{display:flex;width:100%;max-width:100%;box-sizing:border-box;align-items:center}.main-filter-builder .filterForm__row{display:flex;align-items:center;gap:16px;margin:0;flex-wrap:nowrap;width:100%;max-width:100%;box-sizing:border-box;min-width:0}.main-filter-builder .filterForm__col{flex:1 1 auto;min-width:0;max-width:none;width:auto}.main-filter-builder .filterForm__filed-filter{margin:0!important}.main-filter-builder .filterForm__filed-filter ::ng-deep .main-form-canvas{display:flex!important;flex-direction:row!important;align-items:center!important;margin-top:0!important;width:100%!important;flex-wrap:nowrap!important;gap:16px!important}.main-filter-builder .filterForm__filed-filter ::ng-deep .form-wrapper{display:flex!important;flex-direction:row!important;align-items:center!important;flex:1 1 auto!important;width:100%!important;min-width:0!important}.main-filter-builder .filterForm__filed-filter ::ng-deep .form-content{width:100%!important;display:flex!important;flex-direction:row!important;align-items:center!important}.main-filter-builder .filterForm__filed-filter ::ng-deep .form-row{display:flex!important;gap:16px;align-items:center;flex-wrap:nowrap;width:100%!important}.main-filter-builder .filterForm__filed-filter ::ng-deep .form-column{flex:0 0 auto;width:100%}.main-filter-builder .filterForm__filed-filter ::ng-deep .row-container{display:flex;gap:16px;align-items:center;flex-wrap:nowrap;width:auto}.main-filter-builder .filterForm__filed-filter ::ng-deep .field-column{flex:0 0 auto;width:auto}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field{width:auto!important;margin:0!important;overflow:visible!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-infix{min-height:44px!important;padding:0 16px!important;display:flex!important;align-items:center!important;border-top:none!important;overflow:visible!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-input-control{height:44px!important;font-weight:300!important;font-size:16px!important;line-height:1.2!important;color:#000!important;overflow:visible!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-outline{border:1px solid #b7b7b7!important;border-radius:8px!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-prefix{padding-right:4px!important;display:flex!important;align-items:center!important;justify-content:center!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-prefix mat-icon{font-size:24px!important;width:10px!important;height:28px!important;color:#0d4261!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-suffix{padding-left:4px!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-suffix mat-icon{font-size:24px!important;width:24px!important;height:24px!important;color:#0d4261!important;margin-top:6px}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field input::placeholder{color:#888!important;font-weight:300!important;font-size:16px!important;line-height:1.2!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-select{font-weight:300!important;font-size:16px!important;line-height:1.2!important;color:#888!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-datepicker-toggle .mat-icon-button{width:24px!important;height:24px!important;padding:0!important}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-datepicker-toggle .mat-icon-button mat-icon{font-size:24px!important;width:24px!important;height:24px!important;color:#0d4261}.main-filter-builder .filterForm__filed-filter ::ng-deep mat-form-field .mat-mdc-form-field-subscript-wrapper{height:0!important;min-height:0!important;margin:0!important;padding:0!important}.main-filter-builder .filterForm .action-filter{flex:0 0 auto}.main-filter-builder .filterForm .action-filter .edit-design{margin:auto}.main-filter-builder .filterForm .action-filter .edit-design__add-button{background:#fff!important;color:var(--primary-color)!important;height:48px;width:48px;border-radius:5px;border:#D9D9D9 solid 1px;margin:30px 0 0}.main-filter-builder .filterForm .action-filter .edit-design__add-button__add-button-text{margin:0 5px}.main-filter-builder .line-top mat-divider{width:98%;margin:0 auto 10px}.main-filter-builder .advanced-button{display:flex;flex-wrap:wrap;gap:8px}.main-filter-builder .advanced-button .view{background:#e3fbff!important;border:1px solid #00ABC8!important;border-radius:6px!important;margin:10px 0;padding:6px 8px;height:32px;margin-top:0!important;display:flex;align-items:center;gap:6px}.main-filter-builder .advanced-button .view__filed{margin-top:-3px;display:inline-block;color:#1c355e;font-weight:400;font-size:14px;line-height:16px;font-style:normal;text-align:center!important}.main-filter-builder .advanced-button .view__close{margin-left:6px}.main-filter-builder .advanced-button .view__close__icon{color:#1c355e;font-size:14px;cursor:pointer;display:inline-block}.main-filter-builder .line-bottom mat-divider{width:98%;margin:0 auto 10px}.main-filter-builder .action{justify-content:end;padding:5px 10px 10px}.main-filter-builder .action__clear{border:none!important;margin:0 5px}@media (max-width: 599.98px){.main-filter-builder .filterForm__row{flex-wrap:wrap}.main-filter-builder .filterForm .action-filter .edit-design__add-button{width:100%;height:45px;margin:5px 5px 10px}}@media (min-width: 600px){.main-filter-builder .add-text-responsive{display:none}}.main-filter-builder .button-group{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-end;gap:8px!important;flex-shrink:0!important;flex-grow:0!important;flex-basis:auto!important;height:46px!important;white-space:nowrap!important;min-width:0!important;max-width:none!important}.main-filter-builder .btn-apply-filter{background:#fff!important;border:1px solid #3e627b!important;border-radius:8px!important;height:46px!important;min-width:120px!important;padding:0 16px!important;box-shadow:none!important}.main-filter-builder .btn-apply-filter .button-text{display:flex;align-items:center;justify-content:center;gap:4px;width:100%}.main-filter-builder .btn-apply-filter mat-icon{font-size:24px;width:24px;height:30px;color:#0d4261}.main-filter-builder .btn-apply-filter span{font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1.2;color:#0d4261;white-space:nowrap}.main-filter-builder .btn-apply-filter:hover{background:#fafafa!important}.main-filter-builder .mobile-view{display:none;flex-direction:column;gap:8px;width:100%;box-sizing:border-box}.main-filter-builder .mobile-filter-row{display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box}.main-filter-builder .btn-filter-by,.main-filter-builder .btn-sort-by{background:#fff!important;border:1px solid #3e627b!important;border-radius:8px!important;height:40px!important;flex:1 1 0!important;min-width:0!important;padding:0 16px!important;box-shadow:none!important;display:flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important}.main-filter-builder .btn-filter-by .button-content,.main-filter-builder .btn-sort-by .button-content{display:flex;align-items:center;justify-content:center;gap:4px;width:100%}.main-filter-builder .btn-filter-by mat-icon,.main-filter-builder .btn-sort-by mat-icon{font-size:24px;width:24px;height:28px;color:#0d4261}.main-filter-builder .btn-filter-by span,.main-filter-builder .btn-sort-by span{font-family:Lusail,sans-serif;font-weight:500;font-size:16px;line-height:1;color:#0d4261;white-space:nowrap}.main-filter-builder .btn-filter-by:hover,.main-filter-builder .btn-sort-by:hover{background:#fafafa!important}.main-filter-builder .btn-sort-by{border:1px solid #0d4261!important}.main-filter-builder .btn-sort-by .sort-icons{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;height:24px;width:24px;flex-shrink:0}.main-filter-builder .btn-sort-by .sort-icons .sort-arrow-up,.main-filter-builder .btn-sort-by .sort-icons .sort-arrow-down{font-size:16px;width:16px;height:8px;line-height:8px;margin:0;color:#0d4261}.main-filter-builder .btn-sort-by .sort-icons .sort-arrow-up{margin-bottom:-2px}.main-filter-builder .btn-sort-by .sort-icons .sort-arrow-down{margin-top:-2px}.main-filter-builder .btn-sort-by .arrow-icon{font-size:16px;width:16px;height:16px;margin-left:auto}.main-filter-builder .btn-filter-by.btn-filter-by--icon-only{flex:0 0 44px!important;min-width:44px!important;max-width:48px!important;padding:0 6px!important}.main-filter-builder .mobile-search-row{display:flex;align-items:flex-start;gap:8px;width:100%;box-sizing:border-box}.main-filter-builder .mobile-search-field{flex:1;min-width:0;width:100%;max-width:none}.main-filter-builder .btn-export-mobile{background:transparent!important;border:none!important;border-radius:8px!important;height:40px!important;width:60px!important;padding:0!important;box-shadow:none!important;display:flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important;flex-shrink:0!important}.main-filter-builder .btn-export-mobile .button-content{display:flex;align-items:center;justify-content:center;gap:4px;width:100%}.main-filter-builder .btn-export-mobile mat-icon{font-size:24px;width:24px;height:24px;color:#0d4261}.main-filter-builder .btn-export-mobile .arrow-icon{font-size:16px;width:16px;height:16px}.main-filter-builder .btn-export-mobile:hover{background:#fafafa!important}.main-filter-builder .mobile-field-filter{margin:0!important;width:100%!important}.main-filter-builder .mobile-field-filter ::ng-deep .main-form-canvas{display:flex!important;flex-direction:row!important;align-items:center!important;margin-top:0!important;width:100%!important;flex-wrap:nowrap!important;gap:0!important}.main-filter-builder .mobile-field-filter ::ng-deep .form-wrapper{display:flex!important;flex-direction:row!important;align-items:center!important;flex:1 1 auto!important;width:100%!important;min-width:0!important}.main-filter-builder .mobile-field-filter ::ng-deep .form-content{width:100%!important;align-items:center!important}.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(input.mat-datepicker-input),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(.mat-datepicker-toggle),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(mat-datepicker),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(.multi-state-filter){display:none!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field{width:100%!important;margin:0!important;overflow:visible!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(input.mat-datepicker-input),.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(.mat-datepicker-toggle),.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(mat-datepicker){display:none!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field .mat-mdc-form-field-infix{min-height:40px!important;padding:0 16px!important;display:flex!important;align-items:center!important;border-top:none!important;overflow:visible!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field .mat-mdc-form-field-input-control{height:40px!important;font-weight:300!important;font-size:16px!important;line-height:1.2!important;color:#000!important;overflow:visible!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field .mat-mdc-form-field-outline{border:1px solid #b7b7b7!important;border-radius:8px!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-prefix{padding-right:4px!important;display:flex!important;align-items:center!important;justify-content:center!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field .mat-mdc-form-field-icon-prefix mat-icon{font-size:24px!important;width:24px!important;height:24px!important;color:#0d4261!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field input::placeholder{color:#888!important;font-weight:300!important;font-size:16px!important;line-height:1.2!important}@media (max-width: 768px){.main-filter-builder .desktop-view{display:none!important}.main-filter-builder .mobile-view{display:flex!important}.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(input.mat-datepicker-input),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(.mat-datepicker-toggle),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(mat-datepicker),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(mat-select),.main-filter-builder .mobile-field-filter ::ng-deep .field-column:has(.multi-state-filter){display:none!important}.main-filter-builder .mobile-field-filter ::ng-deep .field-column mat-form-field:has(input.mat-datepicker-input),.main-filter-builder .mobile-field-filter ::ng-deep .field-column mat-form-field:has(.mat-datepicker-toggle),.main-filter-builder .mobile-field-filter ::ng-deep .field-column mat-form-field:has(mat-datepicker),.main-filter-builder .mobile-field-filter ::ng-deep .field-column mat-form-field:has(mat-select){display:none!important}.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(input.mat-datepicker-input),.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(.mat-datepicker-toggle),.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(mat-datepicker),.main-filter-builder .mobile-field-filter ::ng-deep mat-form-field:has(mat-select){display:none!important}}@media (min-width: 769px){.main-filter-builder .desktop-view{display:flex!important}.main-filter-builder .mobile-view{display:none!important}}\n"] }]
|
|
275
275
|
}], ctorParameters: () => [], propDecorators: { columns: [{
|
|
276
276
|
type: Input
|
|
277
277
|
}], isChecked: [{
|
|
@@ -298,4 +298,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
298
298
|
type: HostListener,
|
|
299
299
|
args: ['keydown', ['$event']]
|
|
300
300
|
}] } });
|
|
301
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9hZHZhbmNlZC1maWx0ZXIvZmlsdGVyLWJ1aWxkZXIvZmlsdGVyLWJ1aWxkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9hZHZhbmNlZC1maWx0ZXIvZmlsdGVyLWJ1aWxkZXIvZmlsdGVyLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBR2xFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9DLE9BQU8sRUFBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7OztBQW1CNUUsTUFBTSxPQUFPLHNCQUFzQjtJQXdDakM7UUE1QkEsbUJBQWMsR0FBa0IsRUFBRSxDQUFDO1FBR25DLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUdsQyxZQUFPLEdBQWtCLEVBQUUsQ0FBQztRQUs1QixxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFHckIsc0JBQWlC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WixNQUFNO2dCQUlQLGFBQWE7c0JBRFosTUFBTTtnQkFnRVAsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZSwgZm9ybWF0RGF0ZSwgTmdGb3JPZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtGaWVsZEluZm8sIFBhZ2VJbmZvLCBUYWJsZUNvbHVtbn0gZnJvbSBcIi4uLy4uLy4uL2Jhc2UtbW9kZWxcIjtcclxuaW1wb3J0IHtGaWVsZEZpbHRlcn0gZnJvbSBcIi4uLy4uLy4uL2Jhc2UtbW9kZWwvZmllbGQtZmlsdGVyLm1vZGVsXCI7XHJcbmltcG9ydCB7RmllbGRGaWx0ZXJDb21wb25lbnR9IGZyb20gXCIuLi9maWVsZC1maWx0ZXIvZmllbGQtZmlsdGVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcclxuaW1wb3J0IHtNYXRJY29ufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xyXG5pbXBvcnQge01hdE1lbnUsIE1hdE1lbnVJdGVtLCBNYXRNZW51VHJpZ2dlcn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZpbHRlci1idWlsZGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRmllbGRGaWx0ZXJDb21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRJY29uLFxyXG4gICAgTWF0TWVudSxcclxuICAgIE1hdE1lbnVJdGVtLFxyXG4gICAgTWF0TWVudVRyaWdnZXIsXHJcbiAgICBOZ0Zvck9mXHJcbiAgXSxcclxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXItYnVpbGRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJCdWlsZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGNvbHVtbnM6IFRhYmxlQ29sdW1uPGFueT5bXTtcclxuXHJcbiAgQElucHV0KClcclxuICBpc0NoZWNrZWQ6IGJvb2xlYW47XHJcbiAgQElucHV0KClcclxuICBmaWx0ZXJGaWVsZHM6IEZpZWxkSW5mb1tdO1xyXG4gIEBJbnB1dCgpXHJcbiAgcGFnZUluZm86IFBhZ2VJbmZvO1xyXG4gIEBJbnB1dCgpXHJcbiAgcGVuZGluZ0ZpbHRlcnM6IEZpZWxkRmlsdGVyW10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBzaG93RXhwb3J0QnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGZpbHRlcjogRmllbGRGaWx0ZXI7XHJcbiAgZmlsdGVyczogRmllbGRGaWx0ZXJbXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIHNlYXJjaFRpbWVvdXQ6IGFueTtcclxuICBwcml2YXRlIGF1dG9BcHBseVRpbWVvdXQ6IGFueTtcclxuXHJcbiAgZmlsdGVyUmVzZXROb25jZSA9IDA7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGZpbHRlckluZm9ybWF0aW9uOiBFdmVudEVtaXR0ZXI8eyBmaWx0ZXJzOiBGaWVsZEZpbHRlcltdLCBzZWFyY2hTdHI6IHN0cmluZyB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBmaWx0ZXJzOiBGaWVsZEZpbHRlcltdLCBzZWFyY2hTdHI6IHN0cmluZyB9PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBpc0VtcHR5OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGFwcGx5RmlsdGVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHNvcnRCeUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGV4cG9ydENsaWNrZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuXHJcbiAgaXNNb2JpbGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmlubmVyV2lkdGggPD0gNzY4O1xyXG4gIH1cclxuXHJcbiAgZ2V0U29ydGFibGVDb2x1bW5zKCk6IFRhYmxlQ29sdW1uPGFueT5bXSB7XHJcbiAgICBpZiAoIXRoaXMuY29sdW1ucykge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zLmZpbHRlcihjb2x1bW4gPT5cclxuICAgICAgY29sdW1uLnZpc2libGUgPT09IHRydWUgJiYgY29sdW1uLmVuYWJsZVNvcnRpbmcgPT09IHRydWVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBsYWJlbEtleShjb2x1bW46IFRhYmxlQ29sdW1uPGFueT4pOiBzdHJpbmcge1xyXG4gICAgaWYgKCFjb2x1bW4gfHwgIWNvbHVtbi5wcm9wZXJ0eSkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb25maWd1cmVkS2V5ID0gY29sdW1uLmxhYmVsID8gY29sdW1uLmxhYmVsIDogY29sdW1uLnByb3BlcnR5O1xyXG4gICAgaWYgKCF0aGlzLnBhZ2VJbmZvIHx8ICF0aGlzLnBhZ2VJbmZvLmxhYmVsc1NlY3Rpb24pIHtcclxuICAgICAgcmV0dXJuIGNvbmZpZ3VyZWRLZXk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29uZmlndXJlZEtleS5zdGFydHNXaXRoKHRoaXMucGFnZUluZm8ubGFiZWxzU2VjdGlvbilcclxuICAgICAgPyBgJHtjb25maWd1cmVkS2V5fWBcclxuICAgICAgOiBgJHt0aGlzLnBhZ2VJbmZvLmxhYmVsc1NlY3Rpb259LiR7Y29uZmlndXJlZEtleX1gO1xyXG4gIH1cclxuXHJcbiAgb25Tb3J0QnlDbGljayhjb2x1bW5Qcm9wZXJ0eTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNvcnRCeUNsaWNrZWQuZW1pdChjb2x1bW5Qcm9wZXJ0eSk7XHJcbiAgfVxyXG5cclxuICBvbkV4cG9ydENsaWNrKHJlcG9ydFR5cGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5leHBvcnRDbGlja2VkLmVtaXQocmVwb3J0VHlwZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcblxyXG4gICAgdGhpcy5zd2l0Y2hUb0FkdmFuY2VkKCk7XHJcbiAgICBpZiAoIXRoaXMuZmlsdGVyKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyID0gdGhpcy5jcmVhdGVEZWZhdWx0RmllbGRGaWx0ZXIoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpbHRlckZpZWxkcyAmJiB0aGlzLmZpbHRlckZpZWxkcy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5maWx0ZXJzID0gdGhpcy5maWx0ZXJGaWVsZHMubWFwKCgpID0+IHRoaXMuY3JlYXRlRGVmYXVsdEZpZWxkRmlsdGVyKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWFyY2hUaW1lb3V0KSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNlYXJjaFRpbWVvdXQpO1xyXG4gICAgICB0aGlzLnNlYXJjaFRpbWVvdXQgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYXV0b0FwcGx5VGltZW91dCkge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5hdXRvQXBwbHlUaW1lb3V0KTtcclxuICAgICAgdGhpcy5hdXRvQXBwbHlUaW1lb3V0ID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxyXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyAmJiAhZXZlbnQuc2hpZnRLZXkgJiYgIWV2ZW50LmN0cmxLZXkgJiYgIWV2ZW50Lm1ldGFLZXkpIHtcclxuICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICBjb25zdCBpc0lucHV0RWxlbWVudCA9IHRhcmdldC50YWdOYW1lID09PSAnSU5QVVQnIHx8XHJcbiAgICAgICAgdGFyZ2V0LnRhZ05hbWUgPT09ICdURVhUQVJFQScgfHxcclxuICAgICAgICB0YXJnZXQudGFnTmFtZSA9PT0gJ1NFTEVDVCcgfHxcclxuICAgICAgICB0YXJnZXQuaXNDb250ZW50RWRpdGFibGU7XHJcblxyXG4gICAgICBpZiAoaXNJbnB1dEVsZW1lbnQpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFRpbWVvdXQpIHtcclxuICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNlYXJjaFRpbWVvdXQpO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hUaW1lb3V0ID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRvU2VhcmNoKCk7XHJcbiAgICAgICAgICB0aGlzLm9uQXBwbHlGaWx0ZXIoKTtcclxuICAgICAgICB9LCAwKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5vbkFwcGx5RmlsdGVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZG9TZWFyY2goKSB7XHJcbiAgICBsZXQgc2VhcmNoU3RyID0gJyc7XHJcbiAgICBjb25zdCBmaWx0ZXJzQXJyYXkgPSAodGhpcy5maWx0ZXJzIHx8IFtdKVxyXG4gICAgICAuZmlsdGVyKGYgPT4gISFmICYmIGYuZmllbGROYW1lICYmIGYudmFsdWVPYmplY3QgIT09IHVuZGVmaW5lZCAmJiBmLnZhbHVlT2JqZWN0ICE9PSBudWxsICYmIGYudmFsdWVPYmplY3QgIT09ICcnKVxyXG4gICAgICAubWFwKGYgPT4ge1xyXG4gICAgICAgIGNvbnN0IGZpZWxkSW5mbyA9IHRoaXMuZmlsdGVyRmllbGRzPy5maW5kKGZpZWxkID0+IGZpZWxkLnByb3BlcnR5ID09PSBmLmZpZWxkTmFtZSk7XHJcbiAgICAgICAgaWYgKGZpZWxkSW5mbz8ubXVsdGlMZXZlbFNlYXJjaEVuYWJsZSAmJiBmLnZhbHVlT2JqZWN0KSB7XHJcbiAgICAgICAgICBzZWFyY2hTdHIgPSBmLnZhbHVlT2JqZWN0O1xyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7Li4uZn07XHJcbiAgICAgIH0pXHJcbiAgICAgIC5maWx0ZXIoZiA9PiBmICE9PSBudWxsKTtcclxuXHJcbiAgICB0aGlzLmZpbHRlckluZm9ybWF0aW9uLmVtaXQoeyBmaWx0ZXJzOiBmaWx0ZXJzQXJyYXksIHNlYXJjaFN0ciB9KTtcclxuICB9XHJcblxyXG4gIG9uQXBwbHlGaWx0ZXIoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hdXRvQXBwbHlUaW1lb3V0KSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmF1dG9BcHBseVRpbWVvdXQpO1xyXG4gICAgICB0aGlzLmF1dG9BcHBseVRpbWVvdXQgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZG9TZWFyY2goKTtcclxuICAgICAgdGhpcy5hcHBseUZpbHRlci5lbWl0KCk7XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2NoZWR1bGVBdXRvQXBwbHkoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hdXRvQXBwbHlUaW1lb3V0KSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmF1dG9BcHBseVRpbWVvdXQpO1xyXG4gICAgICB0aGlzLmF1dG9BcHBseVRpbWVvdXQgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hdXRvQXBwbHlUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMub25BcHBseUZpbHRlcigpO1xyXG4gICAgICB0aGlzLmF1dG9BcHBseVRpbWVvdXQgPSBudWxsO1xyXG4gICAgfSwgMTAwMDApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzY2hlZHVsZVNlYXJjaChkZWxheU1zOiBudW1iZXIgPSA4MDApIHtcclxuICAgIGlmICh0aGlzLnNlYXJjaFRpbWVvdXQpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2VhcmNoVGltZW91dCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlYXJjaFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5kb1NlYXJjaCgpO1xyXG4gICAgfSwgZGVsYXlNcyk7XHJcbiAgfVxyXG5cclxuICBmb3JtQ2hhbmdlcygkZXZlbnQ6IGFueSwgaW5kZXg/OiBudW1iZXIsIGZpZWxkSW5mbz86IEZpZWxkSW5mbykge1xyXG4gICAgaWYgKHRoaXMuYXV0b0FwcGx5VGltZW91dCkge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5hdXRvQXBwbHlUaW1lb3V0KTtcclxuICAgICAgdGhpcy5hdXRvQXBwbHlUaW1lb3V0ID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmb3JtYXRJZkRhdGUgPSAodHlwZT86IHN0cmluZywgdmFsdWU/OiBhbnkpID0+IHtcclxuICAgICAgaWYgKCF0eXBlIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnKSByZXR1cm4gdmFsdWU7XHJcbiAgICAgIGlmICgodHlwZSB8fCAnJykudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnZGF0ZScpKSB7XHJcbiAgICAgICAgcmV0dXJuIGZvcm1hdERhdGUodmFsdWUsICd5eXl5LU1NLWRkJywgJ2VuX1VTJyk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAoaW5kZXggPT09IHVuZGVmaW5lZCB8fCAhZmllbGRJbmZvKSB7XHJcbiAgICAgIGlmICghdGhpcy5maWx0ZXJGaWVsZHMgfHwgIXRoaXMuZmlsdGVyRmllbGRzLmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuZmlsdGVycyA9IFtdO1xyXG4gICAgICAgIHRoaXMuZG9TZWFyY2goKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZmlsdGVycyA9IHRoaXMuZmlsdGVyRmllbGRzLm1hcCgoZmkpID0+IHtcclxuICAgICAgICBjb25zdCBjb250cm9sTmFtZSA9IGZpLnByb3BlcnR5O1xyXG4gICAgICAgIGxldCB2YWx1ZSA9ICRldmVudCA/ICRldmVudFtjb250cm9sTmFtZV0gOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVEZWZhdWx0RmllbGRGaWx0ZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZmllbGROYW1lID0gY29udHJvbE5hbWUgPT09ICdmcm9tJyB8fCBjb250cm9sTmFtZSA9PT0gJ3RvJyA/ICBmaS50YXJnZXRQcm9wZXJ0eSA6IGNvbnRyb2xOYW1lO1xyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgZmllbGROYW1lOiBmaWVsZE5hbWUsXHJcbiAgICAgICAgICBvcGVyYXRvcjogZmkuZmlsdGVyT3BlcmF0b3IgfHwgJ0VRVUFMUycsXHJcbiAgICAgICAgICBmaWx0ZXJUeXBlOiAnRklMRURfRklMVEVSJyxcclxuICAgICAgICAgIGZpZWxkVHlwZTogdGhpcy50eXBlTWFwKGZpLnR5cGUpIGFzIGFueSxcclxuICAgICAgICAgIHZhbHVlT2JqZWN0OiBmb3JtYXRJZkRhdGUoZmkudHlwZSwgdmFsdWUpIGFzIGFueVxyXG4gICAgICAgIH0gYXMgRmllbGRGaWx0ZXI7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgY29uc3QgaGFzVGV4dEZpZWxkID0gKHRoaXMuZmlsdGVyRmllbGRzIHx8IFtdKS5zb21lKGZpID0+ICgoZmkudHlwZSB8fCAnJykudG9Mb3dlckNhc2UoKSA9PT0gJ3RleHQnKSk7XHJcbiAgICAgIGlmIChoYXNUZXh0RmllbGQpIHtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlU2VhcmNoKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5kb1NlYXJjaCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2NoZWR1bGVBdXRvQXBwbHkoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5maWx0ZXJzKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVycyA9IFtdO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZmlsdGVycy5sZW5ndGggPCBpbmRleCArIDEpIHtcclxuICAgICAgdGhpcy5maWx0ZXJzLmxlbmd0aCA9IGluZGV4ICsgMTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgY29udHJvbE5hbWUgPSBmaWVsZEluZm8ucHJvcGVydHk7XHJcbiAgICBsZXQgdmFsdWUgPSAkZXZlbnQgPyAkZXZlbnRbY29udHJvbE5hbWVdIDogdW5kZWZpbmVkO1xyXG4gICAgaWYgKCRldmVudCAmJiAkZXZlbnQuZmlsdGVyRmllbGQgIT09IHVuZGVmaW5lZCAmJiAkZXZlbnQuZnJvbVZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgY29udHJvbE5hbWUgPSAkZXZlbnQuZmlsdGVyRmllbGQgfHwgY29udHJvbE5hbWU7XHJcbiAgICAgIHZhbHVlID0gJGV2ZW50LmZyb21WYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycpIHtcclxuICAgICAgdGhpcy5maWx0ZXJzW2luZGV4XSA9IHRoaXMuY3JlYXRlRGVmYXVsdEZpZWxkRmlsdGVyKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZpbHRlcnNbaW5kZXhdID0ge1xyXG4gICAgICAgIGZpZWxkTmFtZTogY29udHJvbE5hbWUsXHJcbiAgICAgICAgb3BlcmF0b3I6ICBmaWVsZEluZm8uZmlsdGVyT3BlcmF0b3IgfHwgJ0VRVUFMUycsXHJcbiAgICAgICAgZmlsdGVyVHlwZTogJ0ZJTEVEX0ZJTFRFUicsXHJcbiAgICAgICAgZmllbGRUeXBlOiB0aGlzLnR5cGVNYXAoZmllbGRJbmZvLnR5cGUpIGFzIGFueSxcclxuICAgICAgICB2YWx1ZU9iamVjdDogZm9ybWF0SWZEYXRlKGZpZWxkSW5mby50eXBlLCB2YWx1ZSkgYXMgYW55XHJcbiAgICAgIH0gYXMgRmllbGRGaWx0ZXI7XHJcbiAgICB9XHJcbiAgICBjb25zdCBpc1RleHRGaWVsZCA9ICgoZmllbGRJbmZvLnR5cGUgfHwgJycpLnRvTG93ZXJDYXNlKCkgPT09ICd0ZXh0Jyk7XHJcbiAgICBpZiAoaXNUZXh0RmllbGQpIHtcclxuICAgICAgdGhpcy5zY2hlZHVsZVNlYXJjaCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kb1NlYXJjaCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zY2hlZHVsZUF1dG9BcHBseSgpO1xyXG4gIH1cclxuICB0eXBlTWFwKGNvbFR5cGU/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgdCA9IChjb2xUeXBlIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgaWYgKHQuaW5jbHVkZXMoJ251bWJlcicpIHx8IHQuaW5jbHVkZXMoJ2ludCcpIHx8IHQgPT09ICdsb25nJykgcmV0dXJuICdMb25nJztcclxuICAgIGlmICh0LmluY2x1ZGVzKCdkYXRlJykgfHwgdC5pbmNsdWRlcygndGltZScpKSByZXR1cm4gJ0RhdGUnO1xyXG4gICAgaWYgKHQuaW5jbHVkZXMoJ2Jvb2wnKSkgcmV0dXJuICdCb29sZWFuJztcclxuICAgIHJldHVybiAnU3RyaW5nJztcclxuICB9XHJcblxyXG4gIGlzRWRpdGFibGUoX2luZGV4PzogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG5cclxuICBkZWxldGVBbGwoKSB7XHJcbiAgICB0aGlzLmZpbHRlciA9IHRoaXMuY3JlYXRlRGVmYXVsdEZpZWxkRmlsdGVyKCk7XHJcbiAgICB0aGlzLmZpbHRlcnMgPSB0aGlzLmZpbHRlckZpZWxkcyA/IHRoaXMuZmlsdGVyRmllbGRzLm1hcCgoKSA9PiB0aGlzLmNyZWF0ZURlZmF1bHRGaWVsZEZpbHRlcigpKSA6IFtdO1xyXG4gICAgdGhpcy5pc0VtcHR5LmVtaXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBvbkNsZWFyRmlsdGVycygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmF1dG9BcHBseVRpbWVvdXQpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuYXV0b0FwcGx5VGltZW91dCk7XHJcbiAgICAgIHRoaXMuYXV0b0FwcGx5VGltZW91dCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWFyY2hUaW1lb3V0KSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNlYXJjaFRpbWVvdXQpO1xyXG4gICAgICB0aGlzLnNlYXJjaFRpbWVvdXQgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5maWx0ZXJSZXNldE5vbmNlKys7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZGVsZXRlQWxsKCksIDApO1xyXG4gIH1cclxuXHJcbiAgc3dpdGNoVG9BZHZhbmNlZCgpIHtcclxuICAgIGlmICh0aGlzLmlzQ2hlY2tlZCkge1xyXG4gICAgICBpZiAoIXRoaXMuZmlsdGVyIHx8IE9iamVjdC5rZXlzKHRoaXMuZmlsdGVyKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLmZpbHRlciA9IHRoaXMuY3JlYXRlRGVmYXVsdEZpZWxkRmlsdGVyKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIGNyZWF0ZURlZmF1bHRGaWVsZEZpbHRlcigpOiBGaWVsZEZpbHRlciB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmaWVsZE5hbWU6ICcnLFxyXG4gICAgICBvcGVyYXRvcjogJycsXHJcbiAgICAgIGZpbHRlclR5cGU6ICcnLFxyXG4gICAgICBmaWVsZFR5cGU6ICcnLFxyXG4gICAgICB2YWx1ZU9iamVjdDogJydcclxuICAgIH0gYXMgRmllbGRGaWx0ZXI7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtYWluLWZpbHRlci1idWlsZGVyXCI+XHJcblxyXG4gIDwhLS0gRGVza3RvcCBWaWV3IC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJmaWx0ZXJGb3JtIGRlc2t0b3Atdmlld1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZpbHRlckZvcm1fX3Jvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyRm9ybV9fY29sXCI+XHJcbiAgICAgICAgPGFwcC1maWVsZC1maWx0ZXJcclxuICAgICAgICAgIFtlZGl0YWJsZV09XCJpc0VkaXRhYmxlKClcIlxyXG4gICAgICAgICAgW2ZpbHRlcl09XCJmaWx0ZXJcIlxyXG4gICAgICAgICAgW3BhZ2VJbmZvXT1cInBhZ2VJbmZvXCJcclxuICAgICAgICAgICpuZ0lmPVwiaXNFZGl0YWJsZSgpXCJcclxuICAgICAgICAgIFtmaWx0ZXJGaWVsZHNdPVwiZmlsdGVyRmllbGRzXCJcclxuICAgICAgICAgIFtmaWx0ZXJSZXNldE5vbmNlXT1cImZpbHRlclJlc2V0Tm9uY2VcIlxyXG4gICAgICAgICAgKGZpbHRlckZpZWxkSW5mb3JtYXRpb24pPVwiZm9ybUNoYW5nZXMoJGV2ZW50KVwiXHJcbiAgICAgICAgICBjbGFzcz1cImZpbHRlckZvcm1fX2ZpbGVkLWZpbHRlclwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvYXBwLWZpZWxkLWZpbHRlcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JvdXBcIj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBtYXQtZmxhdC1idXR0b25cclxuICAgICAgICAgIGNsYXNzPVwiYnRuLWFwcGx5LWZpbHRlclwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyRmlsdGVycygpXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXRleHRcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPmNsZWFyX2FsbDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ICdGSUxURVItQlVJTERFUi5jbGVhckZpbHRlcnMnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgICAgICBjbGFzcz1cImJ0bi1hcHBseS1maWx0ZXJcIlxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25BcHBseUZpbHRlcigpXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXRleHRcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPmZpbHRlcl9saXN0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ0ZJTFRFUi1CVUlMREVSLmFwcGx5RmlsdGVyJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIE1vYmlsZSBWaWV3IC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2JpbGUtdmlld1wiPlxyXG4gICAgPCEtLSBNb2JpbGUgUm93IDE6IFNlYXJjaCBGaWVsZCBhbmQgRXhwb3J0IEJ1dHRvbiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtc2VhcmNoLXJvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLXNlYXJjaC1maWVsZFwiPlxyXG4gICAgICAgIDxhcHAtZmllbGQtZmlsdGVyXHJcbiAgICAgICAgICBbZWRpdGFibGVdPVwiaXNFZGl0YWJsZSgpXCJcclxuICAgICAgICAgIFtmaWx0ZXJdPVwiZmlsdGVyXCJcclxuICAgICAgICAgIFtwYWdlSW5mb109XCJwYWdlSW5mb1wiXHJcbiAgICAgICAgICAqbmdJZj1cImlzRWRpdGFibGUoKVwiXHJcbiAgICAgICAgICBbZmlsdGVyRmllbGRzXT1cImZpbHRlckZpZWxkc1wiXHJcbiAgICAgICAgICBbZmlsdGVyUmVzZXROb25jZV09XCJmaWx0ZXJSZXNldE5vbmNlXCJcclxuICAgICAgICAgIChmaWx0ZXJGaWVsZEluZm9ybWF0aW9uKT1cImZvcm1DaGFuZ2VzKCRldmVudClcIlxyXG4gICAgICAgICAgY2xhc3M9XCJtb2JpbGUtZmllbGQtZmlsdGVyXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9hcHAtZmllbGQtZmlsdGVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwic2hvd0V4cG9ydEJ1dHRvblwiXHJcbiAgICAgICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJidG4tZXhwb3J0LW1vYmlsZVwiXHJcbiAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImV4cG9ydE1lbnVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWNvbnRlbnRcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5maWxlX2V4cG9ydDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJhcnJvdy1pY29uXCI+a2V5Ym9hcmRfYXJyb3dfZG93bjwvbWF0LWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8bWF0LW1lbnUgI2V4cG9ydE1lbnU9XCJtYXRNZW51XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJvbkV4cG9ydENsaWNrKCdwZGYnKVwiPlBERjwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwib25FeHBvcnRDbGljaygneGxzeCcpXCI+RXhjZWw8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIm9uRXhwb3J0Q2xpY2soJ2NzdicpXCI+Q1NWPC9idXR0b24+XHJcbiAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIE1vYmlsZSBSb3cgMjogRmlsdGVyIEJ5IGFuZCBTb3J0IEJ5IEJ1dHRvbnMgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLWZpbHRlci1yb3dcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwiYnRuLWZpbHRlci1ieSBidG4tZmlsdGVyLWJ5LS1pY29uLW9ubHlcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIChjbGljayk9XCJvbkNsZWFyRmlsdGVycygpXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidGSUxURVItQlVJTERFUi5jbGVhckZpbHRlcnMnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1jb250ZW50XCI+XHJcbiAgICAgICAgICA8bWF0LWljb24+Y2xlYXJfYWxsPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBtYXQtZmxhdC1idXR0b25cclxuICAgICAgICBjbGFzcz1cImJ0bi1maWx0ZXItYnlcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIChjbGljayk9XCJvbkFwcGx5RmlsdGVyKClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWNvbnRlbnRcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5maWx0ZXJfbGlzdDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8c3Bhbj57eyAnRklMVEVSLUJVSUxERVIuZmlsdGVyQnknIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwiYnRuLXNvcnQtYnlcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJzb3J0TWVudVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tY29udGVudFwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPnVuZm9sZF9tb3JlPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDxzcGFuPnt7ICdGSUxURVItQlVJTERFUi5zb3J0QnknIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiYXJyb3ctaWNvblwiPmtleWJvYXJkX2Fycm93X2Rvd248L21hdC1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPG1hdC1tZW51ICNzb3J0TWVudT1cIm1hdE1lbnVcIj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGdldFNvcnRhYmxlQ29sdW1ucygpXCJcclxuICAgICAgICAgIG1hdC1tZW51LWl0ZW1cclxuICAgICAgICAgIChjbGljayk9XCJvblNvcnRCeUNsaWNrKGNvbHVtbi5wcm9wZXJ0eSlcIj5cclxuICAgICAgICAgIHt7IGxhYmVsS2V5KGNvbHVtbikgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cImdldFNvcnRhYmxlQ29sdW1ucygpLmxlbmd0aCA9PT0gMFwiXHJcbiAgICAgICAgICBtYXQtbWVudS1pdGVtXHJcbiAgICAgICAgICBkaXNhYmxlZD5cclxuICAgICAgICAgIHt7ICdGSUxURVItQlVJTERFUi5ub1NvcnRhYmxlQ29sdW1ucycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9tYXQtbWVudT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuPCEtLSAgPGRpdiAqbmdJZj1cImNoZWNrSXNFbXB0eSgpXCIgY2xhc3M9XCJsaW5lLXRvcFwiPi0tPlxyXG48IS0tICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPi0tPlxyXG48IS0tICA8L2Rpdj4tLT5cclxuXHJcbjwhLS0gIDxkaXYgY2xhc3M9XCJsaW5lLWJvdHRvbVwiPi0tPlxyXG48IS0tICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPi0tPlxyXG48IS0tICA8L2Rpdj4tLT5cclxuXHJcbjwhLS0gIDxkaXYgY2xhc3M9XCJhY3Rpb25cIj4tLT5cclxuPCEtLSAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLW5vbmUtYmFja2dyb3VuZC1wcmltYXJ5IGFjdGlvbl9fY2xlYXJcIiBtYXQtYnV0dG9uIChjbGljayk9XCJkZWxldGVBbGwoKVwiPi0tPlxyXG48IS0tICAgICAge3snRklMVEVSLUJVSUxERVIuY2xlYXJBbGxGaWx0ZXJzJyB8IHRyYW5zbGF0ZX19LS0+XHJcbjwhLS0gICAgPC9idXR0b24+LS0+XHJcbjwhLS0gICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1iYWNrZ3JvdW5kLXByaW1hcnlcIiBtYXQtYnV0dG9uIChjbGljayk9XCJkb1NlYXJjaCgpXCI+LS0+XHJcbjwhLS0gICAgICB7eydGSUxURVItQlVJTERFUi5zZWFyY2gnIHwgdHJhbnNsYXRlfX0tLT5cclxuPCEtLSAgICA8L2J1dHRvbj4tLT5cclxuPCEtLSAgPC9kaXY+LS0+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
301
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9hZHZhbmNlZC1maWx0ZXIvZmlsdGVyLWJ1aWxkZXIvZmlsdGVyLWJ1aWxkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9hZHZhbmNlZC1maWx0ZXIvZmlsdGVyLWJ1aWxkZXIvZmlsdGVyLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBR2xFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9DLE9BQU8sRUFBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7OztBQW1CNUUsTUFBTSxPQUFPLHNCQUFzQjtJQXdDakM7UUE1QkEsbUJBQWMsR0FBa0IsRUFBRSxDQUFDO1FBR25DLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUdsQyxZQUFPLEdBQWtCLEVBQUUsQ0FBQztRQUs1QixxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFHckIsc0JBQWlC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WixNQUFNO2dCQUlQLGFBQWE7c0JBRFosTUFBTTtnQkFnRVAsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZSwgZm9ybWF0RGF0ZSwgTmdGb3JPZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtGaWVsZEluZm8sIFBhZ2VJbmZvLCBUYWJsZUNvbHVtbn0gZnJvbSBcIi4uLy4uLy4uL2Jhc2UtbW9kZWxcIjtcclxuaW1wb3J0IHtGaWVsZEZpbHRlcn0gZnJvbSBcIi4uLy4uLy4uL2Jhc2UtbW9kZWwvZmllbGQtZmlsdGVyLm1vZGVsXCI7XHJcbmltcG9ydCB7RmllbGRGaWx0ZXJDb21wb25lbnR9IGZyb20gXCIuLi9maWVsZC1maWx0ZXIvZmllbGQtZmlsdGVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcclxuaW1wb3J0IHtNYXRJY29ufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xyXG5pbXBvcnQge01hdE1lbnUsIE1hdE1lbnVJdGVtLCBNYXRNZW51VHJpZ2dlcn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZpbHRlci1idWlsZGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRmllbGRGaWx0ZXJDb21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRJY29uLFxyXG4gICAgTWF0TWVudSxcclxuICAgIE1hdE1lbnVJdGVtLFxyXG4gICAgTWF0TWVudVRyaWdnZXIsXHJcbiAgICBOZ0Zvck9mXHJcbiAgXSxcclxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXItYnVpbGRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJCdWlsZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGNvbHVtbnM6IFRhYmxlQ29sdW1uPGFueT5bXTtcclxuXHJcbiAgQElucHV0KClcclxuICBpc0NoZWNrZWQ6IGJvb2xlYW47XHJcbiAgQElucHV0KClcclxuICBmaWx0ZXJGaWVsZHM6IEZpZWxkSW5mb1tdO1xyXG4gIEBJbnB1dCgpXHJcbiAgcGFnZUluZm86IFBhZ2VJbmZvO1xyXG4gIEBJbnB1dCgpXHJcbiAgcGVuZGluZ0ZpbHRlcnM6IEZpZWxkRmlsdGVyW10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBzaG93RXhwb3J0QnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGZpbHRlcjogRmllbGRGaWx0ZXI7XHJcbiAgZmlsdGVyczogRmllbGRGaWx0ZXJbXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIHNlYXJjaFRpbWVvdXQ6IGFueTtcclxuICBwcml2YXRlIGF1dG9BcHBseVRpbWVvdXQ6IGFueTtcclxuXHJcbiAgZmlsdGVyUmVzZXROb25jZSA9IDA7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGZpbHRlckluZm9ybWF0aW9uOiBFdmVudEVtaXR0ZXI8eyBmaWx0ZXJzOiBGaWVsZEZpbHRlcltdLCBzZWFyY2hTdHI6IHN0cmluZyB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBmaWx0ZXJzOiBGaWVsZEZpbHRlcltdLCBzZWFyY2hTdHI6IHN0cmluZyB9PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBpc0VtcHR5OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGFwcGx5RmlsdGVyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHNvcnRCeUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGV4cG9ydENsaWNrZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuXHJcbiAgaXNNb2JpbGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmlubmVyV2lkdGggPD0gNzY4O1xyXG4gIH1cclxuXHJcbiAgZ2V0U29ydGFibGVDb2x1bW5zKCk6IFRhYmxlQ29sdW1uPGFueT5bXSB7XHJcbiAgICBpZiAoIXRoaXMuY29sdW1ucykge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zLmZpbHRlcihjb2x1bW4gPT5cclxuICAgICAgY29sdW1uLnZpc2libGUgPT09IHRydWUgJiYgY29sdW1uLmVuYWJsZVNvcnRpbmcgPT09IHRydWVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBsYWJlbEtleShjb2x1bW46IFRhYmxlQ29sdW1uPGFueT4pOiBzdHJpbmcge1xyXG4gICAgaWYgKCFjb2x1bW4gfHwgIWNvbHVtbi5wcm9wZXJ0eSkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb25maWd1cmVkS2V5ID0gY29sdW1uLmxhYmVsID8gY29sdW1uLmxhYmVsIDogY29sdW1uLnByb3BlcnR5O1xyXG4gICAgaWYgKCF0aGlzLnBhZ2VJbmZvIHx8ICF0aGlzLnBhZ2VJbmZvLmxhYmVsc1NlY3Rpb24pIHtcclxuICAgICAgcmV0dXJuIGNvbmZpZ3VyZWRLZXk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29uZmlndXJlZEtleS5zdGFydHNXaXRoKHRoaXMucGFnZUluZm8ubGFiZWxzU2VjdGlvbilcclxuICAgICAgPyBgJHtjb25maWd1cmVkS2V5fWBcclxuICAgICAgOiBgJHt0aGlzLnBhZ2VJbmZvLmxhYmVsc1NlY3Rpb259LiR7Y29uZmlndXJlZEtleX1gO1xyXG4gIH1cclxuXHJcbiAgb25Tb3J0QnlDbGljayhjb2x1bW5Qcm9wZXJ0eTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNvcnRCeUNsaWNrZWQuZW1pdChjb2x1bW5Qcm9wZXJ0eSk7XHJcbiAgfVxyXG5cclxuICBvbkV4cG9ydENsaWNrKHJlcG9ydFR5cGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5leHBvcnRDbGlja2VkLmVtaXQocmVwb3J0VHlwZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcblxyXG4gICAgdGhpcy5zd2l0Y2hUb0FkdmFuY2VkKCk7XHJcbiAgICBpZiAoIXRoaXMuZmlsdGVyKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyID0gdGhpcy5jcmVhdGVEZWZhdWx0RmllbGRGaWx0ZXIoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpbHRlckZpZWxkcyAmJiB0aGlzLmZpbHRlckZpZWxkcy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5maWx0ZXJzID0gdGhpcy5maWx0ZXJGaWVsZHMubWFwKCgpID0+IHRoaXMuY3JlYXRlRGVmYXVsdEZpZWxkRmlsdGVyKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWFyY2hUaW1lb3V0KSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNlYXJjaFRpbWVvdXQpO1xyXG4gICAgICB0aGlzLnNlYXJjaFRpbWVvdXQgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYXV0b0FwcGx5VGltZW91dCkge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5hdXRvQXBwbHlUaW1lb3V0KTtcclxuICAgICAgdGhpcy5hdXRvQXBwbHlUaW1lb3V0ID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxyXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyAmJiAhZXZlbnQuc2hpZnRLZXkgJiYgIWV2ZW50LmN0cmxLZXkgJiYgIWV2ZW50Lm1ldGFLZXkpIHtcclxuICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICBjb25zdCBpc0lucHV0RWxlbWVudCA9IHRhcmdldC50YWdOYW1lID09PSAnSU5QVVQnIHx8XHJcbiAgICAgICAgdGFyZ2V0LnRhZ05hbWUgPT09ICdURVhUQVJFQScgfHxcclxuICAgICAgICB0YXJnZXQudGFnTmFtZSA9PT0gJ1NFTEVDVCcgfHxcclxuICAgICAgICB0YXJnZXQuaXNDb250ZW50RWRpdGFibGU7XHJcblxyXG4gICAgICBpZiAoaXNJbnB1dEVsZW1lbnQpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFRpbWVvdXQpIHtcclxuICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNlYXJjaFRpbWVvdXQpO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hUaW1lb3V0ID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRvU2VhcmNoKCk7XHJcbiAgICAgICAgICB0aGlzLm9uQXBwbHlGaWx0ZXIoKTtcclxuICAgICAgICB9LCAwKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5vbkFwcGx5RmlsdGVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZG9TZWFyY2goKSB7XHJcbiAgICBsZXQgc2VhcmNoU3RyID0gJyc7XHJcbiAgICBjb25zdCBmaWx0ZXJzQXJyYXkgPSAodGhpcy5maWx0ZXJzIHx8IFtdKVxyXG4gICAgICAuZmlsdGVyKGYgPT4gISFmICYmIGYuZmllbGROYW1lICYmIGYudmFsdWVPYmplY3QgIT09IHVuZGVmaW5lZCAmJiBmLnZhbHVlT2JqZWN0ICE9PSBudWxsICYmIGYudmFsdWVPYmplY3QgIT09ICcnKVxyXG4gICAgICAubWFwKGYgPT4ge1xyXG4gICAgICAgIGNvbnN0IGZpZWxkSW5mbyA9IHRoaXMuZmlsdGVyRmllbGRzPy5maW5kKGZpZWxkID0+IGZpZWxkLnByb3BlcnR5ID09PSBmLmZpZWxkTmFtZSk7XHJcbiAgICAgICAgaWYgKGZpZWxkSW5mbz8ubXVsdGlMZXZlbFNlYXJjaEVuYWJsZSAmJiBmLnZhbHVlT2JqZWN0KSB7XHJcbiAgICAgICAgICBzZWFyY2hTdHIgPSBmLnZhbHVlT2JqZWN0O1xyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7Li4uZn07XHJcbiAgICAgIH0pXHJcbiAgICAgIC5maWx0ZXIoZiA9PiBmICE9PSBudWxsKTtcclxuXHJcbiAgICB0aGlzLmZpbHRlckluZm9ybWF0aW9uLmVtaXQoeyBmaWx0ZXJzOiBmaWx0ZXJzQXJyYXksIHNlYXJjaFN0ciB9KTtcclxuICB9XHJcblxyXG4gIG9uQXBwbHlGaWx0ZXIoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hdXRvQXBwbHlUaW1lb3V0KSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmF1dG9BcHBseVRpbWVvdXQpO1xyXG4gICAgICB0aGlzLmF1dG9BcHBseVRpbWVvdXQgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZG9TZWFyY2goKTtcclxuICAgICAgdGhpcy5hcHBseUZpbHRlci5lbWl0KCk7XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2NoZWR1bGVBdXRvQXBwbHkoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hdXRvQXBwbHlUaW1lb3V0KSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmF1dG9BcHBseVRpbWVvdXQpO1xyXG4gICAgICB0aGlzLmF1dG9BcHBseVRpbWVvdXQgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hdXRvQXBwbHlUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMub25BcHBseUZpbHRlcigpO1xyXG4gICAgICB0aGlzLmF1dG9BcHBseVRpbWVvdXQgPSBudWxsO1xyXG4gICAgfSwgMTAwMDApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzY2hlZHVsZVNlYXJjaChkZWxheU1zOiBudW1iZXIgPSA4MDApIHtcclxuICAgIGlmICh0aGlzLnNlYXJjaFRpbWVvdXQpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2VhcmNoVGltZW91dCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlYXJjaFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5kb1NlYXJjaCgpO1xyXG4gICAgfSwgZGVsYXlNcyk7XHJcbiAgfVxyXG5cclxuICBmb3JtQ2hhbmdlcygkZXZlbnQ6IGFueSwgaW5kZXg/OiBudW1iZXIsIGZpZWxkSW5mbz86IEZpZWxkSW5mbykge1xyXG4gICAgaWYgKHRoaXMuYXV0b0FwcGx5VGltZW91dCkge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5hdXRvQXBwbHlUaW1lb3V0KTtcclxuICAgICAgdGhpcy5hdXRvQXBwbHlUaW1lb3V0ID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmb3JtYXRJZkRhdGUgPSAodHlwZT86IHN0cmluZywgdmFsdWU/OiBhbnkpID0+IHtcclxuICAgICAgaWYgKCF0eXBlIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnKSByZXR1cm4gdmFsdWU7XHJcbiAgICAgIGlmICgodHlwZSB8fCAnJykudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnZGF0ZScpKSB7XHJcbiAgICAgICAgcmV0dXJuIGZvcm1hdERhdGUodmFsdWUsICd5eXl5LU1NLWRkJywgJ2VuX1VTJyk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAoaW5kZXggPT09IHVuZGVmaW5lZCB8fCAhZmllbGRJbmZvKSB7XHJcbiAgICAgIGlmICghdGhpcy5maWx0ZXJGaWVsZHMgfHwgIXRoaXMuZmlsdGVyRmllbGRzLmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuZmlsdGVycyA9IFtdO1xyXG4gICAgICAgIHRoaXMuZG9TZWFyY2goKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZmlsdGVycyA9IHRoaXMuZmlsdGVyRmllbGRzLm1hcCgoZmkpID0+IHtcclxuICAgICAgICBjb25zdCBjb250cm9sTmFtZSA9IGZpLnByb3BlcnR5O1xyXG4gICAgICAgIGxldCB2YWx1ZSA9ICRldmVudCA/ICRldmVudFtjb250cm9sTmFtZV0gOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVEZWZhdWx0RmllbGRGaWx0ZXIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZmllbGROYW1lID0gY29udHJvbE5hbWUgPT09ICdmcm9tJyB8fCBjb250cm9sTmFtZSA9PT0gJ3RvJyA/ICBmaS50YXJnZXRQcm9wZXJ0eSA6IGNvbnRyb2xOYW1lO1xyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgZmllbGROYW1lOiBmaWVsZE5hbWUsXHJcbiAgICAgICAgICBvcGVyYXRvcjogZmkuZmlsdGVyT3BlcmF0b3IgfHwgJ0VRVUFMUycsXHJcbiAgICAgICAgICBmaWx0ZXJUeXBlOiAnRklMRURfRklMVEVSJyxcclxuICAgICAgICAgIGZpZWxkVHlwZTogdGhpcy50eXBlTWFwKGZpLnR5cGUpIGFzIGFueSxcclxuICAgICAgICAgIHZhbHVlT2JqZWN0OiBmb3JtYXRJZkRhdGUoZmkudHlwZSwgdmFsdWUpIGFzIGFueVxyXG4gICAgICAgIH0gYXMgRmllbGRGaWx0ZXI7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgY29uc3QgaGFzVGV4dEZpZWxkID0gKHRoaXMuZmlsdGVyRmllbGRzIHx8IFtdKS5zb21lKGZpID0+ICgoZmkudHlwZSB8fCAnJykudG9Mb3dlckNhc2UoKSA9PT0gJ3RleHQnKSk7XHJcbiAgICAgIGlmIChoYXNUZXh0RmllbGQpIHtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlU2VhcmNoKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5kb1NlYXJjaCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2NoZWR1bGVBdXRvQXBwbHkoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5maWx0ZXJzKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVycyA9IFtdO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZmlsdGVycy5sZW5ndGggPCBpbmRleCArIDEpIHtcclxuICAgICAgdGhpcy5maWx0ZXJzLmxlbmd0aCA9IGluZGV4ICsgMTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgY29udHJvbE5hbWUgPSBmaWVsZEluZm8ucHJvcGVydHk7XHJcbiAgICBsZXQgdmFsdWUgPSAkZXZlbnQgPyAkZXZlbnRbY29udHJvbE5hbWVdIDogdW5kZWZpbmVkO1xyXG4gICAgaWYgKCRldmVudCAmJiAkZXZlbnQuZmlsdGVyRmllbGQgIT09IHVuZGVmaW5lZCAmJiAkZXZlbnQuZnJvbVZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgY29udHJvbE5hbWUgPSAkZXZlbnQuZmlsdGVyRmllbGQgfHwgY29udHJvbE5hbWU7XHJcbiAgICAgIHZhbHVlID0gJGV2ZW50LmZyb21WYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycpIHtcclxuICAgICAgdGhpcy5maWx0ZXJzW2luZGV4XSA9IHRoaXMuY3JlYXRlRGVmYXVsdEZpZWxkRmlsdGVyKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZpbHRlcnNbaW5kZXhdID0ge1xyXG4gICAgICAgIGZpZWxkTmFtZTogY29udHJvbE5hbWUsXHJcbiAgICAgICAgb3BlcmF0b3I6ICBmaWVsZEluZm8uZmlsdGVyT3BlcmF0b3IgfHwgJ0VRVUFMUycsXHJcbiAgICAgICAgZmlsdGVyVHlwZTogJ0ZJTEVEX0ZJTFRFUicsXHJcbiAgICAgICAgZmllbGRUeXBlOiB0aGlzLnR5cGVNYXAoZmllbGRJbmZvLnR5cGUpIGFzIGFueSxcclxuICAgICAgICB2YWx1ZU9iamVjdDogZm9ybWF0SWZEYXRlKGZpZWxkSW5mby50eXBlLCB2YWx1ZSkgYXMgYW55XHJcbiAgICAgIH0gYXMgRmllbGRGaWx0ZXI7XHJcbiAgICB9XHJcbiAgICBjb25zdCBpc1RleHRGaWVsZCA9ICgoZmllbGRJbmZvLnR5cGUgfHwgJycpLnRvTG93ZXJDYXNlKCkgPT09ICd0ZXh0Jyk7XHJcbiAgICBpZiAoaXNUZXh0RmllbGQpIHtcclxuICAgICAgdGhpcy5zY2hlZHVsZVNlYXJjaCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kb1NlYXJjaCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zY2hlZHVsZUF1dG9BcHBseSgpO1xyXG4gIH1cclxuICB0eXBlTWFwKGNvbFR5cGU/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgdCA9IChjb2xUeXBlIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgaWYgKHQuaW5jbHVkZXMoJ251bWJlcicpIHx8IHQuaW5jbHVkZXMoJ2ludCcpIHx8IHQgPT09ICdsb25nJykgcmV0dXJuICdMb25nJztcclxuICAgIGlmICh0LmluY2x1ZGVzKCdkYXRlJykgfHwgdC5pbmNsdWRlcygndGltZScpKSByZXR1cm4gJ0RhdGUnO1xyXG4gICAgaWYgKHQuaW5jbHVkZXMoJ2Jvb2wnKSkgcmV0dXJuICdCb29sZWFuJztcclxuICAgIHJldHVybiAnU3RyaW5nJztcclxuICB9XHJcblxyXG4gIGlzRWRpdGFibGUoX2luZGV4PzogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG5cclxuICBkZWxldGVBbGwoKSB7XHJcbiAgICB0aGlzLmZpbHRlciA9IHRoaXMuY3JlYXRlRGVmYXVsdEZpZWxkRmlsdGVyKCk7XHJcbiAgICB0aGlzLmZpbHRlcnMgPSB0aGlzLmZpbHRlckZpZWxkcyA/IHRoaXMuZmlsdGVyRmllbGRzLm1hcCgoKSA9PiB0aGlzLmNyZWF0ZURlZmF1bHRGaWVsZEZpbHRlcigpKSA6IFtdO1xyXG4gICAgdGhpcy5pc0VtcHR5LmVtaXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBvbkNsZWFyRmlsdGVycygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmF1dG9BcHBseVRpbWVvdXQpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuYXV0b0FwcGx5VGltZW91dCk7XHJcbiAgICAgIHRoaXMuYXV0b0FwcGx5VGltZW91dCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWFyY2hUaW1lb3V0KSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNlYXJjaFRpbWVvdXQpO1xyXG4gICAgICB0aGlzLnNlYXJjaFRpbWVvdXQgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5maWx0ZXJSZXNldE5vbmNlKys7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZGVsZXRlQWxsKCksIDApO1xyXG4gIH1cclxuXHJcbiAgc3dpdGNoVG9BZHZhbmNlZCgpIHtcclxuICAgIGlmICh0aGlzLmlzQ2hlY2tlZCkge1xyXG4gICAgICBpZiAoIXRoaXMuZmlsdGVyIHx8IE9iamVjdC5rZXlzKHRoaXMuZmlsdGVyKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLmZpbHRlciA9IHRoaXMuY3JlYXRlRGVmYXVsdEZpZWxkRmlsdGVyKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIGNyZWF0ZURlZmF1bHRGaWVsZEZpbHRlcigpOiBGaWVsZEZpbHRlciB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmaWVsZE5hbWU6ICcnLFxyXG4gICAgICBvcGVyYXRvcjogJycsXHJcbiAgICAgIGZpbHRlclR5cGU6ICcnLFxyXG4gICAgICBmaWVsZFR5cGU6ICcnLFxyXG4gICAgICB2YWx1ZU9iamVjdDogJydcclxuICAgIH0gYXMgRmllbGRGaWx0ZXI7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtYWluLWZpbHRlci1idWlsZGVyXCI+XHJcblxyXG4gIDwhLS0gRGVza3RvcCBWaWV3IC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJmaWx0ZXJGb3JtIGRlc2t0b3Atdmlld1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZpbHRlckZvcm1fX3Jvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyRm9ybV9fY29sXCI+XHJcbiAgICAgICAgPGFwcC1maWVsZC1maWx0ZXJcclxuICAgICAgICAgIFtlZGl0YWJsZV09XCJpc0VkaXRhYmxlKClcIlxyXG4gICAgICAgICAgW2ZpbHRlcl09XCJmaWx0ZXJcIlxyXG4gICAgICAgICAgW3BhZ2VJbmZvXT1cInBhZ2VJbmZvXCJcclxuICAgICAgICAgICpuZ0lmPVwiaXNFZGl0YWJsZSgpXCJcclxuICAgICAgICAgIFtmaWx0ZXJGaWVsZHNdPVwiZmlsdGVyRmllbGRzXCJcclxuICAgICAgICAgIFtmaWx0ZXJSZXNldE5vbmNlXT1cImZpbHRlclJlc2V0Tm9uY2VcIlxyXG4gICAgICAgICAgKGZpbHRlckZpZWxkSW5mb3JtYXRpb24pPVwiZm9ybUNoYW5nZXMoJGV2ZW50KVwiXHJcbiAgICAgICAgICBjbGFzcz1cImZpbHRlckZvcm1fX2ZpbGVkLWZpbHRlclwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvYXBwLWZpZWxkLWZpbHRlcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tZ3JvdXBcIj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBtYXQtZmxhdC1idXR0b25cclxuICAgICAgICAgIGNsYXNzPVwiYnRuLWFwcGx5LWZpbHRlclwiXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyRmlsdGVycygpXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXRleHRcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPmNsZWFyX2FsbDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ICdGSUxURVItQlVJTERFUi5jbGVhckZpbHRlcnMnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgICAgICBjbGFzcz1cImJ0bi1hcHBseS1maWx0ZXJcIlxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25BcHBseUZpbHRlcigpXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXRleHRcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPmZpbHRlcl9saXN0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgJ0ZJTFRFUi1CVUlMREVSLmFwcGx5RmlsdGVyJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIE1vYmlsZSBWaWV3IC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2JpbGUtdmlld1wiPlxyXG4gICAgPCEtLSBNb2JpbGUgUm93IDE6IFNlYXJjaCBGaWVsZCBhbmQgRXhwb3J0IEJ1dHRvbiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2JpbGUtc2VhcmNoLXJvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLXNlYXJjaC1maWVsZFwiPlxyXG4gICAgICAgIDxhcHAtZmllbGQtZmlsdGVyXHJcbiAgICAgICAgICBbZWRpdGFibGVdPVwiaXNFZGl0YWJsZSgpXCJcclxuICAgICAgICAgIFtmaWx0ZXJdPVwiZmlsdGVyXCJcclxuICAgICAgICAgIFtwYWdlSW5mb109XCJwYWdlSW5mb1wiXHJcbiAgICAgICAgICAqbmdJZj1cImlzRWRpdGFibGUoKVwiXHJcbiAgICAgICAgICBbZmlsdGVyRmllbGRzXT1cImZpbHRlckZpZWxkc1wiXHJcbiAgICAgICAgICBbZmlsdGVyUmVzZXROb25jZV09XCJmaWx0ZXJSZXNldE5vbmNlXCJcclxuICAgICAgICAgIChmaWx0ZXJGaWVsZEluZm9ybWF0aW9uKT1cImZvcm1DaGFuZ2VzKCRldmVudClcIlxyXG4gICAgICAgICAgY2xhc3M9XCJtb2JpbGUtZmllbGQtZmlsdGVyXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9hcHAtZmllbGQtZmlsdGVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwic2hvd0V4cG9ydEJ1dHRvblwiXHJcbiAgICAgICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJidG4tZXhwb3J0LW1vYmlsZVwiXHJcbiAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImV4cG9ydE1lbnVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWNvbnRlbnRcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5maWxlX2V4cG9ydDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJhcnJvdy1pY29uXCI+a2V5Ym9hcmRfYXJyb3dfZG93bjwvbWF0LWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8bWF0LW1lbnUgI2V4cG9ydE1lbnU9XCJtYXRNZW51XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJvbkV4cG9ydENsaWNrKCdwZGYnKVwiPlBERjwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwib25FeHBvcnRDbGljaygneGxzeCcpXCI+RXhjZWw8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIm9uRXhwb3J0Q2xpY2soJ2NzdicpXCI+Q1NWPC9idXR0b24+XHJcbiAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIE1vYmlsZSBSb3cgMjogRmlsdGVyIEJ5IGFuZCBTb3J0IEJ5IEJ1dHRvbnMgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9iaWxlLWZpbHRlci1yb3dcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwiYnRuLWZpbHRlci1ieSBidG4tZmlsdGVyLWJ5LS1pY29uLW9ubHlcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIChjbGljayk9XCJvbkNsZWFyRmlsdGVycygpXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidGSUxURVItQlVJTERFUi5jbGVhckZpbHRlcnMnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1jb250ZW50XCI+XHJcbiAgICAgICAgICA8bWF0LWljb24+ZGVsZXRlX3N3ZWVwPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBtYXQtZmxhdC1idXR0b25cclxuICAgICAgICBjbGFzcz1cImJ0bi1maWx0ZXItYnlcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIChjbGljayk9XCJvbkFwcGx5RmlsdGVyKClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWNvbnRlbnRcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5maWx0ZXJfbGlzdDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8c3Bhbj57eyAnRklMVEVSLUJVSUxERVIuYXBwbHlGaWx0ZXInIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwiYnRuLXNvcnQtYnlcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJzb3J0TWVudVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tY29udGVudFwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPnVuZm9sZF9tb3JlPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDxzcGFuPnt7ICdGSUxURVItQlVJTERFUi5zb3J0QnknIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiYXJyb3ctaWNvblwiPmtleWJvYXJkX2Fycm93X2Rvd248L21hdC1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPG1hdC1tZW51ICNzb3J0TWVudT1cIm1hdE1lbnVcIj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGdldFNvcnRhYmxlQ29sdW1ucygpXCJcclxuICAgICAgICAgIG1hdC1tZW51LWl0ZW1cclxuICAgICAgICAgIChjbGljayk9XCJvblNvcnRCeUNsaWNrKGNvbHVtbi5wcm9wZXJ0eSlcIj5cclxuICAgICAgICAgIHt7IGxhYmVsS2V5KGNvbHVtbikgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cImdldFNvcnRhYmxlQ29sdW1ucygpLmxlbmd0aCA9PT0gMFwiXHJcbiAgICAgICAgICBtYXQtbWVudS1pdGVtXHJcbiAgICAgICAgICBkaXNhYmxlZD5cclxuICAgICAgICAgIHt7ICdGSUxURVItQlVJTERFUi5ub1NvcnRhYmxlQ29sdW1ucycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9tYXQtbWVudT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuPCEtLSAgPGRpdiAqbmdJZj1cImNoZWNrSXNFbXB0eSgpXCIgY2xhc3M9XCJsaW5lLXRvcFwiPi0tPlxyXG48IS0tICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPi0tPlxyXG48IS0tICA8L2Rpdj4tLT5cclxuXHJcbjwhLS0gIDxkaXYgY2xhc3M9XCJsaW5lLWJvdHRvbVwiPi0tPlxyXG48IS0tICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPi0tPlxyXG48IS0tICA8L2Rpdj4tLT5cclxuXHJcbjwhLS0gIDxkaXYgY2xhc3M9XCJhY3Rpb25cIj4tLT5cclxuPCEtLSAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLW5vbmUtYmFja2dyb3VuZC1wcmltYXJ5IGFjdGlvbl9fY2xlYXJcIiBtYXQtYnV0dG9uIChjbGljayk9XCJkZWxldGVBbGwoKVwiPi0tPlxyXG48IS0tICAgICAge3snRklMVEVSLUJVSUxERVIuY2xlYXJBbGxGaWx0ZXJzJyB8IHRyYW5zbGF0ZX19LS0+XHJcbjwhLS0gICAgPC9idXR0b24+LS0+XHJcbjwhLS0gICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1iYWNrZ3JvdW5kLXByaW1hcnlcIiBtYXQtYnV0dG9uIChjbGljayk9XCJkb1NlYXJjaCgpXCI+LS0+XHJcbjwhLS0gICAgICB7eydGSUxURVItQlVJTERFUi5zZWFyY2gnIHwgdHJhbnNsYXRlfX0tLT5cclxuPCEtLSAgICA8L2J1dHRvbj4tLT5cclxuPCEtLSAgPC9kaXY+LS0+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Directive, HostListener, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class MaxDigitsDirective {
|
|
4
|
+
onInput(event) {
|
|
5
|
+
const input = event.target;
|
|
6
|
+
if (!this.maxDigits)
|
|
7
|
+
return;
|
|
8
|
+
let value = input.value;
|
|
9
|
+
if (value.length > this.maxDigits) {
|
|
10
|
+
input.value = value.slice(0, this.maxDigits);
|
|
11
|
+
input.dispatchEvent(new Event('input'));
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaxDigitsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
15
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: MaxDigitsDirective, isStandalone: true, selector: "[maxDigits]", inputs: { maxDigits: "maxDigits" }, host: { listeners: { "input": "onInput($event)" } }, ngImport: i0 }); }
|
|
16
|
+
}
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MaxDigitsDirective, decorators: [{
|
|
18
|
+
type: Directive,
|
|
19
|
+
args: [{
|
|
20
|
+
selector: '[maxDigits]',
|
|
21
|
+
standalone: true
|
|
22
|
+
}]
|
|
23
|
+
}], propDecorators: { maxDigits: [{
|
|
24
|
+
type: Input
|
|
25
|
+
}], onInput: [{
|
|
26
|
+
type: HostListener,
|
|
27
|
+
args: ['input', ['$event']]
|
|
28
|
+
}] } });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWF4RGlnaXRzRGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW52b2ljZXEvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9iYXNlLWZvcm0tY2FudmFzL01heERpZ2l0c0RpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTS9ELE1BQU0sT0FBTyxrQkFBa0I7SUFJN0IsT0FBTyxDQUFDLEtBQVk7UUFDbEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQTBCLENBQUM7UUFFL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUU1QixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBRXhCLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0MsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDOytHQWZVLGtCQUFrQjttR0FBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUo5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBRVUsU0FBUztzQkFBakIsS0FBSztnQkFHTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1ttYXhEaWdpdHNdJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXhEaWdpdHNEaXJlY3RpdmUge1xyXG4gIEBJbnB1dCgpIG1heERpZ2l0cyE6IG51bWJlcjtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignaW5wdXQnLCBbJyRldmVudCddKVxyXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG5cclxuICAgIGlmICghdGhpcy5tYXhEaWdpdHMpIHJldHVybjtcclxuXHJcbiAgICBsZXQgdmFsdWUgPSBpbnB1dC52YWx1ZTtcclxuXHJcbiAgICBpZiAodmFsdWUubGVuZ3RoID4gdGhpcy5tYXhEaWdpdHMpIHtcclxuICAgICAgaW5wdXQudmFsdWUgPSB2YWx1ZS5zbGljZSgwLCB0aGlzLm1heERpZ2l0cyk7XHJcbiAgICAgIGlucHV0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcpKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|