mis-crystal-design-system 17.0.0 → 17.0.1
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/analytics/analytics.service.d.ts +5 -1
- package/assets/images/close.svg +5 -0
- package/async-search-dropdown/async-dropdown.component.d.ts +9 -1
- package/async-search-dropdown/async-dropdown.module.d.ts +2 -1
- package/datepicker_v2/datepicker.module.d.ts +2 -1
- package/datepicker_v2/tz-datepicker.directive.d.ts +2 -0
- package/datepicker_v2/tz-dp-container/tz-dp-container.component.d.ts +18 -1
- package/daterangepicker_v2/daterangepicker.module.d.ts +2 -1
- package/daterangepicker_v2/models/drp-config.model.d.ts +6 -0
- package/daterangepicker_v2/tz-daterangepicker.directive.d.ts +2 -0
- package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +5 -1
- package/dropdown/calculate-container-height.directive.d.ts +1 -1
- package/dropdown/dropdown.component.d.ts +4 -1
- package/dropdown/dropdown.module.d.ts +2 -1
- package/dynamic-form/dynamic-form.component.d.ts +14 -3
- package/dynamic-form/dynamic-form.namespace.d.ts +1 -0
- package/esm2022/action-list/action-list.component.mjs +1 -1
- package/esm2022/analytics/analytics.service.mjs +7 -6
- package/esm2022/async-search-dropdown/async-dropdown.component.mjs +97 -46
- package/esm2022/async-search-dropdown/async-dropdown.module.mjs +5 -4
- package/esm2022/button/button.directive.mjs +1 -1
- package/esm2022/checkbox/checkbox.component.mjs +4 -4
- package/esm2022/chip/chip.component.mjs +13 -13
- package/esm2022/datepicker_v2/datepicker.module.mjs +5 -4
- package/esm2022/datepicker_v2/public_api.mjs +1 -1
- package/esm2022/datepicker_v2/tz-datepicker.directive.mjs +21 -2
- package/esm2022/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +259 -73
- package/esm2022/datepicker_v2/utils/index.mjs +1 -1
- package/esm2022/daterangepicker_v2/daterangepicker.module.mjs +5 -4
- package/esm2022/daterangepicker_v2/models/drp-config.model.mjs +1 -1
- package/esm2022/daterangepicker_v2/public_api.mjs +1 -1
- package/esm2022/daterangepicker_v2/tz-daterangepicker.directive.mjs +24 -3
- package/esm2022/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +179 -78
- package/esm2022/daterangepicker_v2/utils/index.mjs +1 -1
- package/esm2022/dropdown/calculate-container-height.directive.mjs +5 -5
- package/esm2022/dropdown/dropdown.component.mjs +156 -96
- package/esm2022/dropdown/dropdown.module.mjs +5 -4
- package/esm2022/dynamic-form/dynamic-form.component.mjs +599 -216
- package/esm2022/dynamic-form/dynamic-form.namespace.mjs +1 -1
- package/esm2022/fab/fab.component.mjs +1 -1
- package/esm2022/filter/animations/slideFromRight.mjs +12 -0
- package/esm2022/filter/filter-panel/filter-panel.component.mjs +396 -0
- package/esm2022/filter/filters.module.mjs +66 -0
- package/esm2022/filter/has-value.pipe.mjs +31 -0
- package/esm2022/filter/index.mjs +2 -0
- package/esm2022/filter/mis-crystal-design-system-filter.mjs +5 -0
- package/esm2022/filter/public_api.mjs +4 -0
- package/esm2022/input/mis-input.component.mjs +1 -1
- package/esm2022/input-stepper/input-stepper/input-stepper.component.mjs +4 -4
- package/esm2022/mobile-filter/mobile-filter.component.mjs +9 -7
- package/esm2022/modal/modal.service.mjs +1 -1
- package/esm2022/multi-select-dropdown/multi-select-dropdown.component.mjs +26 -14
- package/esm2022/nested-multi-select-dropdown/nested-multi-select-dropdown.component.mjs +14 -7
- package/esm2022/phone-input/phone-input.component.mjs +6 -50
- package/esm2022/radio-button/radio-button.component.mjs +4 -4
- package/esm2022/ske-loader/ske-loader.component.mjs +4 -4
- package/esm2022/snackbar/snackbar.service.mjs +1 -1
- package/esm2022/specificdatepicker/public_api.mjs +3 -3
- package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +39 -26
- package/esm2022/specificdatepicker/tz-specificdatepicker.directive.mjs +1 -1
- package/esm2022/specificdatepicker/utils/index.mjs +1 -1
- package/esm2022/star-rating/star-rating.component.mjs +1 -1
- package/esm2022/table/custom-table-cell.directive.mjs +1 -1
- package/esm2022/table/filter/filter.component.mjs +12 -4
- package/esm2022/table/public_api.mjs +2 -3
- package/esm2022/table/sub-table/sub-table.component.mjs +1 -1
- package/esm2022/table/table.component.mjs +27 -11
- package/esm2022/timepicker/timepicker.component.mjs +16 -12
- package/esm2022/timerangepicker/public_api.mjs +1 -1
- package/esm2022/timerangepicker/timerangepicker.component.mjs +13 -7
- package/esm2022/toast/toast.service.mjs +1 -1
- package/esm2022/tooltip/tooltip-container/tooltip.component.mjs +10 -9
- package/esm2022/tooltip/tooltip.directive.mjs +9 -3
- package/esm2022/virtual-scroll/virtual-scroll.component.mjs +1 -1
- package/esm2022/widgets/classes/async-widget.mjs +1 -1
- package/esm2022/widgets/classes/base-widget.mjs +1 -1
- package/esm2022/widgets/classes/sync-widget.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-action-list.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-action-list.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-analytics.mjs +6 -5
- package/fesm2022/mis-crystal-design-system-analytics.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs +100 -48
- package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-button.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-button.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-checkbox.mjs +4 -4
- package/fesm2022/mis-crystal-design-system-checkbox.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-chip.mjs +13 -13
- package/fesm2022/mis-crystal-design-system-chip.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs +282 -76
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs +205 -83
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-drawer.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-dropdown.mjs +163 -102
- package/fesm2022/mis-crystal-design-system-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-dynamic-form.mjs +598 -216
- package/fesm2022/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-fab.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-fab.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-filter.mjs +503 -0
- package/fesm2022/mis-crystal-design-system-filter.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-input-stepper.mjs +4 -4
- package/fesm2022/mis-crystal-design-system-input-stepper.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-input.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-input.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-loader.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-menu.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-menu.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-mobile-filter.mjs +9 -7
- package/fesm2022/mis-crystal-design-system-mobile-filter.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-modal.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs +26 -14
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs +14 -7
- package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-phone-input.mjs +5 -49
- package/fesm2022/mis-crystal-design-system-phone-input.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-radio-button.mjs +4 -4
- package/fesm2022/mis-crystal-design-system-radio-button.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-ske-loader.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-ske-loader.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-slider.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-slider.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-snackbar.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-snackbar.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs +39 -26
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-star-rating.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-star-rating.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-switch.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-switch.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-table.mjs +41 -17
- package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-timepicker.mjs +16 -12
- package/fesm2022/mis-crystal-design-system-timepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-timerangepicker.mjs +13 -7
- package/fesm2022/mis-crystal-design-system-timerangepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-toast.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-tooltip.mjs +18 -11
- package/fesm2022/mis-crystal-design-system-tooltip.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-utils.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs +1 -1
- package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-widgets.mjs.map +1 -1
- package/filter/animations/slideFromRight.d.ts +1 -0
- package/filter/filter-panel/filter-panel.component.d.ts +51 -0
- package/filter/filters.module.d.ts +18 -0
- package/filter/has-value.pipe.d.ts +12 -0
- package/filter/index.d.ts +1 -0
- package/filter/public_api.d.ts +4 -0
- package/multi-select-dropdown/multi-select-dropdown.component.d.ts +3 -1
- package/package.json +24 -18
- package/phone-input/phone-input.component.d.ts +6 -15
- package/specificdatepicker/public_api.d.ts +2 -3
- package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +1 -0
- package/styles/mis-mixins.scss +46 -0
- package/styles/mis-old-icon-styles.scss +498 -0
- package/table/public_api.d.ts +1 -2
- package/timepicker/timepicker.component.d.ts +3 -2
- package/timerangepicker/public_api.d.ts +1 -0
- package/timerangepicker/timerangepicker.component.d.ts +3 -1
- package/tooltip/tooltip-container/tooltip.component.d.ts +2 -1
- package/tooltip/tooltip.directive.d.ts +3 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLm5hbWVzcGFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0ubmFtZXNwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgbmFtZXNwYWNlIE5zRHluYW1pY0Zvcm0ge1xuICBleHBvcnQgaW50ZXJmYWNlIElEeW5hbWljRmllbGQge1xuICAgIGZpZWxkVHlwZTogXCJpbnB1dFwiIHwgXCJib29sZWFuXCIgfCBcInNpbmdsZVNlbGVjdFwiIHwgXCJtdWx0aVNlbGVjdFwiO1xuICAgIGZpZWxkSW5wdXRUeXBlOiBcInRleHRcIiB8IFwibnVtYmVyXCIgfCBcInRleHRhcmVhXCIgfCBcInRvZ2dsZVwiIHwgXCJjaGVja2JveFwiIHwgXCJkcm9wZG93blwiIHwgXCJyYWRpb1wiIHwgXCJkYXRlXCI7XG4gICAgZmllbGRDb25maWc/OiBhbnk7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBtZXNzYWdlVGVtcGxhdGU/OiBzdHJpbmc7XG4gICAgc3ViRmllbGRWYWx1ZT86IGJvb2xlYW47XG4gICAgY29uZmlnTmFtZTogc3RyaW5nO1xuICAgIHBhcmVudENvbmZpZ05hbWU/OiBzdHJpbmc7XG4gICAgcGFyZW50Q29uZmlnVmFsdWU/OiBzdHJpbmc7XG4gICAgYmFja2VkRmllbGRUeXBlOiBhbnk7XG4gICAgbWluVmFsPzogbnVtYmVyOyAvLyBOdW1iZXIgaW5wdXQgYW5kIHRleHQgYXJlYSBvciB0ZXh0IG9yIG51bWJlciBtaW4gdmFsdWVcbiAgICBtYXhWYWw/OiBudW1iZXI7XG4gICAgdmFsaWRhdG9ycz86IEFycmF5PElEeW5hbWljRmllbGRWYWxpZGF0b3I+XG4gICAgc3ViRmllbGRzPzogQXJyYXk8SUR5bmFtaWNGaWVsZD5cbiAgICBpdGVtc0xpc3Q/OiBBcnJheTx7XG4gICAgICBsYWJlbDogc3RyaW5nIHwgbnVtYmVyXG4gICAgICB2YWx1ZTogYW55XG4gICAgfT47IC8vIHJhZGlvLCBjaGVja2JveGVzIGFuZCBkcm9wZG93bnNcbiAgICBwbGFjZWhvbGRlclRleHQ/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLm5hbWVzcGFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0ubmFtZXNwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgbmFtZXNwYWNlIE5zRHluYW1pY0Zvcm0ge1xuICBleHBvcnQgaW50ZXJmYWNlIElEeW5hbWljRmllbGQge1xuICAgIGZpZWxkVHlwZTogXCJpbnB1dFwiIHwgXCJib29sZWFuXCIgfCBcInNpbmdsZVNlbGVjdFwiIHwgXCJtdWx0aVNlbGVjdFwiO1xuICAgIGZpZWxkSW5wdXRUeXBlOiBcInRleHRcIiB8IFwibnVtYmVyXCIgfCBcInRleHRhcmVhXCIgfCBcInRvZ2dsZVwiIHwgXCJjaGVja2JveFwiIHwgXCJkcm9wZG93blwiIHwgXCJyYWRpb1wiIHwgXCJkYXRlXCI7XG4gICAgZmllbGRDb25maWc/OiBhbnk7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBtZXNzYWdlVGVtcGxhdGU/OiBzdHJpbmc7XG4gICAgc3ViRmllbGRWYWx1ZT86IGJvb2xlYW47XG4gICAgY29uZmlnTmFtZTogc3RyaW5nO1xuICAgIHBhcmVudENvbmZpZ05hbWU/OiBzdHJpbmc7XG4gICAgcGFyZW50Q29uZmlnVmFsdWU/OiBzdHJpbmc7XG4gICAgYmFja2VkRmllbGRUeXBlOiBhbnk7XG4gICAgbWluVmFsPzogbnVtYmVyOyAvLyBOdW1iZXIgaW5wdXQgYW5kIHRleHQgYXJlYSBvciB0ZXh0IG9yIG51bWJlciBtaW4gdmFsdWVcbiAgICBtYXhWYWw/OiBudW1iZXI7XG4gICAgdmFsaWRhdG9ycz86IEFycmF5PElEeW5hbWljRmllbGRWYWxpZGF0b3I+XG4gICAgc3ViRmllbGRzPzogQXJyYXk8SUR5bmFtaWNGaWVsZD5cbiAgICBpdGVtc0xpc3Q/OiBBcnJheTx7XG4gICAgICBsYWJlbDogc3RyaW5nIHwgbnVtYmVyXG4gICAgICB2YWx1ZTogYW55XG4gICAgfT47IC8vIHJhZGlvLCBjaGVja2JveGVzIGFuZCBkcm9wZG93bnNcbiAgICBwbGFjZWhvbGRlclRleHQ/OiBzdHJpbmc7XG4gICAgaXNSZW1vdmVhYmxlPzogYm9vbGVhbjtcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIElEeW5hbWljRmllbGRWYWxpZGF0b3J7XG4gICAgbWVzc2FnZTogc3RyaW5nXG4gICAgdHlwZTogVEZvcm1WYWxpZGF0b3JcbiAgICB2YWx1ZT86IHN0cmluZyB8IG51bWJlclxuICB9XG4gIGV4cG9ydCB0eXBlIFRGb3JtVmFsaWRhdG9yID0gXCJSZXF1aXJlZFwiIHwgXCJNaW5MZW5ndGhcIiB8IFwiTWF4TGVuZ3RoXCIgfCBcIkVtYWlsXCIgfCBcIkN1c3RvbVwiXG4gIGV4cG9ydCBpbnRlcmZhY2UgSUR5bmFtaWNGb3JtQVBJIHtcbiAgICBkZWZhdWx0Rm9ybVZhbHVlcygpOiB7fTtcbiAgfVxufVxuIl19
|
|
@@ -142,4 +142,4 @@ export class FabComponent {
|
|
|
142
142
|
args: ["document:click", ["$event"]]
|
|
143
143
|
}] }); })();
|
|
144
144
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FabComponent, { className: "FabComponent" }); })();
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2ZhYi9mYWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZmFiL2ZhYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjO0FBRWQsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztJQ0EzRSwrQkFBNEM7SUFDMUMsWUFDRjtJQUFBLGlCQUFNOzs7SUFESixjQUNGO0lBREUsOENBQ0Y7Ozs7SUFIRiw4QkFBb0c7SUFBMUIsNE1BQVMseUJBQWUsS0FBQztJQUNqRywrRUFBNEM7SUFHNUMsK0JBS0M7SUFDQywwQkFBeUM7SUFFN0MsQUFERSxpQkFBTSxFQUNGOzs7SUFYRSxjQUFnQjtJQUFoQixvQ0FBZ0I7SUFLcEIsY0FFRTtJQUZGLDBGQUVFO0lBRUcsY0FBaUI7SUFBakIsb0RBQWlCOzs7SUFYNUIsOEJBQWtEO0lBQ2hELHlFQUFvRztJQWF0RyxpQkFBTTs7O0lBZGdDLHVDQUFXO0lBQ1IsY0FBb0I7SUFBcEIsZ0RBQW9COzs7O0lBRi9ELDhCQUFzQztJQUNwQyxtRUFBa0Q7SUFlbEQsOEJBTUM7SUFEQyxxS0FBUyxrQkFBVyxLQUFDOztJQUVyQiw4QkFRQztJQUNDLDBCQUtFO0lBR1IsQUFERSxBQURFLGlCQUFNLEVBQ0YsRUFDRjs7O0lBdkNvQixjQUFZO0lBQVosb0NBQVk7SUFpQmxDLGNBRUU7SUFGRixpSkFFRTtJQUlBLGNBQWdEO0lBQWhELHFFQUFnRDs7QURpQnRELE1BQU0sT0FBTyxZQUFZO0lBT3ZCLFlBQW9CLElB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LENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUN4RyxDQUFDO29CQUNGLE9BQU8sQ0FBQyxjQUFjLEVBQUU7d0JBQ3RCLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7d0JBQ25ELEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7d0JBQ3ZELFVBQVUsQ0FBQyxvQkFBb0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzt3QkFDM0QsVUFBVSxDQUFDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztxQkFDM0QsQ0FBQztpQkFDSDsyQ0FHUSxJQUFJO2tCQUFaLEtBQUs7WUFDRyxPQUFPO2tCQUFmLEtBQUs7WUFDRyxLQUFLO2tCQUFiLEtBQUs7WUFPTixRQUFRO2tCQURQLFlBQVk7bUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7O2tGQVQvQixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBmb3JtYXQgKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyB0cmlnZ2VyLCB0cmFuc2l0aW9uLCBzdHlsZSwgYW5pbWF0ZSwgc3RhdGUgfSBmcm9tIFwiQGFuZ3VsYXIvYW5pbWF0aW9uc1wiO1xuXG5leHBvcnQgdHlwZSBGYWJPcHRpb25zID0ge1xuICBiYWNrZ3JvdW5kQ29sb3JDbG9zZWQ/OiBzdHJpbmc7XG4gIGJhY2tncm91bmRDb2xvck9wZW5lZD86IHN0cmluZztcbiAgc2l6ZT86IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIEZhYkl0ZW0gPSB7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBpY29uOiBzdHJpbmc7XG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIGNsaWNrPzogKCkgPT4gYW55O1xufTtcblxuZXhwb3J0IHR5cGUgRmFiSXRlbXMgPSBGYWJJdGVtW107XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtaXMtZmFiXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vZmFiLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9mYWIuY29tcG9uZW50LnNjc3NcIl0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKFwic2xpZGVVcEZhYlwiLCBbXG4gICAgICB0cmFuc2l0aW9uKFwiOmVudGVyXCIsIFtcbiAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWSg1MHB4KVwiLCBvcGFjaXR5OiAwIH0pLFxuICAgICAgICBhbmltYXRlKFwiMzAwbXMgZWFzZS1vdXRcIiwgc3R5bGUoeyB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWSgwcHgpXCIsIG9wYWNpdHk6IDEgfSkpXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oXCI6bGVhdmVcIiwgW2FuaW1hdGUoXCIyMDBtcyBlYXNlLW91dFwiLCBzdHlsZSh7IHRyYW5zZm9ybTogXCJ0cmFuc2xhdGVZKDcwcHgpXCIsIG9wYWNpdHk6IDAgfSkpXSlcbiAgICBdKSxcbiAgICB0cmlnZ2VyKFwicm90YXRlQnV0dG9uXCIsIFtcbiAgICAgIHN0YXRlKFwiZGVmYXVsdFwiLCBzdHlsZSh7IHRyYW5zZm9ybTogXCJyb3RhdGUoMClcIiB9KSksXG4gICAgICBzdGF0ZShcInJvdGF0ZWRcIiwgc3R5bGUoeyB0cmFuc2Zvcm06IFwicm90YXRlKDQ1ZGVnKVwiIH0pKSxcbiAgICAgIHRyYW5zaXRpb24oXCJyb3RhdGVkID0+IGRlZmF1bHRcIiwgYW5pbWF0ZShcIjMwMG1zIGVhc2Utb3V0XCIpKSxcbiAgICAgIHRyYW5zaXRpb24oXCJkZWZhdWx0ID0+IHJvdGF0ZWRcIiwgYW5pbWF0ZShcIjIwMG1zIGVhc2UtaW5cIikpXG4gICAgXSlcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGYWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHNob3c6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgb3B0aW9uczogRmFiT3B0aW9ucyA9IHt9O1xuICBASW5wdXQoKSBpdGVtczogRmFiSXRlbXMgPSBbXTtcblxuICBpc09wZW46IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgQEhvc3RMaXN0ZW5lcihcImRvY3VtZW50OmNsaWNrXCIsIFtcIiRldmVudFwiXSlcbiAgY2xpY2tvdXQoZXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuZVJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgIHRoaXMuY2xvc2VGYWIoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICBzaXplOiA1NixcbiAgICAgIGJhY2tncm91bmRDb2xvckNsb3NlZDogXCIjMDkzN0IyXCIsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3JPcGVuZWQ6IFwiIzNhNWZjMVwiLFxuICAgICAgLi4udGhpcy5vcHRpb25zXG4gICAgfTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge31cblxuICBjbGlja0l0ZW0oaXRlbTogRmFiSXRlbSkge1xuICAgIHRoaXMuY2xvc2VGYWIoKTtcbiAgICBpdGVtLmNsaWNrKCk7XG4gIH1cblxuICBjbG9zZUZhYigpIHtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICB9XG5cbiAgdG9vZ2xlRmFiKCkge1xuICAgIHRoaXMuaXNPcGVuID0gIXRoaXMuaXNPcGVuO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmFiLXdyYXBwZXJcIiAqbmdJZj1cInNob3dcIj5cbiAgPGRpdiBjbGFzcz1cImZhYi1pdGVtc1wiICpuZ0lmPVwiaXNPcGVuXCIgQHNsaWRlVXBGYWI+XG4gICAgPGRpdiBjbGFzcz1cImZhYi1pdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXMucmV2ZXJzZSgpOyBsZXQgaSA9IGluZGV4XCIgKGNsaWNrKT1cImNsaWNrSXRlbShpdGVtKVwiPlxuICAgICAgPGRpdiAqbmdJZj1cIml0ZW0ubGFiZWxcIiBjbGFzcz1cImZhYi10b29sdGlwXCI+XG4gICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZhYi1idXR0b25cIlxuICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBpdGVtLmJhY2tncm91bmRDb2xvciB8fCAnIzA5MzdCMidcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIDxpbWcgW3NyY109XCJpdGVtLmljb25cIiBjbGFzcz1cImFkZC1pbWdcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmYWItY29udGFpbmVyXCJcbiAgICBbbmdTdHlsZV09XCJ7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IGlzT3BlbiA/IG9wdGlvbnMuYmFja2dyb3VuZENvbG9yT3BlbmVkIDogb3B0aW9ucy5iYWNrZ3JvdW5kQ29sb3JDbG9zZWRcbiAgICB9XCJcbiAgICAoY2xpY2spPVwidG9vZ2xlRmFiKClcIlxuICA+XG4gICAgPHN2Z1xuICAgICAgW0Byb3RhdGVCdXR0b25dPVwiaXNPcGVuID8gJ3JvdGF0ZWQnIDogJ2RlZmF1bHQnXCJcbiAgICAgIGNsYXNzPVwiYWRkLWltZ1wiXG4gICAgICB3aWR0aD1cIjI0XCJcbiAgICAgIGhlaWdodD1cIjI0XCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTEzLjE0MjQgNS4xNTYwN0MxMy4xNDI0IDQuNTE3NTkgMTIuNjMxMyA0IDEyLjAwMDkgNEMxMS4zNzA0IDQgMTAuODU5NCA0LjUxNzU5IDEwLjg1OTQgNS4xNTYwN1YxMC44NDIxSDUuMTQxNDlDNC41MTEwNiAxMC44NDIxIDQgMTEuMzU5NyA0IDExLjk5ODJDNCAxMi42MzY3IDQuNTExMDYgMTMuMTU0MyA1LjE0MTQ5IDEzLjE1NDNIMTAuODU5NFYxOC44NDM5QzEwLjg1OTQgMTkuNDgyNCAxMS4zNzA0IDIwIDEyLjAwMDkgMjBDMTIuNjMxMyAyMCAxMy4xNDI0IDE5LjQ4MjQgMTMuMTQyNCAxOC44NDM5VjEzLjE1NDNIMTguODU4NUMxOS40ODg5IDEzLjE1NDMgMjAgMTIuNjM2NyAyMCAxMS45OTgyQzIwIDExLjM1OTcgMTkuNDg4OSAxMC44NDIxIDE4Ljg1ODUgMTAuODQyMUgxMy4xNDI0VjUuMTU2MDdaXCJcbiAgICAgICAgZmlsbD1cIndoaXRlXCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { trigger, style, animate, transition } from '@angular/animations';
|
|
2
|
+
export const slideFromRight = trigger('slideFromRight', [
|
|
3
|
+
transition(':enter', [
|
|
4
|
+
style({ transform: 'translateX(100%)' }),
|
|
5
|
+
animate('200ms cubic-bezier(0.4, 0.0, 0.2, 1)', style({ transform: 'translateX(0)' }))
|
|
6
|
+
]),
|
|
7
|
+
transition(':leave', [
|
|
8
|
+
style({ transform: 'translateX(0)' }),
|
|
9
|
+
animate('200ms cubic-bezier(0.4, 0.0, 0.2, 1)', style({ transform: 'translateX(100%)' }))
|
|
10
|
+
])
|
|
11
|
+
]);
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVGcm9tUmlnaHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9maWx0ZXIvYW5pbWF0aW9ucy9zbGlkZUZyb21SaWdodC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFMUUsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtJQUNwRCxVQUFVLENBQUMsUUFBUSxFQUFFO1FBQ2pCLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxzQ0FBc0MsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztLQUN6RixDQUFDO0lBRUYsVUFBVSxDQUFDLFFBQVEsRUFBRTtRQUNqQixLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUM7UUFDckMsT0FBTyxDQUFDLHNDQUFzQyxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7S0FDNUYsQ0FBQztDQUNMLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRyaWdnZXIsIHN0eWxlLCBhbmltYXRlLCB0cmFuc2l0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBzbGlkZUZyb21SaWdodCA9IHRyaWdnZXIoJ3NsaWRlRnJvbVJpZ2h0JywgW1xuICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDEwMCUpJyB9KSxcbiAgICAgICAgYW5pbWF0ZSgnMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpJywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyB9KSlcbiAgICBdKSxcblxuICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyB9KSxcbiAgICAgICAgYW5pbWF0ZSgnMjAwbXMgY3ViaWMtYmV6aWVyKDAuNCwgMC4wLCAwLjIsIDEpJywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDEwMCUpJyB9KSlcbiAgICBdKVxuXSk7XG4iXX0=
|
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { slideFromRight } from '../animations/slideFromRight';
|
|
3
|
+
import { FormControl, FormGroup } from '@angular/forms';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../has-value.pipe";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
import * as i3 from "mis-crystal-design-system/button";
|
|
8
|
+
import * as i4 from "@angular/forms";
|
|
9
|
+
import * as i5 from "mis-crystal-design-system/multi-select-dropdown";
|
|
10
|
+
import * as i6 from "mis-crystal-design-system/dropdown";
|
|
11
|
+
import * as i7 from "mis-crystal-design-system/input";
|
|
12
|
+
import * as i8 from "mis-crystal-design-system/datepicker_v2";
|
|
13
|
+
import * as i9 from "mis-crystal-design-system/daterangepicker_v2";
|
|
14
|
+
import * as i10 from "mis-crystal-design-system/checkbox";
|
|
15
|
+
function FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_3_Template(rf, ctx) { if (rf & 1) {
|
|
16
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
17
|
+
i0.ɵɵelementContainerStart(0);
|
|
18
|
+
i0.ɵɵelementStart(1, "div", 17)(2, "mis-multi-select-dropdown", 18);
|
|
19
|
+
i0.ɵɵlistener("onChange", function FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_3_Template_mis_multi_select_dropdown_onChange_2_listener($event) { i0.ɵɵrestoreView(_r3); const filter_r4 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.handleSelect($event, filter_r4.key, filter_r4)); });
|
|
20
|
+
i0.ɵɵelementEnd()();
|
|
21
|
+
i0.ɵɵelementContainerEnd();
|
|
22
|
+
} if (rf & 2) {
|
|
23
|
+
const filter_r4 = i0.ɵɵnextContext(2).$implicit;
|
|
24
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
25
|
+
i0.ɵɵadvance(2);
|
|
26
|
+
i0.ɵɵproperty("label", filter_r4.placeholder || "Select")("selectedItems", ctx_r1.filterForm.get(filter_r4.key).value)("data", filter_r4.options)("searchEnabled", true)("showSelectedCount", true)("enableSelectAll", true)("hideApplyButton", false);
|
|
27
|
+
} }
|
|
28
|
+
function FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
29
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
30
|
+
i0.ɵɵelementContainerStart(0);
|
|
31
|
+
i0.ɵɵelementStart(1, "div", 17)(2, "mis-dropdown", 19);
|
|
32
|
+
i0.ɵɵlistener("onChange", function FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_4_Template_mis_dropdown_onChange_2_listener($event) { i0.ɵɵrestoreView(_r5); const filter_r4 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.handleSelect($event, filter_r4.key, filter_r4)); });
|
|
33
|
+
i0.ɵɵelementEnd()();
|
|
34
|
+
i0.ɵɵelementContainerEnd();
|
|
35
|
+
} if (rf & 2) {
|
|
36
|
+
const filter_r4 = i0.ɵɵnextContext(2).$implicit;
|
|
37
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
38
|
+
i0.ɵɵadvance(2);
|
|
39
|
+
i0.ɵɵproperty("data", filter_r4.options)("searchEnabled", true)("selectedItem", ctx_r1.filterForm.get(filter_r4.key).value);
|
|
40
|
+
} }
|
|
41
|
+
function FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_5_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
42
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
43
|
+
i0.ɵɵelementStart(0, "div", 22)(1, "mis-checkbox", 23);
|
|
44
|
+
i0.ɵɵlistener("valueChange", function FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_5_div_2_Template_mis_checkbox_valueChange_1_listener($event) { const option_r7 = i0.ɵɵrestoreView(_r6).$implicit; const filter_r4 = i0.ɵɵnextContext(3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.handleCheckbox($event, filter_r4.key, option_r7.value, filter_r4)); });
|
|
45
|
+
i0.ɵɵelementEnd();
|
|
46
|
+
i0.ɵɵelementStart(2, "span", 24);
|
|
47
|
+
i0.ɵɵtext(3);
|
|
48
|
+
i0.ɵɵelementEnd()();
|
|
49
|
+
} if (rf & 2) {
|
|
50
|
+
let tmp_9_0;
|
|
51
|
+
const option_r7 = ctx.$implicit;
|
|
52
|
+
const filter_r4 = i0.ɵɵnextContext(3).$implicit;
|
|
53
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
54
|
+
i0.ɵɵadvance();
|
|
55
|
+
i0.ɵɵproperty("type", "Default")("checked", (tmp_9_0 = ctx_r1.filterForm.get(filter_r4.key).value) == null ? null : tmp_9_0.includes(option_r7.value));
|
|
56
|
+
i0.ɵɵadvance(2);
|
|
57
|
+
i0.ɵɵtextInterpolate(option_r7.label);
|
|
58
|
+
} }
|
|
59
|
+
function FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_5_Template(rf, ctx) { if (rf & 1) {
|
|
60
|
+
i0.ɵɵelementContainerStart(0);
|
|
61
|
+
i0.ɵɵelementStart(1, "div", 20);
|
|
62
|
+
i0.ɵɵtemplate(2, FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_5_div_2_Template, 4, 3, "div", 21);
|
|
63
|
+
i0.ɵɵelementEnd();
|
|
64
|
+
i0.ɵɵelementContainerEnd();
|
|
65
|
+
} if (rf & 2) {
|
|
66
|
+
const filter_r4 = i0.ɵɵnextContext(2).$implicit;
|
|
67
|
+
i0.ɵɵadvance(2);
|
|
68
|
+
i0.ɵɵproperty("ngForOf", filter_r4.options);
|
|
69
|
+
} }
|
|
70
|
+
function FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_6_Template(rf, ctx) { if (rf & 1) {
|
|
71
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
72
|
+
i0.ɵɵelementContainerStart(0);
|
|
73
|
+
i0.ɵɵtext(1);
|
|
74
|
+
i0.ɵɵelementStart(2, "mis-input", 25)(3, "input", 26);
|
|
75
|
+
i0.ɵɵlistener("dateChange", function FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_6_Template_input_dateChange_3_listener($event) { i0.ɵɵrestoreView(_r8); const filter_r4 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onDateChange($event, filter_r4.key, filter_r4)); });
|
|
76
|
+
i0.ɵɵelementEnd()();
|
|
77
|
+
i0.ɵɵelementContainerEnd();
|
|
78
|
+
} if (rf & 2) {
|
|
79
|
+
const filter_r4 = i0.ɵɵnextContext(2).$implicit;
|
|
80
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
81
|
+
i0.ɵɵadvance();
|
|
82
|
+
i0.ɵɵtextInterpolate1(" ", filter_r4.placeholder, " ");
|
|
83
|
+
i0.ɵɵadvance(2);
|
|
84
|
+
i0.ɵɵproperty("dpConfig", filter_r4.datepickerConfig)("placeholder", ctx_r1.filterForm.get(filter_r4.key).value ? ctx_r1.filterForm.get(filter_r4.key).value : filter_r4.placeholder || "Select")("value", ctx_r1.filterForm.get(filter_r4.key).value ? ctx_r1.filterForm.get(filter_r4.key).value : filter_r4.placeholder || "Select")("selectedDate", ctx_r1.filterForm.get(filter_r4.key).value)("positionX", "end")("offsetX", -10);
|
|
85
|
+
} }
|
|
86
|
+
function FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_7_Template(rf, ctx) { if (rf & 1) {
|
|
87
|
+
const _r9 = i0.ɵɵgetCurrentView();
|
|
88
|
+
i0.ɵɵelementContainerStart(0);
|
|
89
|
+
i0.ɵɵelementStart(1, "mis-input", 25)(2, "input", 27);
|
|
90
|
+
i0.ɵɵlistener("dateChange", function FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_7_Template_input_dateChange_2_listener($event) { i0.ɵɵrestoreView(_r9); const filter_r4 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onDateChange($event, filter_r4.key, filter_r4)); });
|
|
91
|
+
i0.ɵɵelementEnd()();
|
|
92
|
+
i0.ɵɵelementContainerEnd();
|
|
93
|
+
} if (rf & 2) {
|
|
94
|
+
const filter_r4 = i0.ɵɵnextContext(2).$implicit;
|
|
95
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
96
|
+
i0.ɵɵadvance(2);
|
|
97
|
+
i0.ɵɵproperty("placeholder", !ctx_r1.dateRangeSelectedDates.startDate && !ctx_r1.dateRangeSelectedDates.endDate ? filter_r4.placeholder || "Select" : ctx_r1.dateRangeSelectedDates.startDate + " - " + ctx_r1.dateRangeSelectedDates.endDate)("value", !ctx_r1.dateRangeSelectedDates.startDate && !ctx_r1.dateRangeSelectedDates.endDate ? filter_r4.placeholder || "Select" : ctx_r1.dateRangeSelectedDates.startDate + " - " + ctx_r1.dateRangeSelectedDates.endDate)("positionX", "start")("positionY", "top")("selectedDates", ctx_r1.dateRangeSelectedDates)("dpConfig", filter_r4.dateRangePickerConfig);
|
|
98
|
+
} }
|
|
99
|
+
function FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_8_Template(rf, ctx) { if (rf & 1) {
|
|
100
|
+
i0.ɵɵelementContainerStart(0);
|
|
101
|
+
i0.ɵɵelementStart(1, "mis-input", 25);
|
|
102
|
+
i0.ɵɵelement(2, "input", 28);
|
|
103
|
+
i0.ɵɵelementEnd();
|
|
104
|
+
i0.ɵɵelementContainerEnd();
|
|
105
|
+
} if (rf & 2) {
|
|
106
|
+
const filter_r4 = i0.ɵɵnextContext(2).$implicit;
|
|
107
|
+
i0.ɵɵadvance(2);
|
|
108
|
+
i0.ɵɵproperty("placeholder", filter_r4.placeholder || "Type here")("formControlName", filter_r4.key);
|
|
109
|
+
} }
|
|
110
|
+
function FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_9_Template(rf, ctx) { if (rf & 1) {
|
|
111
|
+
i0.ɵɵelementContainerStart(0);
|
|
112
|
+
i0.ɵɵelementStart(1, "mis-input", 25);
|
|
113
|
+
i0.ɵɵelement(2, "input", 29);
|
|
114
|
+
i0.ɵɵelementEnd();
|
|
115
|
+
i0.ɵɵelementContainerEnd();
|
|
116
|
+
} if (rf & 2) {
|
|
117
|
+
const filter_r4 = i0.ɵɵnextContext(2).$implicit;
|
|
118
|
+
i0.ɵɵadvance(2);
|
|
119
|
+
i0.ɵɵproperty("placeholder", filter_r4.placeholder || "Type here")("formControlName", filter_r4.key);
|
|
120
|
+
} }
|
|
121
|
+
function FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_10_Template(rf, ctx) { if (rf & 1) {
|
|
122
|
+
i0.ɵɵelementContainerStart(0);
|
|
123
|
+
i0.ɵɵelementStart(1, "div", 30)(2, "div", 31)(3, "span");
|
|
124
|
+
i0.ɵɵtext(4);
|
|
125
|
+
i0.ɵɵelementEnd();
|
|
126
|
+
i0.ɵɵelement(5, "input", 32);
|
|
127
|
+
i0.ɵɵelementEnd();
|
|
128
|
+
i0.ɵɵelementStart(6, "div", 31)(7, "span");
|
|
129
|
+
i0.ɵɵtext(8);
|
|
130
|
+
i0.ɵɵelementEnd();
|
|
131
|
+
i0.ɵɵelement(9, "input", 33);
|
|
132
|
+
i0.ɵɵelementEnd()();
|
|
133
|
+
i0.ɵɵelementContainerEnd();
|
|
134
|
+
} if (rf & 2) {
|
|
135
|
+
let tmp_11_0;
|
|
136
|
+
const filter_r4 = i0.ɵɵnextContext(2).$implicit;
|
|
137
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
138
|
+
i0.ɵɵadvance();
|
|
139
|
+
i0.ɵɵproperty("formGroup", ctx_r1.filterForm.get(filter_r4.key));
|
|
140
|
+
i0.ɵɵadvance(3);
|
|
141
|
+
i0.ɵɵtextInterpolate((filter_r4 == null ? null : filter_r4.options == null ? null : filter_r4.options[0] == null ? null : filter_r4.options[0].label) || "Min");
|
|
142
|
+
i0.ɵɵadvance();
|
|
143
|
+
i0.ɵɵproperty("placeholder", filter_r4.placeholder || "Type here");
|
|
144
|
+
i0.ɵɵadvance(3);
|
|
145
|
+
i0.ɵɵtextInterpolate((filter_r4 == null ? null : filter_r4.options == null ? null : filter_r4.options[1] == null ? null : filter_r4.options[1].label) || "Max");
|
|
146
|
+
i0.ɵɵadvance();
|
|
147
|
+
i0.ɵɵproperty("placeholder", filter_r4.placeholder || "Type here")("min", (ctx_r1.filterForm.get == null ? null : (tmp_11_0 = ctx_r1.filterForm.get(filter_r4.key)) == null ? null : (tmp_11_0 = tmp_11_0.get("min")) == null ? null : tmp_11_0.value) || 0);
|
|
148
|
+
} }
|
|
149
|
+
function FilterPanelComponent_div_0_ng_container_9_div_1_div_11_Template(rf, ctx) { if (rf & 1) {
|
|
150
|
+
i0.ɵɵelement(0, "div", 34);
|
|
151
|
+
} }
|
|
152
|
+
function FilterPanelComponent_div_0_ng_container_9_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
153
|
+
i0.ɵɵelementStart(0, "div", 13)(1, "span", 14);
|
|
154
|
+
i0.ɵɵtext(2);
|
|
155
|
+
i0.ɵɵelementEnd();
|
|
156
|
+
i0.ɵɵtemplate(3, FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_3_Template, 3, 7, "ng-container", 15)(4, FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_4_Template, 3, 3, "ng-container", 15)(5, FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_5_Template, 3, 1, "ng-container", 15)(6, FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_6_Template, 4, 7, "ng-container", 15)(7, FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_7_Template, 3, 6, "ng-container", 15)(8, FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_8_Template, 3, 2, "ng-container", 15)(9, FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_9_Template, 3, 2, "ng-container", 15)(10, FilterPanelComponent_div_0_ng_container_9_div_1_ng_container_10_Template, 10, 6, "ng-container", 15)(11, FilterPanelComponent_div_0_ng_container_9_div_1_div_11_Template, 1, 0, "div", 16);
|
|
157
|
+
i0.ɵɵelementEnd();
|
|
158
|
+
} if (rf & 2) {
|
|
159
|
+
const ctx_r9 = i0.ɵɵnextContext();
|
|
160
|
+
const filter_r4 = ctx_r9.$implicit;
|
|
161
|
+
const last_r11 = ctx_r9.last;
|
|
162
|
+
i0.ɵɵadvance(2);
|
|
163
|
+
i0.ɵɵtextInterpolate(filter_r4.title);
|
|
164
|
+
i0.ɵɵadvance();
|
|
165
|
+
i0.ɵɵproperty("ngIf", filter_r4.type === "multiSelect");
|
|
166
|
+
i0.ɵɵadvance();
|
|
167
|
+
i0.ɵɵproperty("ngIf", filter_r4.type === "select");
|
|
168
|
+
i0.ɵɵadvance();
|
|
169
|
+
i0.ɵɵproperty("ngIf", filter_r4.type === "checkbox");
|
|
170
|
+
i0.ɵɵadvance();
|
|
171
|
+
i0.ɵɵproperty("ngIf", filter_r4.type === "datePicker");
|
|
172
|
+
i0.ɵɵadvance();
|
|
173
|
+
i0.ɵɵproperty("ngIf", filter_r4.type === "dateRangePicker");
|
|
174
|
+
i0.ɵɵadvance();
|
|
175
|
+
i0.ɵɵproperty("ngIf", filter_r4.type === "text");
|
|
176
|
+
i0.ɵɵadvance();
|
|
177
|
+
i0.ɵɵproperty("ngIf", filter_r4.type === "number");
|
|
178
|
+
i0.ɵɵadvance();
|
|
179
|
+
i0.ɵɵproperty("ngIf", filter_r4.type === "range");
|
|
180
|
+
i0.ɵɵadvance();
|
|
181
|
+
i0.ɵɵproperty("ngIf", !last_r11);
|
|
182
|
+
} }
|
|
183
|
+
function FilterPanelComponent_div_0_ng_container_9_Template(rf, ctx) { if (rf & 1) {
|
|
184
|
+
i0.ɵɵelementContainerStart(0);
|
|
185
|
+
i0.ɵɵtemplate(1, FilterPanelComponent_div_0_ng_container_9_div_1_Template, 12, 10, "div", 12);
|
|
186
|
+
i0.ɵɵelementContainerEnd();
|
|
187
|
+
} if (rf & 2) {
|
|
188
|
+
const filter_r4 = ctx.$implicit;
|
|
189
|
+
i0.ɵɵadvance();
|
|
190
|
+
i0.ɵɵproperty("ngIf", !filter_r4.hidden);
|
|
191
|
+
} }
|
|
192
|
+
function FilterPanelComponent_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
193
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
194
|
+
i0.ɵɵelementStart(0, "div", 1)(1, "div", 2)(2, "span");
|
|
195
|
+
i0.ɵɵtext(3, "Filters");
|
|
196
|
+
i0.ɵɵelementEnd();
|
|
197
|
+
i0.ɵɵnamespaceSVG();
|
|
198
|
+
i0.ɵɵelementStart(4, "svg", 3);
|
|
199
|
+
i0.ɵɵlistener("click", function FilterPanelComponent_div_0_Template_svg_click_4_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closePanel()); });
|
|
200
|
+
i0.ɵɵelementStart(5, "g", 4);
|
|
201
|
+
i0.ɵɵelement(6, "path", 5);
|
|
202
|
+
i0.ɵɵelementEnd()()();
|
|
203
|
+
i0.ɵɵnamespaceHTML();
|
|
204
|
+
i0.ɵɵelement(7, "div", 6);
|
|
205
|
+
i0.ɵɵelementStart(8, "div", 7);
|
|
206
|
+
i0.ɵɵtemplate(9, FilterPanelComponent_div_0_ng_container_9_Template, 2, 1, "ng-container", 8);
|
|
207
|
+
i0.ɵɵelementEnd();
|
|
208
|
+
i0.ɵɵelementStart(10, "div", 9)(11, "mis-button", 10);
|
|
209
|
+
i0.ɵɵlistener("click", function FilterPanelComponent_div_0_Template_mis_button_click_11_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.resetFilters()); });
|
|
210
|
+
i0.ɵɵelementEnd();
|
|
211
|
+
i0.ɵɵelementStart(12, "mis-button", 11);
|
|
212
|
+
i0.ɵɵlistener("click", function FilterPanelComponent_div_0_Template_mis_button_click_12_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.applyFilters()); });
|
|
213
|
+
i0.ɵɵelementEnd()()();
|
|
214
|
+
} if (rf & 2) {
|
|
215
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
216
|
+
i0.ɵɵproperty("@slideFromRight", undefined);
|
|
217
|
+
i0.ɵɵadvance(8);
|
|
218
|
+
i0.ɵɵproperty("formGroup", ctx_r1.filterForm);
|
|
219
|
+
i0.ɵɵadvance();
|
|
220
|
+
i0.ɵɵproperty("ngForOf", ctx_r1.config);
|
|
221
|
+
i0.ɵɵadvance(2);
|
|
222
|
+
i0.ɵɵproperty("name", "Clear All")("size", "Small")("type", "Text");
|
|
223
|
+
i0.ɵɵadvance();
|
|
224
|
+
i0.ɵɵproperty("name", "Apply")("size", "Small")("type", "Solid")("disabled", ctx_r1.filterForm.invalid);
|
|
225
|
+
} }
|
|
226
|
+
export class FilterPanelComponent {
|
|
227
|
+
constructor(hasValue) {
|
|
228
|
+
this.hasValue = hasValue;
|
|
229
|
+
this.onClose = new EventEmitter();
|
|
230
|
+
this.onApply = new EventEmitter();
|
|
231
|
+
this.config = [];
|
|
232
|
+
this.filterForm = new FormGroup([]);
|
|
233
|
+
this.dateRangeSelectedDates = {
|
|
234
|
+
startDate: '',
|
|
235
|
+
endDate: '',
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
ngOnInit() {
|
|
239
|
+
this.initializeFormControls();
|
|
240
|
+
}
|
|
241
|
+
ngOnChanges(changes) {
|
|
242
|
+
if (!changes.config?.firstChange) {
|
|
243
|
+
this.handleConfigChange();
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
handleConfigChange() {
|
|
247
|
+
this.config = this.config.filter(filter => !filter.hidden);
|
|
248
|
+
}
|
|
249
|
+
initializeFormControls() {
|
|
250
|
+
this.config.forEach((filter) => {
|
|
251
|
+
let control;
|
|
252
|
+
if (filter.type === 'range') {
|
|
253
|
+
control = new FormGroup({
|
|
254
|
+
min: new FormControl(null),
|
|
255
|
+
max: new FormControl(null),
|
|
256
|
+
}, {
|
|
257
|
+
validators: (group) => {
|
|
258
|
+
const min = group.get('min').value;
|
|
259
|
+
const max = group.get('max').value;
|
|
260
|
+
if (min !== null && max !== null && min > max) {
|
|
261
|
+
return { rangeError: 'Min value should be less than max value' };
|
|
262
|
+
}
|
|
263
|
+
return null;
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
else if (filter.type === 'multiSelect' || filter.type === 'checkbox') {
|
|
268
|
+
control = new FormControl([]);
|
|
269
|
+
}
|
|
270
|
+
else if (filter.type === 'select') {
|
|
271
|
+
control = new FormControl('');
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
274
|
+
control = new FormControl(null);
|
|
275
|
+
}
|
|
276
|
+
if (this.hasValue.transform(filter.defaultValue)) {
|
|
277
|
+
control.setValue(filter.defaultValue);
|
|
278
|
+
}
|
|
279
|
+
this.filterForm.addControl(filter.key, control);
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
closePanel() {
|
|
283
|
+
if (this.lastAppliedData) {
|
|
284
|
+
this.filterForm.setValue(this.lastAppliedData);
|
|
285
|
+
}
|
|
286
|
+
else {
|
|
287
|
+
this.clearFormValues();
|
|
288
|
+
}
|
|
289
|
+
this.onClose.emit();
|
|
290
|
+
}
|
|
291
|
+
updateSelectedShifts() {
|
|
292
|
+
if (this.show) {
|
|
293
|
+
const selectedShifts = [...this.filterForm.get('shiftTime').value];
|
|
294
|
+
const currentShifts = this.config.find((filter) => filter.key === 'shiftTime').options;
|
|
295
|
+
selectedShifts.forEach((shift) => {
|
|
296
|
+
if (!currentShifts.find((currentShift) => currentShift.value === shift.value)) {
|
|
297
|
+
selectedShifts.splice(selectedShifts.indexOf(shift), 1);
|
|
298
|
+
}
|
|
299
|
+
});
|
|
300
|
+
this.filterForm.get('shiftTime').setValue(selectedShifts);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
filterCount() {
|
|
304
|
+
let count = 0;
|
|
305
|
+
this.config.forEach((filter) => {
|
|
306
|
+
if (this.hasValue.transform(this.filterForm.get(filter.key).value)) {
|
|
307
|
+
if (filter.type === 'range' && this.filterForm.get(filter.key).value.min == null && this.filterForm.get(filter.key).value.max == null) {
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
count++;
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
return count;
|
|
314
|
+
}
|
|
315
|
+
applyFilters() {
|
|
316
|
+
if (this.filterForm.invalid) {
|
|
317
|
+
this.filterForm.markAllAsTouched();
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
this.lastAppliedData = { ...this.filterForm.value };
|
|
321
|
+
this.onApply.emit({
|
|
322
|
+
filterData: this.filterForm.value,
|
|
323
|
+
filterCount: this.filterCount()
|
|
324
|
+
});
|
|
325
|
+
this.show = false;
|
|
326
|
+
this.closePanel();
|
|
327
|
+
}
|
|
328
|
+
handleSelect(event, filterKey, filter) {
|
|
329
|
+
this.filterForm.get(filterKey).setValue(event);
|
|
330
|
+
if (filter.onChange) {
|
|
331
|
+
filter.onChange(event, this.config);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
onDateChange(event, filterKey, filter) {
|
|
335
|
+
this.filterForm.get(filterKey).setValue(event);
|
|
336
|
+
if (typeof event === 'object') {
|
|
337
|
+
this.dateRangeSelectedDates = {
|
|
338
|
+
startDate: event.startDate,
|
|
339
|
+
endDate: event.endDate,
|
|
340
|
+
};
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
console.log(this.filterForm.get(filterKey).value);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
handleCheckbox(event, filterKey, checkboxValue, filter) {
|
|
347
|
+
if (event.value) {
|
|
348
|
+
this.filterForm.get(filterKey).setValue([...this.filterForm.get(filterKey).value, checkboxValue]);
|
|
349
|
+
}
|
|
350
|
+
else {
|
|
351
|
+
const filterValue = this.filterForm.get(filterKey).value;
|
|
352
|
+
this.filterForm.get(filterKey).setValue(filterValue.filter((value) => value !== checkboxValue));
|
|
353
|
+
}
|
|
354
|
+
if (filter.onChange) {
|
|
355
|
+
filter.onChange(event, this.config, this.filterForm.value);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
clearFormValues() {
|
|
359
|
+
const resetValues = {};
|
|
360
|
+
this.config.forEach((filter) => {
|
|
361
|
+
let defaultValue = null;
|
|
362
|
+
if (filter.type === 'multiSelect' || filter.type === 'checkbox') {
|
|
363
|
+
defaultValue = [];
|
|
364
|
+
}
|
|
365
|
+
if (filter.type === 'range') {
|
|
366
|
+
defaultValue = { min: null, max: null };
|
|
367
|
+
}
|
|
368
|
+
resetValues[filter.key] = defaultValue;
|
|
369
|
+
});
|
|
370
|
+
this.filterForm.patchValue(resetValues);
|
|
371
|
+
}
|
|
372
|
+
resetFilters() {
|
|
373
|
+
this.clearFormValues();
|
|
374
|
+
this.applyFilters();
|
|
375
|
+
}
|
|
376
|
+
static { this.ɵfac = function FilterPanelComponent_Factory(t) { return new (t || FilterPanelComponent)(i0.ɵɵdirectiveInject(i1.HasValuePipe)); }; }
|
|
377
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FilterPanelComponent, selectors: [["mis-filter-panel"]], inputs: { show: "show", config: "config" }, outputs: { onClose: "onClose", onApply: "onApply" }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [["class", "filter-panel-container", 4, "ngIf"], [1, "filter-panel-container"], [1, "panel-header"], ["width", "25", "height", "25", "viewBox", "0 0 25 25", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "close-icon", 3, "click"], ["id", "ic-navigation-cancel-24"], ["id", "Union", "fill-rule", "evenodd", "clip-rule", "evenodd", "d", "M8.60468 6.64355C8.09036 6.12923 7.25649 6.12923 6.74218 6.64355C6.22787 7.15786 6.22787 7.99173 6.74218 8.50604L10.4938 12.2576L6.7431 16.0083C6.22879 16.5226 6.22879 17.3564 6.7431 17.8708C7.25742 18.3851 8.09129 18.3851 8.6056 17.8708L12.3562 14.1201L16.1068 17.8707C16.6211 18.385 17.455 18.385 17.9693 17.8707C18.4836 17.3564 18.4836 16.5225 17.9693 16.0082L14.2187 12.2576L17.9702 8.50613C18.4845 7.99181 18.4845 7.15794 17.9702 6.64363C17.4559 6.12932 16.622 6.12932 16.1077 6.64363L12.3562 10.3951L8.60468 6.64355Z", "fill", "#181F33"], [1, "horizontal-divider", "first"], [1, "filters", 3, "formGroup"], [4, "ngFor", "ngForOf"], [1, "actions"], [3, "click", "name", "size", "type"], [3, "click", "name", "size", "type", "disabled"], ["class", "filter", 4, "ngIf"], [1, "filter"], [1, "filter-title"], [4, "ngIf"], ["class", "horizontal-divider", 4, "ngIf"], [1, "multiselect-filter"], ["width", "100%", "height", "44px", 1, "no-padding", 3, "onChange", "label", "selectedItems", "data", "searchEnabled", "showSelectedCount", "enableSelectAll", "hideApplyButton"], ["width", "100%", "height", "44px", 3, "onChange", "data", "searchEnabled", "selectedItem"], [1, "checkbox-row"], ["class", "checkbox-container", 4, "ngFor", "ngForOf"], [1, "checkbox-container"], [3, "valueChange", "type", "checked"], [1, "checkbox-label"], ["type", "rounded"], ["misTzDp", "", "misInput", "", "type", "text", "readonly", "", 1, "mis-input", 3, "dateChange", "dpConfig", "placeholder", "value", "selectedDate", "positionX", "offsetX"], ["misTzDrp", "", "misInput", "", "type", "text", "readonly", "", 1, "mis-input", 3, "dateChange", "placeholder", "value", "positionX", "positionY", "selectedDates", "dpConfig"], ["misInput", "", "type", "text", 1, "input", 3, "placeholder", "formControlName"], ["misInput", "", "type", "number", 1, "input", 3, "placeholder", "formControlName"], [1, "range-container", 3, "formGroup"], [1, "range-inner-container"], ["misInput", "", "type", "number", "formControlName", "min", 1, "input", 3, "placeholder"], ["misInput", "", "type", "number", "formControlName", "max", 1, "input", 3, "placeholder", "min"], [1, "horizontal-divider"]], template: function FilterPanelComponent_Template(rf, ctx) { if (rf & 1) {
|
|
378
|
+
i0.ɵɵtemplate(0, FilterPanelComponent_div_0_Template, 13, 10, "div", 0);
|
|
379
|
+
} if (rf & 2) {
|
|
380
|
+
i0.ɵɵproperty("ngIf", ctx.show);
|
|
381
|
+
} }, dependencies: [i2.NgForOf, i2.NgIf, i3.ButtonComponent, i4.DefaultValueAccessor, i4.NumberValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.MinValidator, i4.FormGroupDirective, i4.FormControlName, i5.MultiSelectDropdownComponent, i6.DropdownComponent, i7.MisInputComponent, i7.MisInputDirective, i8.TzDatepickerDirective, i9.TzDaterangepickerDirective, i10.CheckboxComponent], styles: [".filter-panel-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;max-width:100%;min-width:20rem;position:absolute;right:0;background:#fff;top:0;z-index:999;box-shadow:0 0 5px #000000a6;transition:all .3s ease}.filter-panel-container[_ngcontent-%COMP%] .panel-header[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:space-between;align-items:center;font-weight:700;margin:0 1rem;flex-basis:5%}.filter-panel-container[_ngcontent-%COMP%] .panel-header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:1.25rem}.filter-panel-container[_ngcontent-%COMP%] .panel-header[_ngcontent-%COMP%] .close-icon[_ngcontent-%COMP%]{cursor:pointer;border-radius:50%;transform:scale(1.4);padding:.3rem;transition:all .3s ease}.filter-panel-container[_ngcontent-%COMP%] .panel-header[_ngcontent-%COMP%] .close-icon[_ngcontent-%COMP%]:hover{background:#f5f5f5}.filter-panel-container[_ngcontent-%COMP%] .panel-header[_ngcontent-%COMP%] .close-icon[_ngcontent-%COMP%]:active{background:#e0e0e0}.filter-panel-container[_ngcontent-%COMP%] .mat-divider.horizontal[_ngcontent-%COMP%]{margin:1rem}.filters[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1;row-gap:.5rem;overflow:auto;padding:0 1rem}.filters[_ngcontent-%COMP%] .filter[_ngcontent-%COMP%]{display:flex;flex-direction:column}.filters[_ngcontent-%COMP%] .filter[_ngcontent-%COMP%] .filter-title[_ngcontent-%COMP%]{color:#6a737d;font-size:.875rem;font-weight:700;line-height:20px;letter-spacing:.25px}.filters[_ngcontent-%COMP%] .filter[_ngcontent-%COMP%] .checkbox-row[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:.8rem 0}.filters[_ngcontent-%COMP%] .filter[_ngcontent-%COMP%] .checkbox-row[_ngcontent-%COMP%] .checkbox-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center;gap:.5rem}.filters[_ngcontent-%COMP%] .filter[_ngcontent-%COMP%] .checkbox-row[_ngcontent-%COMP%] .checkbox-label[_ngcontent-%COMP%]{display:block;width:8rem}.filters[_ngcontent-%COMP%] .filter[_ngcontent-%COMP%] .checkbox-row[_ngcontent-%COMP%] .mat-checkbox-inner-container{width:20px;height:20px}.filters[_ngcontent-%COMP%] .filter[_ngcontent-%COMP%] .checkbox-row[_ngcontent-%COMP%] .mat-checkbox-frame{border-radius:5px}.filters[_ngcontent-%COMP%] .filter[_ngcontent-%COMP%] .multiselect-filter[_ngcontent-%COMP%], .filters[_ngcontent-%COMP%] .filter[_ngcontent-%COMP%] mis-input[_ngcontent-%COMP%]{padding:.7rem 0}.horizontal-divider[_ngcontent-%COMP%]{display:block;width:100%;height:1px;margin:.5rem 0;background:#e0e0e0}.first[_ngcontent-%COMP%]{margin-top:0}.actions[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:end;align-items:center;gap:1rem;border-top:1px solid #E0E0E0;flex-basis:4%;padding:.5rem}.actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{font-weight:700;border-radius:.5rem;width:6rem}.no-padding[_ngcontent-%COMP%] .container{padding:0!important}.range-container[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:.8rem 0}.range-container[_ngcontent-%COMP%] .range-inner-container[_ngcontent-%COMP%]{display:flex;flex-direction:column}.range-container[_ngcontent-%COMP%] .range-inner-container[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{height:2.2rem;outline:none;border-radius:.375rem;border:1px solid #e0e0e0;width:8rem;padding:0 .5rem}.range-container[_ngcontent-%COMP%] .range-inner-container[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{margin-bottom:.2rem}input.ng-invalid.ng-touched[_ngcontent-%COMP%]{border:1px solid red;background-color:#ffe6e6}"], data: { animation: [slideFromRight] } }); }
|
|
382
|
+
}
|
|
383
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FilterPanelComponent, [{
|
|
384
|
+
type: Component,
|
|
385
|
+
args: [{ selector: 'mis-filter-panel', animations: [slideFromRight], template: "<div class=\"filter-panel-container\" *ngIf=\"show\" @slideFromRight> \n <div class=\"panel-header\">\n <span>Filters</span>\n <svg class=\"close-icon\" (click)=\"closePanel()\" width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g id=\"ic-navigation-cancel-24\">\n <path id=\"Union\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.60468 6.64355C8.09036 6.12923 7.25649 6.12923 6.74218 6.64355C6.22787 7.15786 6.22787 7.99173 6.74218 8.50604L10.4938 12.2576L6.7431 16.0083C6.22879 16.5226 6.22879 17.3564 6.7431 17.8708C7.25742 18.3851 8.09129 18.3851 8.6056 17.8708L12.3562 14.1201L16.1068 17.8707C16.6211 18.385 17.455 18.385 17.9693 17.8707C18.4836 17.3564 18.4836 16.5225 17.9693 16.0082L14.2187 12.2576L17.9702 8.50613C18.4845 7.99181 18.4845 7.15794 17.9702 6.64363C17.4559 6.12932 16.622 6.12932 16.1077 6.64363L12.3562 10.3951L8.60468 6.64355Z\" fill=\"#181F33\"/>\n </g>\n </svg> \n </div>\n \n <div class=\"horizontal-divider first\"></div>\n \n <div class=\"filters\" [formGroup]=\"filterForm\">\n <ng-container *ngFor=\"let filter of config; let last = last\">\n <div class=\"filter\" *ngIf=\"!filter.hidden\">\n <span class=\"filter-title\">{{filter.title}}</span>\n\n <ng-container *ngIf=\"filter.type === 'multiSelect'\">\n <div class=\"multiselect-filter\">\n <mis-multi-select-dropdown class=\"no-padding\" [label]=\"filter.placeholder || 'Select'\" [selectedItems]=\"filterForm.get(filter.key).value\" (onChange)=\"handleSelect($event, filter.key, filter)\" [data]=\"filter.options\" [searchEnabled]=\"true\"\n [showSelectedCount]=\"true\" [enableSelectAll]=\"true\"\n [hideApplyButton]=\"false\" width=\"100%\" height=\"44px\"></mis-multi-select-dropdown>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"filter.type === 'select'\">\n <div class=\"multiselect-filter\">\n <mis-dropdown [data]=\"filter.options\" [searchEnabled]=\"true\" width=\"100%\" height=\"44px\"\n (onChange)=\"handleSelect($event, filter.key, filter)\" [selectedItem]=\"filterForm.get(filter.key).value\">\n </mis-dropdown>\n </div>\n </ng-container>\n \n <ng-container *ngIf=\"filter.type === 'checkbox'\">\n <div class=\"checkbox-row\">\n <div *ngFor=\"let option of filter.options\" class=\"checkbox-container\">\n <mis-checkbox [type]=\"'Default'\" [checked]=\"filterForm.get(filter.key).value?.includes(option.value)\" (valueChange)=\"handleCheckbox($event, filter.key, option.value, filter)\"></mis-checkbox>\n <span class=\"checkbox-label\">{{option.label}}</span>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"filter.type === 'datePicker'\">\n {{filter.placeholder}}\n <mis-input type=\"rounded\">\n <input misTzDp misInput type=\"text\" readonly class=\"mis-input\" [dpConfig]=\"filter.datepickerConfig\" [placeholder]=\"filterForm.get(filter.key).value ? filterForm.get(filter.key).value : (filter.placeholder || 'Select')\" [value]=\"filterForm.get(filter.key).value ? filterForm.get(filter.key).value : (filter.placeholder || 'Select')\" (dateChange)=\"onDateChange($event, filter.key, filter)\" [selectedDate]=\"filterForm.get(filter.key).value\" [positionX]=\"'end'\" [offsetX]=\"-10\">\n </mis-input>\n </ng-container>\n\n <ng-container *ngIf=\"filter.type === 'dateRangePicker'\">\n <mis-input type=\"rounded\">\n <input misTzDrp misInput type=\"text\" class=\"mis-input\" readonly\n [placeholder]=\"(!dateRangeSelectedDates.startDate && !dateRangeSelectedDates.endDate) ? (filter.placeholder || 'Select') : dateRangeSelectedDates.startDate + ' - ' + dateRangeSelectedDates.endDate\"\n [value]=\"(!dateRangeSelectedDates.startDate && !dateRangeSelectedDates.endDate) ? (filter.placeholder || 'Select') : dateRangeSelectedDates.startDate + ' - ' + dateRangeSelectedDates.endDate\" [positionX]=\"'start'\"\n [positionY]=\"'top'\" [selectedDates]=\"dateRangeSelectedDates\" (dateChange)=\"onDateChange($event, filter.key, filter)\"\n [dpConfig]=\"filter.dateRangePickerConfig\" />\n </mis-input> \n </ng-container>\n\n <ng-container *ngIf=\"filter.type === 'text'\">\n <mis-input type=\"rounded\">\n <input misInput type=\"text\" class=\"input\" [placeholder]=\"filter.placeholder || 'Type here'\" [formControlName]=\"filter.key\">\n </mis-input>\n </ng-container>\n\n <ng-container *ngIf=\"filter.type === 'number'\">\n <mis-input type=\"rounded\">\n <input misInput type=\"number\" class=\"input\" [placeholder]=\"filter.placeholder || 'Type here'\" [formControlName]=\"filter.key\">\n </mis-input>\n </ng-container>\n\n <ng-container *ngIf=\"filter.type === 'range'\">\n <div class=\"range-container\" [formGroup]=\"filterForm.get(filter.key)\">\n <div class=\"range-inner-container\">\n <span>{{ filter?.options?.[0]?.label || 'Min' }}</span>\n <input \n misInput \n type=\"number\" \n class=\"input\" \n [placeholder]=\"filter.placeholder || 'Type here'\" \n formControlName=\"min\" \n />\n </div>\n <div class=\"range-inner-container\">\n <span>{{ filter?.options?.[1]?.label || 'Max' }}</span>\n <input \n misInput \n type=\"number\" \n class=\"input\" \n [placeholder]=\"filter.placeholder || 'Type here'\" \n formControlName=\"max\"\n [min]=\"filterForm.get?.(filter.key)?.get('min')?.value || 0\"\n />\n </div>\n </div>\n </ng-container>\n \n\n <div class=\"horizontal-divider\" *ngIf=\"!last\"></div>\n </div> \n </ng-container>\n </div>\n\n <div class=\"actions\">\n <mis-button [name]=\"'Clear All'\" [size]=\"'Small'\" [type]=\"'Text'\" (click)=\"resetFilters()\"></mis-button>\n <mis-button [name]=\"'Apply'\" [size]=\"'Small'\" [type]=\"'Solid'\" (click)=\"applyFilters()\" [disabled]=\"filterForm.invalid\"></mis-button>\n </div>\n</div> \n", styles: [".filter-panel-container{display:flex;flex-direction:column;height:100%;max-width:100%;min-width:20rem;position:absolute;right:0;background:#fff;top:0;z-index:999;box-shadow:0 0 5px #000000a6;transition:all .3s ease}.filter-panel-container .panel-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;font-weight:700;margin:0 1rem;flex-basis:5%}.filter-panel-container .panel-header span{font-size:1.25rem}.filter-panel-container .panel-header .close-icon{cursor:pointer;border-radius:50%;transform:scale(1.4);padding:.3rem;transition:all .3s ease}.filter-panel-container .panel-header .close-icon:hover{background:#f5f5f5}.filter-panel-container .panel-header .close-icon:active{background:#e0e0e0}.filter-panel-container .mat-divider.horizontal{margin:1rem}.filters{display:flex;flex-direction:column;flex:1;row-gap:.5rem;overflow:auto;padding:0 1rem}.filters .filter{display:flex;flex-direction:column}.filters .filter .filter-title{color:#6a737d;font-size:.875rem;font-weight:700;line-height:20px;letter-spacing:.25px}.filters .filter .checkbox-row{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:.8rem 0}.filters .filter .checkbox-row .checkbox-container{display:flex;flex-direction:row;align-items:center;gap:.5rem}.filters .filter .checkbox-row .checkbox-label{display:block;width:8rem}.filters .filter .checkbox-row ::ng-deep .mat-checkbox-inner-container{width:20px;height:20px}.filters .filter .checkbox-row ::ng-deep .mat-checkbox-frame{border-radius:5px}.filters .filter .multiselect-filter,.filters .filter mis-input{padding:.7rem 0}.horizontal-divider{display:block;width:100%;height:1px;margin:.5rem 0;background:#e0e0e0}.first{margin-top:0}.actions{display:flex;flex-direction:row;justify-content:end;align-items:center;gap:1rem;border-top:1px solid #E0E0E0;flex-basis:4%;padding:.5rem}.actions button{font-weight:700;border-radius:.5rem;width:6rem}.no-padding ::ng-deep .container{padding:0!important}.range-container{display:flex;justify-content:space-between;padding:.8rem 0}.range-container .range-inner-container{display:flex;flex-direction:column}.range-container .range-inner-container input{height:2.2rem;outline:none;border-radius:.375rem;border:1px solid #e0e0e0;width:8rem;padding:0 .5rem}.range-container .range-inner-container span{margin-bottom:.2rem}input.ng-invalid.ng-touched{border:1px solid red;background-color:#ffe6e6}\n"] }]
|
|
386
|
+
}], () => [{ type: i1.HasValuePipe }], { show: [{
|
|
387
|
+
type: Input
|
|
388
|
+
}], onClose: [{
|
|
389
|
+
type: Output
|
|
390
|
+
}], onApply: [{
|
|
391
|
+
type: Output
|
|
392
|
+
}], config: [{
|
|
393
|
+
type: Input
|
|
394
|
+
}] }); })();
|
|
395
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FilterPanelComponent, { className: "FilterPanelComponent" }); })();
|
|
396
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2ZpbHRlci9maWx0ZXItcGFuZWwvZmlsdGVyLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2ZpbHRlci9maWx0ZXItcGFuZWwvZmlsdGVyLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7SUNleEMsNkJBQW9EO0lBRTVDLEFBREosK0JBQWdDLG9DQUc2QjtJQUZpRixxU0FBWSxxREFBd0MsS0FBQztJQUduTSxBQUQ2RCxpQkFBNEIsRUFDbkY7Ozs7O0lBSDRDLGVBQXdDO0lBRWxGLEFBRDJCLEFBQTNCLEFBRG9OLEFBQXhCLEFBQXpHLEFBQXpDLHlEQUF3Qyw2REFBbUQsMkJBQThFLHVCQUF1QiwyQkFDaE4seUJBQXlCLDBCQUMxQjs7OztJQUlyQyw2QkFBK0M7SUFFdkMsQUFESiwrQkFBZ0MsdUJBRW9GO0lBQXhHLHdSQUFZLHFEQUF3QyxLQUFDO0lBRWpFLEFBREksaUJBQWUsRUFDYjs7Ozs7SUFIWSxlQUF1QjtJQUN5QixBQUR4QixBQUF4Qix3Q0FBdUIsdUJBQXVCLDREQUNtRDs7OztJQVEzRyxBQURKLCtCQUFzRSx1QkFDNkc7SUFBekUsZ1VBQWUsd0VBQXdELEtBQUM7SUFBQyxpQkFBZTtJQUM5TCxnQ0FBNkI7SUFBQSxZQUFnQjtJQUNqRCxBQURpRCxpQkFBTyxFQUNs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VSxvQkFBb0I7b0VBQXBCLG9CQUFvQjtZQ25DakMsdUVBQWlFOztZQUE1QiwrQkFBVTtnZ0lEOEJqQyxDQUFDLGNBQWMsQ0FBQzs7aUZBS2pCLG9CQUFvQjtjQVRoQyxTQUFTOzJCQUNFLGtCQUFrQixjQUdoQixDQUFDLGNBQWMsQ0FBQzs2Q0FPbkIsSUFBSTtrQkFBWixLQUFLO1lBQ0ksT0FBTztrQkFBaEIsTUFBTTtZQUNHLE9BQU87a0JBQWhCLE1BQU07WUFDRSxNQUFNO2tCQUFkLEtBQUs7O2tGQUxLLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2xpZGVGcm9tUmlnaHQgfSBmcm9tICcuLi9hbmltYXRpb25zL3NsaWRlRnJvbVJpZ2h0JztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJRGF0ZVBpY2tlckNvbmZpZyB9IGZyb20gJ21pcy1jcnlzdGFsLWRlc2lnbi1zeXN0ZW0vZGF0ZXBpY2tlcl92Mic7XG5pbXBvcnQgeyBJUlNlbGVjdGVkRGF0ZXNDb25maWcgfSBmcm9tICdtaXMtY3J5c3RhbC1kZXNpZ24tc3lzdGVtL3NwZWNpZmljZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBJRGF0ZVBpY2tlckNvbmZpZyBhcyBJRGF0ZVJhbmdlUGlja2VyQ29uZmlnIH0gZnJvbSBcIm1pcy1jcnlzdGFsLWRlc2lnbi1zeXN0ZW0vZGF0ZXJhbmdlcGlja2VyX3YyXCI7XG5pbXBvcnQgeyBIYXNWYWx1ZVBpcGUgfSBmcm9tICcuLi9oYXMtdmFsdWUucGlwZSc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJQYW5lbENvbmZpZyB7XG4gIGtleTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICB0eXBlOiAnbXVsdGlTZWxlY3QnIHwgJ3NlbGVjdCcgfCAnZGF0ZVBpY2tlcicgfCAnZGF0ZVJhbmdlUGlja2VyJyB8ICdjaGVja2JveCcgfCAncmFkaW8nIHwgJ3RleHQnIHwgJ251bWJlcicgfCAncmFuZ2UnO1xuICBvcHRpb25zPzogQXJyYXk8e1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICBkYXRhPzogYW55W107XG4gIH0+O1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgaGlkZGVuPzogYm9vbGVhbjtcbiAgZGF0ZVBpY2tlckNvbmZpZz86IElEYXRlUGlja2VyQ29uZmlnO1xuICBkYXRlUmFuZ2VQaWNrZXJDb25maWc/OiBJRGF0ZVJhbmdlUGlja2VyQ29uZmlnO1xuICBvbkNoYW5nZT86IChldmVudDogYW55LCBjb25maWc/OiBGaWx0ZXJQYW5lbENvbmZpZ1tdLCBmb3JtVmFsdWU/OiBhbnkpID0+IHZvaWQ7XG4gIGRlZmF1bHRWYWx1ZT86IGFueTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWlzLWZpbHRlci1wYW5lbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXItcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXItcGFuZWwuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW3NsaWRlRnJvbVJpZ2h0XVxufSlcblxuXG5cbmV4cG9ydCBjbGFzcyBGaWx0ZXJQYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBoYXNWYWx1ZTogSGFzVmFsdWVQaXBlKXt9XG4gIEBJbnB1dCgpIHNob3c6IGJvb2xlYW47XG4gIEBPdXRwdXQoKSBvbkNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25BcHBseSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQElucHV0KCkgY29uZmlnOiBGaWx0ZXJQYW5lbENvbmZpZ1tdID0gW107XG4gIGZpbHRlckZvcm06IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoW10pO1xuICBsYXN0QXBwbGllZERhdGE6IGFueTtcblxuICByYW5nZU1pbjogbnVtYmVyO1xuICByYW5nZU1heDogbnVtYmVyO1xuXG4gIGRhdGVSYW5nZVNlbGVjdGVkRGF0ZXM6IElSU2VsZWN0ZWREYXRlc0NvbmZpZyA9IHtcbiAgICBzdGFydERhdGU6ICcnLFxuICAgIGVuZERhdGU6ICcnLFxuICB9O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm1Db250cm9scygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmKCFjaGFuZ2VzLmNvbmZpZz8uZmlyc3RDaGFuZ2Upe1xuICAgICAgdGhpcy5oYW5kbGVDb25maWdDaGFuZ2UoKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVDb25maWdDaGFuZ2UoKXtcbiAgICB0aGlzLmNvbmZpZyA9IHRoaXMuY29uZmlnLmZpbHRlcihmaWx0ZXIgPT4gIWZpbHRlci5oaWRkZW4pO1xuICB9XG5cbiAgaW5pdGlhbGl6ZUZvcm1Db250cm9scygpIHtcbiAgICB0aGlzLmNvbmZpZy5mb3JFYWNoKChmaWx0ZXI6IEZpbHRlclBhbmVsQ29uZmlnKSA9PiB7XG4gICAgICBsZXQgY29udHJvbDogYW55O1xuICAgICAgaWYgKGZpbHRlci50eXBlID09PSAncmFuZ2UnKSB7XG4gICAgICAgIGNvbnRyb2wgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgICBtaW46IG5ldyBGb3JtQ29udHJvbChudWxsKSxcbiAgICAgICAgICBtYXg6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcbiAgICAgICAgfSwge1xuICAgICAgICAgIHZhbGlkYXRvcnM6IChncm91cDogRm9ybUdyb3VwKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtaW4gPSBncm91cC5nZXQoJ21pbicpLnZhbHVlO1xuICAgICAgICAgICAgY29uc3QgbWF4ID0gZ3JvdXAuZ2V0KCdtYXgnKS52YWx1ZTtcbiAgICAgICAgICAgIGlmIChtaW4gIT09IG51bGwgJiYgbWF4ICE9PSBudWxsICYmIG1pbiA+IG1heCkge1xuICAgICAgICAgICAgICByZXR1cm4geyByYW5nZUVycm9yOiAnTWluIHZhbHVlIHNob3VsZCBiZSBsZXNzIHRoYW4gbWF4IHZhbHVlJyB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoZmlsdGVyLnR5cGUgPT09ICdtdWx0aVNlbGVjdCcgfHwgZmlsdGVyLnR5cGUgPT09ICdjaGVja2JveCcpIHtcbiAgICAgICAgY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChbXSk7XG4gICAgICB9IGVsc2UgaWYgKGZpbHRlci50eXBlID09PSAnc2VsZWN0Jykge1xuICAgICAgICBjb250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2wobnVsbCk7XG4gICAgICB9XG4gICAgICBpZih0aGlzLmhhc1ZhbHVlLnRyYW5zZm9ybShmaWx0ZXIuZGVmYXVsdFZhbHVlKSl7XG4gICAgICAgIGNvbnRyb2wuc2V0VmFsdWUoZmlsdGVyLmRlZmF1bHRWYWx1ZSk7XG4gICAgICB9XG4gICAgICB0aGlzLmZpbHRlckZvcm0uYWRkQ29udHJvbChmaWx0ZXIua2V5LCBjb250cm9sKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNsb3NlUGFuZWwoKXtcbiAgICBpZih0aGlzLmxhc3RBcHBsaWVkRGF0YSl7XG4gICAgICB0aGlzLmZpbHRlckZvcm0uc2V0VmFsdWUodGhpcy5sYXN0QXBwbGllZERhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsZWFyRm9ybVZhbHVlcygpO1xuICAgIH1cbiAgICB0aGlzLm9uQ2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgdXBkYXRlU2VsZWN0ZWRTaGlmdHMoKXtcbiAgICBpZih0aGlzLnNob3cpe1xuICAgICAgY29uc3Qgc2VsZWN0ZWRTaGlmdHMgPSBbLi4udGhpcy5maWx0ZXJGb3JtLmdldCgnc2hpZnRUaW1lJykudmFsdWVdO1xuICAgICAgY29uc3QgY3VycmVudFNoaWZ0cyA9ICB0aGlzLmNvbmZpZy5maW5kKChmaWx0ZXI6IEZpbHRlclBhbmVsQ29uZmlnKSA9PiBmaWx0ZXIua2V5ID09PSAnc2hpZnRUaW1lJykub3B0aW9ucztcblxuICAgICAgc2VsZWN0ZWRTaGlmdHMuZm9yRWFjaCgoc2hpZnQ6IGFueSkgPT4ge1xuICAgICAgICBpZighY3VycmVudFNoaWZ0cy5maW5kKChjdXJyZW50U2hpZnQ6IGFueSkgPT4gY3VycmVudFNoaWZ0LnZhbHVlID09PSBzaGlmdC52YWx1ZSkpe1xuICAgICAgICAgIHNlbGVjdGVkU2hpZnRzLnNwbGljZShzZWxlY3RlZFNoaWZ0cy5pbmRleE9mKHNoaWZ0KSwgMSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmZpbHRlckZvcm0uZ2V0KCdzaGlmdFRpbWUnKS5zZXRWYWx1ZShzZWxlY3RlZFNoaWZ0cyk7XG4gICAgfVxuICB9XG5cbiAgZmlsdGVyQ291bnQoKXtcbiAgICBsZXQgY291bnQgPSAwO1xuICAgIHRoaXMuY29uZmlnLmZvckVhY2goKGZpbHRlcjogRmlsdGVyUGFuZWxDb25maWcpID0+IHtcbiAgICAgIGlmKHRoaXMuaGFzVmFsdWUudHJhbnNmb3JtKHRoaXMuZmlsdGVyRm9ybS5nZXQoZmlsdGVyLmtleSkudmFsdWUpKXtcbiAgICAgICAgaWYoZmlsdGVyLnR5cGUgPT09ICdyYW5nZScgJiYgdGhpcy5maWx0ZXJGb3JtLmdldChmaWx0ZXIua2V5KS52YWx1ZS5taW4gPT0gbnVsbCAmJiB0aGlzLmZpbHRlckZvcm0uZ2V0KGZpbHRlci5rZXkpLnZhbHVlLm1heCA9PSBudWxsKXtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY291bnQrKztcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY291bnQ7XG4gIH1cblxuICBhcHBseUZpbHRlcnMoKXtcbiAgICBpZiAodGhpcy5maWx0ZXJGb3JtLmludmFsaWQpIHtcbiAgICAgIHRoaXMuZmlsdGVyRm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICBcbiAgICB0aGlzLmxhc3RBcHBsaWVkRGF0YSA9IHsuLi50aGlzLmZpbHRlckZvcm0udmFsdWV9O1xuICAgIHRoaXMub25BcHBseS5lbWl0KHtcbiAgICAgIGZpbHRlckRhdGE6IHRoaXMuZmlsdGVyRm9ybS52YWx1ZSxcbiAgICAgIGZpbHRlckNvdW50OiB0aGlzLmZpbHRlckNvdW50KClcbiAgICB9KTtcbiAgICB0aGlzLnNob3cgPSBmYWxzZTtcbiAgICB0aGlzLmNsb3NlUGFuZWwoKTtcbiAgfVxuXG4gIGhhbmRsZVNlbGVjdChldmVudDogYW55LCBmaWx0ZXJLZXk6IHN0cmluZywgZmlsdGVyOiBGaWx0ZXJQYW5lbENvbmZpZyl7XG4gICAgdGhpcy5maWx0ZXJGb3JtLmdldChmaWx0ZXJLZXkpLnNldFZhbHVlKGV2ZW50KTtcbiAgICBpZihmaWx0ZXIub25DaGFuZ2Upe1xuICAgICAgZmlsdGVyLm9uQ2hhbmdlKGV2ZW50LCB0aGlzLmNvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgb25EYXRlQ2hhbmdlKGV2ZW50OiBhbnksIGZpbHRlcktleTogc3RyaW5nLCBmaWx0ZXI6IEZpbHRlclBhbmVsQ29uZmlnKXtcbiAgICB0aGlzLmZpbHRlckZvcm0uZ2V0KGZpbHRlcktleSkuc2V0VmFsdWUoZXZlbnQpO1xuICAgIGlmKHR5cGVvZiBldmVudCA9PT0gJ29iamVjdCcpe1xuICAgICAgdGhpcy5kYXRlUmFuZ2VTZWxlY3RlZERhdGVzID0ge1xuICAgICAgICBzdGFydERhdGU6IGV2ZW50LnN0YXJ0RGF0ZSxcbiAgICAgICAgZW5kRGF0ZTogZXZlbnQuZW5kRGF0ZSxcbiAgICAgIH07XG4gICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2codGhpcy5maWx0ZXJGb3JtLmdldChmaWx0ZXJLZXkpLnZhbHVlKTsgXG4gICB9XG4gIH1cblxuICBoYW5kbGVDaGVja2JveChldmVudDogYW55LCBmaWx0ZXJLZXk6IHN0cmluZywgY2hlY2tib3hWYWx1ZTogc3RyaW5nLCBmaWx0ZXI6IEZpbHRlclBhbmVsQ29uZmlnKXtcbiAgICBpZihldmVudC52YWx1ZSl7XG4gICAgICB0aGlzLmZpbHRlckZvcm0uZ2V0KGZpbHRlcktleSkuc2V0VmFsdWUoWy4uLnRoaXMuZmlsdGVyRm9ybS5nZXQoZmlsdGVyS2V5KS52YWx1ZSwgY2hlY2tib3hWYWx1ZV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHRoaXMuZmlsdGVyRm9ybS5nZXQoZmlsdGVyS2V5KS52YWx1ZTtcbiAgICAgIHRoaXMuZmlsdGVyRm9ybS5nZXQoZmlsdGVyS2V5KS5zZXRWYWx1ZShmaWx0ZXJWYWx1ZS5maWx0ZXIoKHZhbHVlOiBzdHJpbmcpID0+IHZhbHVlICE9PSBjaGVja2JveFZhbHVlKSk7XG4gICAgfVxuICAgIGlmKGZpbHRlci5vbkNoYW5nZSl7XG4gICAgICBmaWx0ZXIub25DaGFuZ2UoZXZlbnQsIHRoaXMuY29uZmlnLCB0aGlzLmZpbHRlckZvcm0udmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyRm9ybVZhbHVlcygpe1xuICAgIGNvbnN0IHJlc2V0VmFsdWVzOiBhbnkgPSB7fTtcbiAgICB0aGlzLmNvbmZpZy5mb3JFYWNoKChmaWx0ZXI6IEZpbHRlclBhbmVsQ29uZmlnKSA9PiB7XG4gICAgICBsZXQgZGVmYXVsdFZhbHVlOiBhbnkgPSBudWxsO1xuICAgICAgaWYgKGZpbHRlci50eXBlID09PSAnbXVsdGlTZWxlY3QnIHx8IGZpbHRlci50eXBlID09PSAnY2hlY2tib3gnKSB7XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IFtdO1xuICAgICAgfVxuICAgICAgaWYoZmlsdGVyLnR5cGUgPT09ICdyYW5nZScpe1xuICAgICAgICBkZWZhdWx0VmFsdWUgPSB7IG1pbjogbnVsbCwgbWF4OiBudWxsIH07XG4gICAgICB9XG4gICAgICByZXNldFZhbHVlc1tmaWx0ZXIua2V5XSA9IGRlZmF1bHRWYWx1ZTtcbiAgICB9KTtcbiAgICB0aGlzLmZpbHRlckZvcm0ucGF0Y2hWYWx1ZShyZXNldFZhbHVlcyk7XG4gIH1cblxuICByZXNldEZpbHRlcnMoKSB7XG4gICAgdGhpcy5jbGVhckZvcm1WYWx1ZXMoKTtcbiAgICB0aGlzLmFwcGx5RmlsdGVycygpO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJmaWx0ZXItcGFuZWwtY29udGFpbmVyXCIgKm5nSWY9XCJzaG93XCIgQHNsaWRlRnJvbVJpZ2h0PiBcbiAgICA8ZGl2IGNsYXNzPVwicGFuZWwtaGVhZGVyXCI+XG4gICAgICAgIDxzcGFuPkZpbHRlcnM8L3NwYW4+XG4gICAgICAgIDxzdmcgY2xhc3M9XCJjbG9zZS1pY29uXCIgKGNsaWNrKT1cImNsb3NlUGFuZWwoKVwiIHdpZHRoPVwiMjVcIiBoZWlnaHQ9XCIyNVwiIHZpZXdCb3g9XCIwIDAgMjUgMjVcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgIDxnIGlkPVwiaWMtbmF2aWdhdGlvbi1jYW5jZWwtMjRcIj5cbiAgICAgICAgICAgIDxwYXRoIGlkPVwiVW5pb25cIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOC42MDQ2OCA2LjY0MzU1QzguMDkwMzYgNi4xMjkyMyA3LjI1NjQ5IDYuMTI5MjMgNi43NDIxOCA2LjY0MzU1QzYuMjI3ODcgNy4xNTc4NiA2LjIyNzg3IDcuOTkxNzMgNi43NDIxOCA4LjUwNjA0TDEwLjQ5MzggMTIuMjU3Nkw2Ljc0MzEgMTYuMDA4M0M2LjIyODc5IDE2LjUyMjYgNi4yMjg3OSAxNy4zNTY0IDYuNzQzMSAxNy44NzA4QzcuMjU3NDIgMTguMzg1MSA4LjA5MTI5IDE4LjM4NTEgOC42MDU2IDE3Ljg3MDhMMTIuMzU2MiAxNC4xMjAxTDE2LjEwNjggMTcuODcwN0MxNi42MjExIDE4LjM4NSAxNy40NTUgMTguMzg1IDE3Ljk2OTMgMTcuODcwN0MxOC40ODM2IDE3LjM1NjQgMTguNDgzNiAxNi41MjI1IDE3Ljk2OTMgMTYuMDA4MkwxNC4yMTg3IDEyLjI1NzZMMTcuOTcwMiA4LjUwNjEzQzE4LjQ4NDUgNy45OTE4MSAxOC40ODQ1IDcuMTU3OTQgMTcuOTcwMiA2LjY0MzYzQzE3LjQ1NTkgNi4xMjkzMiAxNi42MjIgNi4xMjkzMiAxNi4xMDc3IDYuNjQzNjNMMTIuMzU2MiAxMC4zOTUxTDguNjA0NjggNi42NDM1NVpcIiBmaWxsPVwiIzE4MUYzM1wiLz5cbiAgICAgICAgICAgIDwvZz5cbiAgICAgICAgPC9zdmc+ICAgICAgICAgICAgXG4gICAgPC9kaXY+XG4gICAgXG4gICAgPGRpdiBjbGFzcz1cImhvcml6b250YWwtZGl2aWRlciBmaXJzdFwiPjwvZGl2PlxuICAgIFxuICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXJzXCIgW2Zvcm1Hcm91cF09XCJmaWx0ZXJGb3JtXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBjb25maWc7IGxldCBsYXN0ID0gbGFzdFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlclwiICpuZ0lmPVwiIWZpbHRlci5oaWRkZW5cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbHRlci10aXRsZVwiPnt7ZmlsdGVyLnRpdGxlfX08L3NwYW4+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyLnR5cGUgPT09ICdtdWx0aVNlbGVjdCdcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm11bHRpc2VsZWN0LWZpbHRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1pcy1tdWx0aS1zZWxlY3QtZHJvcGRvd24gY2xhc3M9XCJuby1wYWRkaW5nXCIgW2xhYmVsXT1cImZpbHRlci5wbGFjZWhvbGRlciB8fCAnU2VsZWN0J1wiIFtzZWxlY3RlZEl0ZW1zXT1cImZpbHRlckZvcm0uZ2V0KGZpbHRlci5rZXkpLnZhbHVlXCIgKG9uQ2hhbmdlKT1cImhhbmRsZVNlbGVjdCgkZXZlbnQsIGZpbHRlci5rZXksIGZpbHRlcilcIiBbZGF0YV09XCJmaWx0ZXIub3B0aW9uc1wiIFtzZWFyY2hFbmFibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93U2VsZWN0ZWRDb3VudF09XCJ0cnVlXCIgW2VuYWJsZVNlbGVjdEFsbF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZUFwcGx5QnV0dG9uXT1cImZhbHNlXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiNDRweFwiPjwvbWlzLW11bHRpLXNlbGVjdC1kcm9wZG93bj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyLnR5cGUgPT09ICdzZWxlY3QnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdWx0aXNlbGVjdC1maWx0ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtaXMtZHJvcGRvd24gW2RhdGFdPVwiZmlsdGVyLm9wdGlvbnNcIiBbc2VhcmNoRW5hYmxlZF09XCJ0cnVlXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiNDRweFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJoYW5kbGVTZWxlY3QoJGV2ZW50LCBmaWx0ZXIua2V5LCBmaWx0ZXIpXCIgW3NlbGVjdGVkSXRlbV09XCJmaWx0ZXJGb3JtLmdldChmaWx0ZXIua2V5KS52YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9taXMtZHJvcGRvd24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICBcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyLnR5cGUgPT09ICdjaGVja2JveCdcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94LXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpbHRlci5vcHRpb25zXCIgY2xhc3M9XCJjaGVja2JveC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWlzLWNoZWNrYm94IFt0eXBlXT1cIidEZWZhdWx0J1wiIFtjaGVja2VkXT1cImZpbHRlckZvcm0uZ2V0KGZpbHRlci5rZXkpLnZhbHVlPy5pbmNsdWRlcyhvcHRpb24udmFsdWUpXCIgKHZhbHVlQ2hhbmdlKT1cImhhbmRsZUNoZWNrYm94KCRldmVudCwgZmlsdGVyLmtleSwgb3B0aW9uLnZhbHVlLCBmaWx0ZXIpXCI+PC9taXMtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGVja2JveC1sYWJlbFwiPnt7b3B0aW9uLmxhYmVsfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyLnR5cGUgPT09ICdkYXRlUGlja2VyJ1wiPlxuICAgICAgICAgICAgICAgICAgICB7e2ZpbHRlci5wbGFjZWhvbGRlcn19XG4gICAgICAgICAgICAgICAgICAgIDxtaXMtaW5wdXQgdHlwZT1cInJvdW5kZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtaXNUekRwIG1pc0lucHV0IHR5cGU9XCJ0ZXh0XCIgcmVhZG9ubHkgY2xhc3M9XCJtaXMtaW5wdXRcIiBbZHBDb25maWddPVwiZmlsdGVyLmRhdGVwaWNrZXJDb25maWdcIiBbcGxhY2Vob2xkZXJdPVwiZmlsdGVyRm9ybS5nZXQoZmlsdGVyLmtleSkudmFsdWUgPyBmaWx0ZXJGb3JtLmdldChmaWx0ZXIua2V5KS52YWx1ZSA6IChmaWx0ZXIucGxhY2Vob2xkZXIgfHwgJ1NlbGVjdCcpXCIgW3ZhbHVlXT1cImZpbHRlckZvcm0uZ2V0KGZpbHRlci5rZXkpLnZhbHVlID8gZmlsdGVyRm9ybS5nZXQoZmlsdGVyLmtleSkudmFsdWUgOiAoZmlsdGVyLnBsYWNlaG9sZGVyIHx8ICdTZWxlY3QnKVwiIChkYXRlQ2hhbmdlKT1cIm9uRGF0ZUNoYW5nZSgkZXZlbnQsIGZpbHRlci5rZXksIGZpbHRlcilcIiBbc2VsZWN0ZWREYXRlXT1cImZpbHRlckZvcm0uZ2V0KGZpbHRlci5rZXkpLnZhbHVlXCIgW3Bvc2l0aW9uWF09XCInZW5kJ1wiIFtvZmZzZXRYXT1cIi0xMFwiPlxuICAgICAgICAgICAgICAgICAgICA8L21pcy1pbnB1dD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXIudHlwZSA9PT0gJ2RhdGVSYW5nZVBpY2tlcidcIj5cbiAgICAgICAgICAgICAgICA8bWlzLWlucHV0IHR5cGU9XCJyb3VuZGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtaXNUekRycCBtaXNJbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwibWlzLWlucHV0XCIgcmVhZG9ubHlcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIoIWRhdGVSYW5nZVNlbGVjdGVkRGF0ZXMuc3RhcnREYXRlICYmICFkYXRlUmFuZ2VTZWxlY3RlZERhdGVzLmVuZERhdGUpID8gKGZpbHRlci5wbGFjZWhvbGRlciB8fCAnU2VsZWN0JykgOiBkYXRlUmFuZ2VTZWxlY3RlZERhdGVzLnN0YXJ0RGF0ZSArICcgLSAnICsgZGF0ZVJhbmdlU2VsZWN0ZWREYXRlcy5lbmREYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCIoIWRhdGVSYW5nZVNlbGVjdGVkRGF0ZXMuc3RhcnREYXRlICYmICFkYXRlUmFuZ2VTZWxlY3RlZERhdGVzLmVuZERhdGUpID8gKGZpbHRlci5wbGFjZWhvbGRlciB8fCAnU2VsZWN0JykgOiBkYXRlUmFuZ2VTZWxlY3RlZERhdGVzLnN0YXJ0RGF0ZSArICcgLSAnICsgZGF0ZVJhbmdlU2VsZWN0ZWREYXRlcy5lbmREYXRlXCIgW3Bvc2l0aW9uWF09XCInc3RhcnQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwb3NpdGlvblldPVwiJ3RvcCdcIiBbc2VsZWN0ZWREYXRlc109XCJkYXRlUmFuZ2VTZWxlY3RlZERhdGVzXCIgKGRhdGVDaGFuZ2UpPVwib25EYXRlQ2hhbmdlKCRldmVudCwgZmlsdGVyLmtleSwgZmlsdGVyKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZHBDb25maWddPVwiZmlsdGVyLmRhdGVSYW5nZVBpY2tlckNvbmZpZ1wiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21pcy1pbnB1dD4gICAgXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyLnR5cGUgPT09ICd0ZXh0J1wiPlxuICAgICAgICAgICAgICAgICAgICA8bWlzLWlucHV0IHR5cGU9XCJyb3VuZGVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWlzSW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImlucHV0XCIgW3BsYWNlaG9sZGVyXT1cImZpbHRlci5wbGFjZWhvbGRlciB8fCAnVHlwZSBoZXJlJ1wiIFtmb3JtQ29udHJvbE5hbWVdPVwiZmlsdGVyLmtleVwiPlxuICAgICAgICAgICAgICAgICAgICA8L21pcy1pbnB1dD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXIudHlwZSA9PT0gJ251bWJlcidcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1pcy1pbnB1dCB0eXBlPVwicm91bmRlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1pc0lucHV0IHR5cGU9XCJudW1iZXJcIiBjbGFzcz1cImlucHV0XCIgW3BsYWNlaG9sZGVyXT1cImZpbHRlci5wbGFjZWhvbGRlciB8fCAnVHlwZSBoZXJlJ1wiIFtmb3JtQ29udHJvbE5hbWVdPVwiZmlsdGVyLmtleVwiPlxuICAgICAgICAgICAgICAgICAgICA8L21pcy1pbnB1dD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXIudHlwZSA9PT0gJ3JhbmdlJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFuZ2UtY29udGFpbmVyXCIgW2Zvcm1Hcm91cF09XCJmaWx0ZXJGb3JtLmdldChmaWx0ZXIua2V5KVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYW5nZS1pbm5lci1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGZpbHRlcj8ub3B0aW9ucz8uWzBdPy5sYWJlbCB8fCAnTWluJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzSW5wdXQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dFwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZmlsdGVyLnBsYWNlaG9sZGVyIHx8ICdUeXBlIGhlcmUnXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1pblwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyYW5nZS1pbm5lci1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGZpbHRlcj8ub3B0aW9ucz8uWzFdPy5sYWJlbCB8fCAnTWF4JyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzSW5wdXQgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dFwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZmlsdGVyLnBsYWNlaG9sZGVyIHx8ICdUeXBlIGhlcmUnXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1heFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21pbl09XCJmaWx0ZXJGb3JtLmdldD8uKGZpbHRlci5rZXkpPy5nZXQoJ21pbicpPy52YWx1ZSB8fCAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgXG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaG9yaXpvbnRhbC1kaXZpZGVyXCIgKm5nSWY9XCIhbGFzdFwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+ICBcbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgICA8bWlzLWJ1dHRvbiBbbmFtZV09XCInQ2xlYXIgQWxsJ1wiIFtzaXplXT1cIidTbWFsbCdcIiBbdHlwZV09XCInVGV4dCdcIiAoY2xpY2spPVwicmVzZXRGaWx0ZXJzKClcIj48L21pcy1idXR0b24+XG4gICAgICAgIDxtaXMtYnV0dG9uIFtuYW1lXT1cIidBcHBseSdcIiBbc2l6ZV09XCInU21hbGwnXCIgW3R5cGVdPVwiJ1NvbGlkJ1wiIChjbGljayk9XCJhcHBseUZpbHRlcnMoKVwiIFtkaXNhYmxlZF09XCJmaWx0ZXJGb3JtLmludmFsaWRcIj48L21pcy1idXR0b24+XG4gICAgPC9kaXY+XG48L2Rpdj4gXG4iXX0=
|