mis-crystal-design-system 4.0.51 → 17.0.0
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/action-list/action-list.component.d.ts +3 -0
- package/action-list/action-list.module.d.ts +9 -0
- package/analytics/analytics.module.d.ts +4 -0
- package/analytics/analytics.service.d.ts +3 -0
- package/async-search-dropdown/async-dropdown.component.d.ts +6 -3
- package/async-search-dropdown/async-dropdown.module.d.ts +9 -0
- package/button/button.component.d.ts +3 -0
- package/button/button.directive.d.ts +3 -0
- package/button/button.module.d.ts +7 -0
- package/checkbox/checkbox.component.d.ts +3 -0
- package/checkbox/checkbox.module.d.ts +7 -0
- package/chip/chip.component.d.ts +3 -0
- package/chip/chip.module.d.ts +6 -0
- package/datepicker_v2/datepicker.module.d.ts +10 -0
- package/datepicker_v2/models/dp-config.model.d.ts +1 -1
- package/datepicker_v2/public_api.d.ts +1 -0
- package/datepicker_v2/tz-datepicker.directive.d.ts +3 -0
- package/datepicker_v2/tz-dp-container/tz-dp-container.component.d.ts +3 -0
- package/daterangepicker_v2/daterangepicker.module.d.ts +10 -0
- package/daterangepicker_v2/models/drp-config.model.d.ts +1 -1
- package/daterangepicker_v2/public_api.d.ts +1 -0
- package/daterangepicker_v2/tz-daterangepicker.directive.d.ts +3 -0
- package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +3 -0
- package/drawer/drawer-body/drawer-body.component.d.ts +3 -1
- package/drawer/drawer.module.d.ts +8 -0
- package/drawer/drawer.service.d.ts +3 -0
- package/dropdown/calculate-container-height.directive.d.ts +3 -0
- package/dropdown/dropdown.component.d.ts +3 -0
- package/dropdown/dropdown.module.d.ts +11 -0
- package/dynamic-form/dynamic-form.component.d.ts +11 -8
- package/dynamic-form/dynamic-form.module.d.ts +13 -0
- package/esm2022/action-list/action-list.component.mjs +363 -0
- package/esm2022/action-list/action-list.module.mjs +25 -0
- package/esm2022/analytics/analytics.module.mjs +18 -0
- package/esm2022/analytics/analytics.service.mjs +63 -0
- package/esm2022/async-search-dropdown/async-dropdown.component.mjs +467 -0
- package/esm2022/async-search-dropdown/async-dropdown.module.mjs +22 -0
- package/esm2022/button/button.component.mjs +88 -0
- package/esm2022/button/button.directive.mjs +61 -0
- package/esm2022/button/button.module.mjs +23 -0
- package/esm2022/checkbox/checkbox.component.mjs +124 -0
- package/esm2022/checkbox/checkbox.module.mjs +23 -0
- package/esm2022/chip/chip.component.mjs +82 -0
- package/esm2022/chip/chip.module.mjs +22 -0
- package/esm2022/datepicker_v2/datepicker.module.mjs +24 -0
- package/esm2022/datepicker_v2/mis-crystal-design-system-datepicker_v2.mjs +5 -0
- package/esm2022/datepicker_v2/public_api.mjs +4 -0
- package/esm2022/datepicker_v2/tz-datepicker.directive.mjs +164 -0
- package/esm2022/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +246 -0
- package/{esm2015/daterangepicker_v2/utils/index.js → esm2022/datepicker_v2/utils/index.mjs} +1 -1
- package/esm2022/daterangepicker_v2/daterangepicker.module.mjs +25 -0
- package/esm2022/daterangepicker_v2/mis-crystal-design-system-daterangepicker_v2.mjs +5 -0
- package/esm2022/daterangepicker_v2/public_api.mjs +4 -0
- package/esm2022/daterangepicker_v2/tz-daterangepicker.directive.mjs +135 -0
- package/esm2022/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +365 -0
- package/esm2022/daterangepicker_v2/utils/index.mjs +45 -0
- package/esm2022/drawer/drawer-body/drawer-body.component.mjs +59 -0
- package/{esm2015/drawer/drawer-ref.js → esm2022/drawer/drawer-ref.mjs} +4 -4
- package/esm2022/drawer/drawer.module.mjs +33 -0
- package/esm2022/drawer/drawer.service.mjs +56 -0
- package/esm2022/drawer/mis-crystal-design-system-drawer.mjs +5 -0
- package/esm2022/dropdown/calculate-container-height.directive.mjs +41 -0
- package/esm2022/dropdown/dropdown.component.mjs +404 -0
- package/esm2022/dropdown/dropdown.module.mjs +27 -0
- package/esm2022/dropdown/mis-crystal-design-system-dropdown.mjs +5 -0
- package/esm2022/dynamic-form/dynamic-form.component.mjs +705 -0
- package/esm2022/dynamic-form/dynamic-form.module.mjs +56 -0
- package/esm2022/fab/fab.component.mjs +145 -0
- package/esm2022/fab/fab.module.mjs +22 -0
- package/esm2022/input/directives/input/input.directive.mjs +40 -0
- package/esm2022/input/mis-input.component.mjs +85 -0
- package/esm2022/input/mis-input.module.mjs +21 -0
- package/esm2022/input-stepper/input-stepper/input-stepper.component.mjs +75 -0
- package/esm2022/input-stepper/input-stepper.module.mjs +25 -0
- package/esm2022/loader/loader.component.mjs +25 -0
- package/esm2022/loader/loader.module.mjs +22 -0
- package/esm2022/menu/menu-close.directive.mjs +25 -0
- package/esm2022/menu/menu.directive.mjs +77 -0
- package/esm2022/menu/menu.module.mjs +23 -0
- package/esm2022/mobile-filter/mobile-filter.component.mjs +178 -0
- package/esm2022/mobile-filter/mobile-filter.module.mjs +21 -0
- package/esm2022/modal/mis-crystal-design-system-modal.mjs +5 -0
- package/esm2022/modal/modal.module.mjs +33 -0
- package/esm2022/modal/modal.service.mjs +70 -0
- package/esm2022/modal/module-wrapper/module-wrapper.component.mjs +56 -0
- package/esm2022/multi-select-dropdown/multi-select-dropdown.component.mjs +477 -0
- package/esm2022/multi-select-dropdown/multi-select-dropdown.module.mjs +26 -0
- package/esm2022/nested-multi-select-dropdown/nested-multi-select-dropdown.component.mjs +509 -0
- package/esm2022/nested-multi-select-dropdown/nested-multi-select-dropdown.module.mjs +26 -0
- package/esm2022/phone-input/phone-input.component.mjs +116 -0
- package/esm2022/phone-input/phone-input.module.mjs +27 -0
- package/esm2022/radio-button/radio-button.component.mjs +57 -0
- package/esm2022/radio-button/radio-button.module.mjs +23 -0
- package/esm2022/ske-loader/ske-loader.component.mjs +54 -0
- package/esm2022/ske-loader/ske-loader.module.mjs +19 -0
- package/esm2022/slider/slider.component.mjs +46 -0
- package/esm2022/slider/slider.module.mjs +30 -0
- package/esm2022/snackbar/snackbar/snackbar.component.mjs +72 -0
- package/esm2022/snackbar/snackbar.module.mjs +36 -0
- package/esm2022/snackbar/snackbar.service.mjs +47 -0
- package/esm2022/specificdatepicker/mis-crystal-design-system-specificdatepicker.mjs +5 -0
- package/esm2022/specificdatepicker/public_api.mjs +5 -0
- package/esm2022/specificdatepicker/specificdatepicker.module.mjs +27 -0
- package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +619 -0
- package/esm2022/specificdatepicker/tz-specificdatepicker.directive.mjs +196 -0
- package/esm2022/specificdatepicker/utils/index.mjs +45 -0
- package/esm2022/star-rating/star-rating.component.mjs +113 -0
- package/esm2022/star-rating/star-rating.module.mjs +19 -0
- package/esm2022/switch/switch.component.mjs +56 -0
- package/esm2022/switch/switch.module.mjs +23 -0
- package/esm2022/table/custom-table-cell.directive.mjs +42 -0
- package/esm2022/table/filter/filter.component.mjs +169 -0
- package/esm2022/table/mis-crystal-design-system-table.mjs +5 -0
- package/esm2022/table/public_api.mjs +7 -0
- package/esm2022/table/sub-table/sub-table.component.mjs +192 -0
- package/esm2022/table/table.component.mjs +469 -0
- package/esm2022/table/table.module.mjs +27 -0
- package/esm2022/timepicker/mis-crystal-design-system-timepicker.mjs +5 -0
- package/esm2022/timepicker/timepicker.component.mjs +343 -0
- package/esm2022/timepicker/timepicker.directive.mjs +65 -0
- package/esm2022/timepicker/timepicker.module.mjs +26 -0
- package/esm2022/timerangepicker/timerangepicker.component.mjs +228 -0
- package/esm2022/timerangepicker/timerangepicker.module.mjs +24 -0
- package/esm2022/toast/toast.component.mjs +51 -0
- package/esm2022/toast/toast.data.service.mjs +30 -0
- package/esm2022/toast/toast.module.mjs +33 -0
- package/esm2022/toast/toast.service.mjs +91 -0
- package/esm2022/tooltip/tooltip-container/tooltip.component.mjs +78 -0
- package/esm2022/tooltip/tooltip.directive.mjs +137 -0
- package/esm2022/tooltip/tooltip.module.mjs +24 -0
- package/esm2022/virtual-scroll/virtual-scroll.component.mjs +188 -0
- package/esm2022/virtual-scroll/virtual-scroll.module.mjs +34 -0
- package/esm2022/widgets/classes/async-widget.mjs +23 -0
- package/esm2022/widgets/classes/base-widget.mjs +32 -0
- package/esm2022/widgets/classes/sync-widget.mjs +20 -0
- package/esm2022/widgets/classes/widget-group.mjs +32 -0
- package/esm2022/widgets/services/widget.service.mjs +18 -0
- package/esm2022/widgets/widgets.module.mjs +18 -0
- package/fab/fab.component.d.ts +6 -3
- package/fab/fab.module.d.ts +6 -0
- package/fesm2022/mis-crystal-design-system-action-list.mjs +391 -0
- package/fesm2022/mis-crystal-design-system-action-list.mjs.map +1 -0
- package/{fesm2015/mis-crystal-design-system-analytics.js → fesm2022/mis-crystal-design-system-analytics.mjs} +21 -15
- package/fesm2022/mis-crystal-design-system-analytics.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs +491 -0
- package/fesm2022/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-button.mjs +173 -0
- package/fesm2022/mis-crystal-design-system-button.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-checkbox.mjs +150 -0
- package/fesm2022/mis-crystal-design-system-checkbox.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-chip.mjs +108 -0
- package/fesm2022/mis-crystal-design-system-chip.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs +478 -0
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs +568 -0
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-drawer.mjs +173 -0
- package/fesm2022/mis-crystal-design-system-drawer.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-dropdown.mjs +472 -0
- package/fesm2022/mis-crystal-design-system-dropdown.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-dynamic-form.mjs +763 -0
- package/fesm2022/mis-crystal-design-system-dynamic-form.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-fab.mjs +171 -0
- package/fesm2022/mis-crystal-design-system-fab.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-input-stepper.mjs +104 -0
- package/fesm2022/mis-crystal-design-system-input-stepper.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-input.mjs +146 -0
- package/fesm2022/mis-crystal-design-system-input.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-loader.mjs +51 -0
- package/fesm2022/mis-crystal-design-system-loader.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-menu.mjs +124 -0
- package/fesm2022/mis-crystal-design-system-menu.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-mobile-filter.mjs +203 -0
- package/fesm2022/mis-crystal-design-system-mobile-filter.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-modal.mjs +173 -0
- package/fesm2022/mis-crystal-design-system-modal.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs +506 -0
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs +538 -0
- package/fesm2022/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-phone-input.mjs +145 -0
- package/fesm2022/mis-crystal-design-system-phone-input.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-radio-button.mjs +83 -0
- package/fesm2022/mis-crystal-design-system-radio-button.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-ske-loader.mjs +77 -0
- package/fesm2022/mis-crystal-design-system-ske-loader.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-slider.mjs +80 -0
- package/fesm2022/mis-crystal-design-system-slider.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-snackbar.mjs +155 -0
- package/fesm2022/mis-crystal-design-system-snackbar.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs +884 -0
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-star-rating.mjs +136 -0
- package/fesm2022/mis-crystal-design-system-star-rating.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-styles.mjs +4 -0
- package/fesm2022/mis-crystal-design-system-styles.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-switch.mjs +82 -0
- package/fesm2022/mis-crystal-design-system-switch.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-table.mjs +888 -0
- package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-timepicker.mjs +429 -0
- package/fesm2022/mis-crystal-design-system-timepicker.mjs.map +1 -0
- package/{fesm2015/mis-crystal-design-system-timerangepicker.js → fesm2022/mis-crystal-design-system-timerangepicker.mjs} +73 -35
- package/fesm2022/mis-crystal-design-system-timerangepicker.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-toast.mjs +199 -0
- package/fesm2022/mis-crystal-design-system-toast.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-tooltip.mjs +238 -0
- package/fesm2022/mis-crystal-design-system-tooltip.mjs.map +1 -0
- package/{fesm2015/mis-crystal-design-system-utils.js → fesm2022/mis-crystal-design-system-utils.mjs} +1 -1
- package/fesm2022/mis-crystal-design-system-utils.mjs.map +1 -0
- package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs +227 -0
- package/fesm2022/mis-crystal-design-system-virtual-scroll.mjs.map +1 -0
- package/{fesm2015/mis-crystal-design-system-widgets.js → fesm2022/mis-crystal-design-system-widgets.mjs} +13 -7
- package/fesm2022/mis-crystal-design-system-widgets.mjs.map +1 -0
- package/{fesm2015/mis-crystal-design-system.js → fesm2022/mis-crystal-design-system.mjs} +1 -1
- package/fesm2022/mis-crystal-design-system.mjs.map +1 -0
- package/input/directives/input/input.directive.d.ts +3 -0
- package/input/mis-input.component.d.ts +3 -0
- package/input/mis-input.module.d.ts +8 -0
- package/input-stepper/input-stepper/input-stepper.component.d.ts +3 -0
- package/input-stepper/input-stepper.module.d.ts +6 -0
- package/loader/loader.component.d.ts +3 -0
- package/loader/loader.module.d.ts +6 -0
- package/menu/menu-close.directive.d.ts +3 -0
- package/menu/menu.directive.d.ts +3 -0
- package/menu/menu.module.d.ts +9 -1
- package/mobile-filter/mobile-filter.component.d.ts +3 -0
- package/mobile-filter/mobile-filter.module.d.ts +8 -0
- package/modal/modal.module.d.ts +8 -0
- package/modal/modal.service.d.ts +3 -0
- package/modal/module-wrapper/module-wrapper.component.d.ts +3 -0
- package/multi-select-dropdown/multi-select-dropdown.component.d.ts +3 -0
- package/multi-select-dropdown/multi-select-dropdown.module.d.ts +10 -0
- package/nested-multi-select-dropdown/nested-multi-select-dropdown.component.d.ts +3 -0
- package/nested-multi-select-dropdown/nested-multi-select-dropdown.module.d.ts +10 -0
- package/package.json +240 -9
- package/phone-input/phone-input.component.d.ts +5 -2
- package/phone-input/phone-input.module.d.ts +10 -0
- package/radio-button/radio-button.component.d.ts +3 -0
- package/radio-button/radio-button.module.d.ts +7 -0
- package/ske-loader/ske-loader.component.d.ts +3 -0
- package/ske-loader/ske-loader.module.d.ts +6 -0
- package/slider/slider.component.d.ts +6 -3
- package/slider/slider.module.d.ts +7 -0
- package/snackbar/snackbar/snackbar.component.d.ts +3 -0
- package/snackbar/snackbar.module.d.ts +6 -0
- package/snackbar/snackbar.service.d.ts +5 -2
- package/specificdatepicker/models/sdp-config.model.d.ts +1 -1
- package/specificdatepicker/public_api.d.ts +2 -0
- package/specificdatepicker/specificdatepicker.module.d.ts +12 -0
- package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +5 -2
- package/specificdatepicker/tz-specificdatepicker.directive.d.ts +3 -0
- package/star-rating/star-rating.component.d.ts +3 -0
- package/star-rating/star-rating.module.d.ts +6 -0
- package/switch/switch.component.d.ts +3 -0
- package/switch/switch.module.d.ts +7 -0
- package/table/custom-table-cell.directive.d.ts +3 -0
- package/table/filter/filter.component.d.ts +4 -1
- package/table/public_api.d.ts +2 -0
- package/table/sub-table/sub-table.component.d.ts +3 -0
- package/table/table.component.d.ts +3 -0
- package/table/table.module.d.ts +11 -0
- package/timepicker/timepicker.component.d.ts +3 -0
- package/timepicker/timepicker.directive.d.ts +3 -0
- package/timepicker/timepicker.module.d.ts +10 -0
- package/timerangepicker/timerange.namespace.d.ts +1 -1
- package/timerangepicker/timerangepicker.component.d.ts +3 -0
- package/timerangepicker/timerangepicker.module.d.ts +8 -0
- package/toast/toast.component.d.ts +3 -0
- package/toast/toast.data.service.d.ts +3 -0
- package/toast/toast.module.d.ts +7 -0
- package/toast/toast.service.d.ts +4 -1
- package/tooltip/models/tooltip.model.d.ts +1 -1
- package/tooltip/tooltip-container/tooltip.component.d.ts +3 -0
- package/tooltip/tooltip.directive.d.ts +3 -0
- package/tooltip/tooltip.module.d.ts +8 -0
- package/virtual-scroll/virtual-scroll.component.d.ts +3 -0
- package/virtual-scroll/virtual-scroll.module.d.ts +8 -0
- package/widgets/interfaces/widgets.model.d.ts +1 -1
- package/widgets/services/widget.service.d.ts +3 -0
- package/widgets/widgets.module.d.ts +5 -0
- package/action-list/mis-crystal-design-system-action-list.d.ts +0 -4
- package/action-list/mis-crystal-design-system-action-list.metadata.json +0 -1
- package/action-list/package.json +0 -11
- package/analytics/mis-crystal-design-system-analytics.d.ts +0 -4
- package/analytics/mis-crystal-design-system-analytics.metadata.json +0 -1
- package/analytics/package.json +0 -11
- package/async-search-dropdown/mis-crystal-design-system-async-search-dropdown.d.ts +0 -4
- package/async-search-dropdown/mis-crystal-design-system-async-search-dropdown.metadata.json +0 -1
- package/async-search-dropdown/package.json +0 -11
- package/bundles/mis-crystal-design-system-action-list.umd.js +0 -509
- package/bundles/mis-crystal-design-system-action-list.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-action-list.umd.min.js +0 -16
- package/bundles/mis-crystal-design-system-action-list.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-analytics.umd.js +0 -422
- package/bundles/mis-crystal-design-system-analytics.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-analytics.umd.min.js +0 -16
- package/bundles/mis-crystal-design-system-analytics.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-async-search-dropdown.umd.js +0 -279
- package/bundles/mis-crystal-design-system-async-search-dropdown.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-async-search-dropdown.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-async-search-dropdown.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-button.umd.js +0 -134
- package/bundles/mis-crystal-design-system-button.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-button.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-button.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-checkbox.umd.js +0 -127
- package/bundles/mis-crystal-design-system-checkbox.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-checkbox.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-checkbox.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-chip.umd.js +0 -64
- package/bundles/mis-crystal-design-system-chip.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-chip.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-chip.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-datepicker_v2.umd.js +0 -706
- package/bundles/mis-crystal-design-system-datepicker_v2.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-datepicker_v2.umd.min.js +0 -16
- package/bundles/mis-crystal-design-system-datepicker_v2.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-daterangepicker_v2.umd.js +0 -464
- package/bundles/mis-crystal-design-system-daterangepicker_v2.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-daterangepicker_v2.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-daterangepicker_v2.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-drawer.umd.js +0 -169
- package/bundles/mis-crystal-design-system-drawer.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-drawer.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-drawer.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-dropdown.umd.js +0 -558
- package/bundles/mis-crystal-design-system-dropdown.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-dropdown.umd.min.js +0 -16
- package/bundles/mis-crystal-design-system-dropdown.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-dynamic-form.umd.js +0 -740
- package/bundles/mis-crystal-design-system-dynamic-form.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-dynamic-form.umd.min.js +0 -16
- package/bundles/mis-crystal-design-system-dynamic-form.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-fab.umd.js +0 -95
- package/bundles/mis-crystal-design-system-fab.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-fab.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-fab.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-input-stepper.umd.js +0 -85
- package/bundles/mis-crystal-design-system-input-stepper.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-input-stepper.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-input-stepper.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-input.umd.js +0 -116
- package/bundles/mis-crystal-design-system-input.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-input.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-input.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-loader.umd.js +0 -53
- package/bundles/mis-crystal-design-system-loader.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-loader.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-loader.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-menu.umd.js +0 -119
- package/bundles/mis-crystal-design-system-menu.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-menu.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-menu.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-mobile-filter.umd.js +0 -89
- package/bundles/mis-crystal-design-system-mobile-filter.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-mobile-filter.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-mobile-filter.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-modal.umd.js +0 -161
- package/bundles/mis-crystal-design-system-modal.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-modal.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-modal.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-multi-select-dropdown.umd.js +0 -623
- package/bundles/mis-crystal-design-system-multi-select-dropdown.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-multi-select-dropdown.umd.min.js +0 -16
- package/bundles/mis-crystal-design-system-multi-select-dropdown.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-nested-multi-select-dropdown.umd.js +0 -636
- package/bundles/mis-crystal-design-system-nested-multi-select-dropdown.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-nested-multi-select-dropdown.umd.min.js +0 -16
- package/bundles/mis-crystal-design-system-nested-multi-select-dropdown.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-phone-input.umd.js +0 -117
- package/bundles/mis-crystal-design-system-phone-input.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-phone-input.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-phone-input.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-radio-button.umd.js +0 -77
- package/bundles/mis-crystal-design-system-radio-button.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-radio-button.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-radio-button.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-ske-loader.umd.js +0 -65
- package/bundles/mis-crystal-design-system-ske-loader.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-ske-loader.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-ske-loader.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-slider.umd.js +0 -73
- package/bundles/mis-crystal-design-system-slider.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-slider.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-slider.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-snackbar.umd.js +0 -114
- package/bundles/mis-crystal-design-system-snackbar.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-snackbar.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-snackbar.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-specificdatepicker.umd.js +0 -977
- package/bundles/mis-crystal-design-system-specificdatepicker.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-specificdatepicker.umd.min.js +0 -16
- package/bundles/mis-crystal-design-system-specificdatepicker.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-star-rating.umd.js +0 -112
- package/bundles/mis-crystal-design-system-star-rating.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-star-rating.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-star-rating.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-styles.umd.js +0 -11
- package/bundles/mis-crystal-design-system-styles.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-styles.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-styles.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-switch.umd.js +0 -79
- package/bundles/mis-crystal-design-system-switch.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-switch.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-switch.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-table.umd.js +0 -784
- package/bundles/mis-crystal-design-system-table.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-table.umd.min.js +0 -16
- package/bundles/mis-crystal-design-system-table.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-timepicker.umd.js +0 -688
- package/bundles/mis-crystal-design-system-timepicker.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-timepicker.umd.min.js +0 -16
- package/bundles/mis-crystal-design-system-timepicker.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-timerangepicker.umd.js +0 -248
- package/bundles/mis-crystal-design-system-timerangepicker.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-timerangepicker.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-timerangepicker.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-toast.umd.js +0 -202
- package/bundles/mis-crystal-design-system-toast.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-toast.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-toast.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-tooltip.umd.js +0 -214
- package/bundles/mis-crystal-design-system-tooltip.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-tooltip.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-tooltip.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-utils.umd.js +0 -33
- package/bundles/mis-crystal-design-system-utils.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-utils.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system-utils.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-virtual-scroll.umd.js +0 -471
- package/bundles/mis-crystal-design-system-virtual-scroll.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-virtual-scroll.umd.min.js +0 -16
- package/bundles/mis-crystal-design-system-virtual-scroll.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system-widgets.umd.js +0 -478
- package/bundles/mis-crystal-design-system-widgets.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system-widgets.umd.min.js +0 -16
- package/bundles/mis-crystal-design-system-widgets.umd.min.js.map +0 -1
- package/bundles/mis-crystal-design-system.umd.js +0 -31
- package/bundles/mis-crystal-design-system.umd.js.map +0 -1
- package/bundles/mis-crystal-design-system.umd.min.js +0 -2
- package/bundles/mis-crystal-design-system.umd.min.js.map +0 -1
- package/button/mis-crystal-design-system-button.d.ts +0 -4
- package/button/mis-crystal-design-system-button.metadata.json +0 -1
- package/button/package.json +0 -11
- package/checkbox/mis-crystal-design-system-checkbox.d.ts +0 -4
- package/checkbox/mis-crystal-design-system-checkbox.metadata.json +0 -1
- package/checkbox/package.json +0 -11
- package/chip/mis-crystal-design-system-chip.d.ts +0 -4
- package/chip/mis-crystal-design-system-chip.metadata.json +0 -1
- package/chip/package.json +0 -11
- package/datepicker_v2/mis-crystal-design-system-datepicker_v2.d.ts +0 -7
- package/datepicker_v2/mis-crystal-design-system-datepicker_v2.metadata.json +0 -1
- package/datepicker_v2/package.json +0 -11
- package/daterangepicker_v2/mis-crystal-design-system-daterangepicker_v2.d.ts +0 -7
- package/daterangepicker_v2/mis-crystal-design-system-daterangepicker_v2.metadata.json +0 -1
- package/daterangepicker_v2/package.json +0 -11
- package/drawer/mis-crystal-design-system-drawer.d.ts +0 -5
- package/drawer/mis-crystal-design-system-drawer.metadata.json +0 -1
- package/drawer/package.json +0 -11
- package/dropdown/mis-crystal-design-system-dropdown.d.ts +0 -5
- package/dropdown/mis-crystal-design-system-dropdown.metadata.json +0 -1
- package/dropdown/package.json +0 -11
- package/dynamic-form/mis-crystal-design-system-dynamic-form.d.ts +0 -4
- package/dynamic-form/mis-crystal-design-system-dynamic-form.metadata.json +0 -1
- package/dynamic-form/package.json +0 -11
- package/esm2015/action-list/action-list.component.js +0 -161
- package/esm2015/action-list/action-list.module.js +0 -19
- package/esm2015/analytics/analytics.module.js +0 -14
- package/esm2015/analytics/analytics.service.js +0 -62
- package/esm2015/async-search-dropdown/async-dropdown.component.js +0 -243
- package/esm2015/async-search-dropdown/async-dropdown.module.js +0 -16
- package/esm2015/button/button.component.js +0 -43
- package/esm2015/button/button.directive.js +0 -57
- package/esm2015/button/button.module.js +0 -17
- package/esm2015/checkbox/checkbox.component.js +0 -79
- package/esm2015/checkbox/checkbox.module.js +0 -17
- package/esm2015/chip/chip.component.js +0 -31
- package/esm2015/chip/chip.module.js +0 -16
- package/esm2015/datepicker_v2/datepicker.module.js +0 -18
- package/esm2015/datepicker_v2/mis-crystal-design-system-datepicker_v2.js +0 -7
- package/esm2015/datepicker_v2/public_api.js +0 -3
- package/esm2015/datepicker_v2/tz-datepicker.directive.js +0 -144
- package/esm2015/datepicker_v2/tz-dp-container/tz-dp-container.component.js +0 -149
- package/esm2015/datepicker_v2/utils/index.js +0 -45
- package/esm2015/daterangepicker_v2/daterangepicker.module.js +0 -18
- package/esm2015/daterangepicker_v2/mis-crystal-design-system-daterangepicker_v2.js +0 -7
- package/esm2015/daterangepicker_v2/public_api.js +0 -3
- package/esm2015/daterangepicker_v2/tz-daterangepicker.directive.js +0 -123
- package/esm2015/daterangepicker_v2/tz-drp-container/tz-drp-container.component.js +0 -226
- package/esm2015/drawer/drawer-body/drawer-body.component.js +0 -41
- package/esm2015/drawer/drawer.module.js +0 -28
- package/esm2015/drawer/drawer.service.js +0 -59
- package/esm2015/drawer/mis-crystal-design-system-drawer.js +0 -6
- package/esm2015/dropdown/calculate-container-height.directive.js +0 -40
- package/esm2015/dropdown/dropdown.component.js +0 -169
- package/esm2015/dropdown/dropdown.module.js +0 -21
- package/esm2015/dropdown/mis-crystal-design-system-dropdown.js +0 -6
- package/esm2015/dynamic-form/dynamic-form.component.js +0 -308
- package/esm2015/dynamic-form/dynamic-form.module.js +0 -34
- package/esm2015/fab/fab.component.js +0 -63
- package/esm2015/fab/fab.module.js +0 -16
- package/esm2015/input/directives/input/input.directive.js +0 -38
- package/esm2015/input/mis-input.component.js +0 -45
- package/esm2015/input/mis-input.module.js +0 -15
- package/esm2015/input-stepper/input-stepper/input-stepper.component.js +0 -49
- package/esm2015/input-stepper/input-stepper.module.js +0 -19
- package/esm2015/loader/loader.component.js +0 -20
- package/esm2015/loader/loader.module.js +0 -16
- package/esm2015/menu/menu-close.directive.js +0 -18
- package/esm2015/menu/menu.directive.js +0 -70
- package/esm2015/menu/menu.module.js +0 -17
- package/esm2015/mobile-filter/mobile-filter.component.js +0 -54
- package/esm2015/mobile-filter/mobile-filter.module.js +0 -15
- package/esm2015/modal/mis-crystal-design-system-modal.js +0 -6
- package/esm2015/modal/modal.module.js +0 -28
- package/esm2015/modal/modal.service.js +0 -72
- package/esm2015/modal/module-wrapper/module-wrapper.component.js +0 -33
- package/esm2015/multi-select-dropdown/multi-select-dropdown.component.js +0 -269
- package/esm2015/multi-select-dropdown/multi-select-dropdown.module.js +0 -20
- package/esm2015/nested-multi-select-dropdown/nested-multi-select-dropdown.component.js +0 -265
- package/esm2015/nested-multi-select-dropdown/nested-multi-select-dropdown.module.js +0 -20
- package/esm2015/phone-input/phone-input.component.js +0 -85
- package/esm2015/phone-input/phone-input.module.js +0 -21
- package/esm2015/radio-button/radio-button.component.js +0 -45
- package/esm2015/radio-button/radio-button.module.js +0 -17
- package/esm2015/ske-loader/ske-loader.component.js +0 -31
- package/esm2015/ske-loader/ske-loader.module.js +0 -13
- package/esm2015/slider/slider.component.js +0 -38
- package/esm2015/slider/slider.module.js +0 -20
- package/esm2015/snackbar/snackbar/snackbar.component.js +0 -22
- package/esm2015/snackbar/snackbar.module.js +0 -31
- package/esm2015/snackbar/snackbar.service.js +0 -48
- package/esm2015/specificdatepicker/mis-crystal-design-system-specificdatepicker.js +0 -7
- package/esm2015/specificdatepicker/public_api.js +0 -3
- package/esm2015/specificdatepicker/specificdatepicker.module.js +0 -20
- package/esm2015/specificdatepicker/tz-sdp-container/tz-sdp-container.component.js +0 -356
- package/esm2015/specificdatepicker/tz-specificdatepicker.directive.js +0 -179
- package/esm2015/specificdatepicker/utils/index.js +0 -45
- package/esm2015/star-rating/star-rating.component.js +0 -78
- package/esm2015/star-rating/star-rating.module.js +0 -13
- package/esm2015/switch/switch.component.js +0 -39
- package/esm2015/switch/switch.module.js +0 -17
- package/esm2015/table/custom-table-cell.directive.js +0 -42
- package/esm2015/table/filter/filter.component.js +0 -75
- package/esm2015/table/mis-crystal-design-system-table.js +0 -6
- package/esm2015/table/public_api.js +0 -5
- package/esm2015/table/sub-table/sub-table.component.js +0 -69
- package/esm2015/table/table.component.js +0 -200
- package/esm2015/table/table.module.js +0 -21
- package/esm2015/timepicker/mis-crystal-design-system-timepicker.js +0 -6
- package/esm2015/timepicker/timepicker.component.js +0 -248
- package/esm2015/timepicker/timepicker.directive.js +0 -62
- package/esm2015/timepicker/timepicker.module.js +0 -20
- package/esm2015/timerangepicker/timerangepicker.component.js +0 -194
- package/esm2015/timerangepicker/timerangepicker.module.js +0 -18
- package/esm2015/toast/toast.component.js +0 -28
- package/esm2015/toast/toast.data.service.js +0 -29
- package/esm2015/toast/toast.module.js +0 -28
- package/esm2015/toast/toast.service.js +0 -96
- package/esm2015/tooltip/tooltip-container/tooltip.component.js +0 -35
- package/esm2015/tooltip/tooltip.directive.js +0 -128
- package/esm2015/tooltip/tooltip.module.js +0 -19
- package/esm2015/virtual-scroll/virtual-scroll.component.js +0 -111
- package/esm2015/virtual-scroll/virtual-scroll.module.js +0 -24
- package/esm2015/widgets/classes/async-widget.js +0 -23
- package/esm2015/widgets/classes/base-widget.js +0 -32
- package/esm2015/widgets/classes/sync-widget.js +0 -20
- package/esm2015/widgets/classes/widget-group.js +0 -32
- package/esm2015/widgets/services/widget.service.js +0 -16
- package/esm2015/widgets/widgets.module.js +0 -12
- package/fab/mis-crystal-design-system-fab.d.ts +0 -4
- package/fab/mis-crystal-design-system-fab.metadata.json +0 -1
- package/fab/package.json +0 -11
- package/fesm2015/mis-crystal-design-system-action-list.js +0 -184
- package/fesm2015/mis-crystal-design-system-action-list.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-analytics.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-async-search-dropdown.js +0 -262
- package/fesm2015/mis-crystal-design-system-async-search-dropdown.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-button.js +0 -120
- package/fesm2015/mis-crystal-design-system-button.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-checkbox.js +0 -100
- package/fesm2015/mis-crystal-design-system-checkbox.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-chip.js +0 -52
- package/fesm2015/mis-crystal-design-system-chip.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-datepicker_v2.js +0 -357
- package/fesm2015/mis-crystal-design-system-datepicker_v2.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-daterangepicker_v2.js +0 -413
- package/fesm2015/mis-crystal-design-system-daterangepicker_v2.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-drawer.js +0 -153
- package/fesm2015/mis-crystal-design-system-drawer.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-dropdown.js +0 -232
- package/fesm2015/mis-crystal-design-system-dropdown.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-dynamic-form.js +0 -346
- package/fesm2015/mis-crystal-design-system-dynamic-form.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-fab.js +0 -84
- package/fesm2015/mis-crystal-design-system-fab.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-input-stepper.js +0 -73
- package/fesm2015/mis-crystal-design-system-input-stepper.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-input.js +0 -99
- package/fesm2015/mis-crystal-design-system-input.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-loader.js +0 -41
- package/fesm2015/mis-crystal-design-system-loader.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-menu.js +0 -106
- package/fesm2015/mis-crystal-design-system-menu.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-mobile-filter.js +0 -74
- package/fesm2015/mis-crystal-design-system-mobile-filter.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-modal.js +0 -147
- package/fesm2015/mis-crystal-design-system-modal.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-multi-select-dropdown.js +0 -293
- package/fesm2015/mis-crystal-design-system-multi-select-dropdown.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-nested-multi-select-dropdown.js +0 -289
- package/fesm2015/mis-crystal-design-system-nested-multi-select-dropdown.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-phone-input.js +0 -109
- package/fesm2015/mis-crystal-design-system-phone-input.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-radio-button.js +0 -66
- package/fesm2015/mis-crystal-design-system-radio-button.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-ske-loader.js +0 -49
- package/fesm2015/mis-crystal-design-system-ske-loader.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-slider.js +0 -62
- package/fesm2015/mis-crystal-design-system-slider.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-snackbar.js +0 -101
- package/fesm2015/mis-crystal-design-system-snackbar.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-specificdatepicker.js +0 -599
- package/fesm2015/mis-crystal-design-system-specificdatepicker.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-star-rating.js +0 -96
- package/fesm2015/mis-crystal-design-system-star-rating.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-styles.js +0 -4
- package/fesm2015/mis-crystal-design-system-styles.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-switch.js +0 -60
- package/fesm2015/mis-crystal-design-system-switch.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-table.js +0 -406
- package/fesm2015/mis-crystal-design-system-table.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-timepicker.js +0 -330
- package/fesm2015/mis-crystal-design-system-timepicker.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-timerangepicker.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-toast.js +0 -174
- package/fesm2015/mis-crystal-design-system-toast.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-tooltip.js +0 -183
- package/fesm2015/mis-crystal-design-system-tooltip.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-utils.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-virtual-scroll.js +0 -141
- package/fesm2015/mis-crystal-design-system-virtual-scroll.js.map +0 -1
- package/fesm2015/mis-crystal-design-system-widgets.js.map +0 -1
- package/fesm2015/mis-crystal-design-system.js.map +0 -1
- package/input/mis-crystal-design-system-input.d.ts +0 -4
- package/input/mis-crystal-design-system-input.metadata.json +0 -1
- package/input/package.json +0 -11
- package/input-stepper/mis-crystal-design-system-input-stepper.d.ts +0 -4
- package/input-stepper/mis-crystal-design-system-input-stepper.metadata.json +0 -1
- package/input-stepper/package.json +0 -11
- package/loader/mis-crystal-design-system-loader.d.ts +0 -4
- package/loader/mis-crystal-design-system-loader.metadata.json +0 -1
- package/loader/package.json +0 -11
- package/menu/mis-crystal-design-system-menu.d.ts +0 -4
- package/menu/mis-crystal-design-system-menu.metadata.json +0 -1
- package/menu/package.json +0 -11
- package/mis-crystal-design-system.d.ts +0 -4
- package/mis-crystal-design-system.metadata.json +0 -1
- package/mobile-filter/mis-crystal-design-system-mobile-filter.d.ts +0 -4
- package/mobile-filter/mis-crystal-design-system-mobile-filter.metadata.json +0 -1
- package/mobile-filter/package.json +0 -11
- package/modal/mis-crystal-design-system-modal.d.ts +0 -5
- package/modal/mis-crystal-design-system-modal.metadata.json +0 -1
- package/modal/package.json +0 -11
- package/multi-select-dropdown/mis-crystal-design-system-multi-select-dropdown.d.ts +0 -4
- package/multi-select-dropdown/mis-crystal-design-system-multi-select-dropdown.metadata.json +0 -1
- package/multi-select-dropdown/package.json +0 -11
- package/nested-multi-select-dropdown/mis-crystal-design-system-nested-multi-select-dropdown.d.ts +0 -4
- package/nested-multi-select-dropdown/mis-crystal-design-system-nested-multi-select-dropdown.metadata.json +0 -1
- package/nested-multi-select-dropdown/package.json +0 -11
- package/phone-input/mis-crystal-design-system-phone-input.d.ts +0 -4
- package/phone-input/mis-crystal-design-system-phone-input.metadata.json +0 -1
- package/phone-input/package.json +0 -11
- package/radio-button/mis-crystal-design-system-radio-button.d.ts +0 -4
- package/radio-button/mis-crystal-design-system-radio-button.metadata.json +0 -1
- package/radio-button/package.json +0 -11
- package/ske-loader/mis-crystal-design-system-ske-loader.d.ts +0 -4
- package/ske-loader/mis-crystal-design-system-ske-loader.metadata.json +0 -1
- package/ske-loader/package.json +0 -11
- package/slider/mis-crystal-design-system-slider.d.ts +0 -4
- package/slider/mis-crystal-design-system-slider.metadata.json +0 -1
- package/slider/package.json +0 -11
- package/snackbar/mis-crystal-design-system-snackbar.d.ts +0 -4
- package/snackbar/mis-crystal-design-system-snackbar.metadata.json +0 -1
- package/snackbar/package.json +0 -11
- package/specificdatepicker/mis-crystal-design-system-specificdatepicker.d.ts +0 -7
- package/specificdatepicker/mis-crystal-design-system-specificdatepicker.metadata.json +0 -1
- package/specificdatepicker/package.json +0 -11
- package/star-rating/mis-crystal-design-system-star-rating.d.ts +0 -4
- package/star-rating/mis-crystal-design-system-star-rating.metadata.json +0 -1
- package/star-rating/package.json +0 -11
- package/styles/mis-crystal-design-system-styles.d.ts +0 -4
- package/styles/mis-crystal-design-system-styles.metadata.json +0 -1
- package/styles/package.json +0 -11
- package/switch/mis-crystal-design-system-switch.d.ts +0 -4
- package/switch/mis-crystal-design-system-switch.metadata.json +0 -1
- package/switch/package.json +0 -11
- package/table/mis-crystal-design-system-table.d.ts +0 -5
- package/table/mis-crystal-design-system-table.metadata.json +0 -1
- package/table/package.json +0 -11
- package/timepicker/mis-crystal-design-system-timepicker.d.ts +0 -5
- package/timepicker/mis-crystal-design-system-timepicker.metadata.json +0 -1
- package/timepicker/package.json +0 -11
- package/timerangepicker/mis-crystal-design-system-timerangepicker.d.ts +0 -4
- package/timerangepicker/mis-crystal-design-system-timerangepicker.metadata.json +0 -1
- package/timerangepicker/package.json +0 -11
- package/toast/mis-crystal-design-system-toast.d.ts +0 -4
- package/toast/mis-crystal-design-system-toast.metadata.json +0 -1
- package/toast/package.json +0 -11
- package/tooltip/mis-crystal-design-system-tooltip.d.ts +0 -4
- package/tooltip/mis-crystal-design-system-tooltip.metadata.json +0 -1
- package/tooltip/package.json +0 -11
- package/utils/mis-crystal-design-system-utils.d.ts +0 -4
- package/utils/mis-crystal-design-system-utils.metadata.json +0 -1
- package/utils/package.json +0 -11
- package/virtual-scroll/mis-crystal-design-system-virtual-scroll.d.ts +0 -4
- package/virtual-scroll/mis-crystal-design-system-virtual-scroll.metadata.json +0 -1
- package/virtual-scroll/package.json +0 -11
- package/widgets/mis-crystal-design-system-widgets.d.ts +0 -4
- package/widgets/mis-crystal-design-system-widgets.metadata.json +0 -1
- package/widgets/package.json +0 -11
- /package/{esm2015/action-list/index.js → esm2022/action-list/index.mjs} +0 -0
- /package/{esm2015/action-list/mis-crystal-design-system-action-list.js → esm2022/action-list/mis-crystal-design-system-action-list.mjs} +0 -0
- /package/{esm2015/action-list/public_api.js → esm2022/action-list/public_api.mjs} +0 -0
- /package/{esm2015/analytics/index.js → esm2022/analytics/index.mjs} +0 -0
- /package/{esm2015/analytics/mis-crystal-design-system-analytics.js → esm2022/analytics/mis-crystal-design-system-analytics.mjs} +0 -0
- /package/{esm2015/analytics/public_api.js → esm2022/analytics/public_api.mjs} +0 -0
- /package/{esm2015/async-search-dropdown/index.js → esm2022/async-search-dropdown/index.mjs} +0 -0
- /package/{esm2015/async-search-dropdown/mis-crystal-design-system-async-search-dropdown.js → esm2022/async-search-dropdown/mis-crystal-design-system-async-search-dropdown.mjs} +0 -0
- /package/{esm2015/async-search-dropdown/public_api.js → esm2022/async-search-dropdown/public_api.mjs} +0 -0
- /package/{esm2015/button/index.js → esm2022/button/index.mjs} +0 -0
- /package/{esm2015/button/mis-crystal-design-system-button.js → esm2022/button/mis-crystal-design-system-button.mjs} +0 -0
- /package/{esm2015/button/public_api.js → esm2022/button/public_api.mjs} +0 -0
- /package/{esm2015/checkbox/index.js → esm2022/checkbox/index.mjs} +0 -0
- /package/{esm2015/checkbox/mis-crystal-design-system-checkbox.js → esm2022/checkbox/mis-crystal-design-system-checkbox.mjs} +0 -0
- /package/{esm2015/checkbox/public_api.js → esm2022/checkbox/public_api.mjs} +0 -0
- /package/{esm2015/chip/index.js → esm2022/chip/index.mjs} +0 -0
- /package/{esm2015/chip/mis-crystal-design-system-chip.js → esm2022/chip/mis-crystal-design-system-chip.mjs} +0 -0
- /package/{esm2015/chip/public_api.js → esm2022/chip/public_api.mjs} +0 -0
- /package/{esm2015/datepicker_v2/datepicker-constants.js → esm2022/datepicker_v2/datepicker-constants.mjs} +0 -0
- /package/{esm2015/datepicker_v2/index.js → esm2022/datepicker_v2/index.mjs} +0 -0
- /package/{esm2015/datepicker_v2/models/dp-config.model.js → esm2022/datepicker_v2/models/dp-config.model.mjs} +0 -0
- /package/{esm2015/daterangepicker_v2/daterangepicker-constants.js → esm2022/daterangepicker_v2/daterangepicker-constants.mjs} +0 -0
- /package/{esm2015/daterangepicker_v2/index.js → esm2022/daterangepicker_v2/index.mjs} +0 -0
- /package/{esm2015/daterangepicker_v2/models/drp-config.model.js → esm2022/daterangepicker_v2/models/drp-config.model.mjs} +0 -0
- /package/{esm2015/drawer/drawer-constants.js → esm2022/drawer/drawer-constants.mjs} +0 -0
- /package/{esm2015/drawer/index.js → esm2022/drawer/index.mjs} +0 -0
- /package/{esm2015/drawer/public_api.js → esm2022/drawer/public_api.mjs} +0 -0
- /package/{esm2015/dropdown/index.js → esm2022/dropdown/index.mjs} +0 -0
- /package/{esm2015/dropdown/public_api.js → esm2022/dropdown/public_api.mjs} +0 -0
- /package/{esm2015/dynamic-form/dynamic-form.namespace.js → esm2022/dynamic-form/dynamic-form.namespace.mjs} +0 -0
- /package/{esm2015/dynamic-form/index.js → esm2022/dynamic-form/index.mjs} +0 -0
- /package/{esm2015/dynamic-form/mis-crystal-design-system-dynamic-form.js → esm2022/dynamic-form/mis-crystal-design-system-dynamic-form.mjs} +0 -0
- /package/{esm2015/dynamic-form/public_api.js → esm2022/dynamic-form/public_api.mjs} +0 -0
- /package/{esm2015/fab/index.js → esm2022/fab/index.mjs} +0 -0
- /package/{esm2015/fab/mis-crystal-design-system-fab.js → esm2022/fab/mis-crystal-design-system-fab.mjs} +0 -0
- /package/{esm2015/fab/public_api.js → esm2022/fab/public_api.mjs} +0 -0
- /package/{esm2015/index.js → esm2022/index.mjs} +0 -0
- /package/{esm2015/input/index.js → esm2022/input/index.mjs} +0 -0
- /package/{esm2015/input/mis-crystal-design-system-input.js → esm2022/input/mis-crystal-design-system-input.mjs} +0 -0
- /package/{esm2015/input/public_api.js → esm2022/input/public_api.mjs} +0 -0
- /package/{esm2015/input-stepper/index.js → esm2022/input-stepper/index.mjs} +0 -0
- /package/{esm2015/input-stepper/mis-crystal-design-system-input-stepper.js → esm2022/input-stepper/mis-crystal-design-system-input-stepper.mjs} +0 -0
- /package/{esm2015/input-stepper/public_api.js → esm2022/input-stepper/public_api.mjs} +0 -0
- /package/{esm2015/loader/index.js → esm2022/loader/index.mjs} +0 -0
- /package/{esm2015/loader/mis-crystal-design-system-loader.js → esm2022/loader/mis-crystal-design-system-loader.mjs} +0 -0
- /package/{esm2015/loader/public_api.js → esm2022/loader/public_api.mjs} +0 -0
- /package/{esm2015/menu/index.js → esm2022/menu/index.mjs} +0 -0
- /package/{esm2015/menu/mis-crystal-design-system-menu.js → esm2022/menu/mis-crystal-design-system-menu.mjs} +0 -0
- /package/{esm2015/menu/public_api.js → esm2022/menu/public_api.mjs} +0 -0
- /package/{esm2015/mis-crystal-design-system.js → esm2022/mis-crystal-design-system.mjs} +0 -0
- /package/{esm2015/mobile-filter/index.js → esm2022/mobile-filter/index.mjs} +0 -0
- /package/{esm2015/mobile-filter/mis-crystal-design-system-mobile-filter.js → esm2022/mobile-filter/mis-crystal-design-system-mobile-filter.mjs} +0 -0
- /package/{esm2015/mobile-filter/public_api.js → esm2022/mobile-filter/public_api.mjs} +0 -0
- /package/{esm2015/modal/index.js → esm2022/modal/index.mjs} +0 -0
- /package/{esm2015/modal/modal-constants.js → esm2022/modal/modal-constants.mjs} +0 -0
- /package/{esm2015/modal/modal-ref.js → esm2022/modal/modal-ref.mjs} +0 -0
- /package/{esm2015/modal/public_api.js → esm2022/modal/public_api.mjs} +0 -0
- /package/{esm2015/multi-select-dropdown/index.js → esm2022/multi-select-dropdown/index.mjs} +0 -0
- /package/{esm2015/multi-select-dropdown/mis-crystal-design-system-multi-select-dropdown.js → esm2022/multi-select-dropdown/mis-crystal-design-system-multi-select-dropdown.mjs} +0 -0
- /package/{esm2015/multi-select-dropdown/public_api.js → esm2022/multi-select-dropdown/public_api.mjs} +0 -0
- /package/{esm2015/nested-multi-select-dropdown/index.js → esm2022/nested-multi-select-dropdown/index.mjs} +0 -0
- /package/{esm2015/nested-multi-select-dropdown/mis-crystal-design-system-nested-multi-select-dropdown.js → esm2022/nested-multi-select-dropdown/mis-crystal-design-system-nested-multi-select-dropdown.mjs} +0 -0
- /package/{esm2015/nested-multi-select-dropdown/public_api.js → esm2022/nested-multi-select-dropdown/public_api.mjs} +0 -0
- /package/{esm2015/phone-input/index.js → esm2022/phone-input/index.mjs} +0 -0
- /package/{esm2015/phone-input/mis-crystal-design-system-phone-input.js → esm2022/phone-input/mis-crystal-design-system-phone-input.mjs} +0 -0
- /package/{esm2015/phone-input/public_api.js → esm2022/phone-input/public_api.mjs} +0 -0
- /package/{esm2015/public-api.js → esm2022/public-api.mjs} +0 -0
- /package/{esm2015/radio-button/index.js → esm2022/radio-button/index.mjs} +0 -0
- /package/{esm2015/radio-button/mis-crystal-design-system-radio-button.js → esm2022/radio-button/mis-crystal-design-system-radio-button.mjs} +0 -0
- /package/{esm2015/radio-button/public_api.js → esm2022/radio-button/public_api.mjs} +0 -0
- /package/{esm2015/ske-loader/index.js → esm2022/ske-loader/index.mjs} +0 -0
- /package/{esm2015/ske-loader/mis-crystal-design-system-ske-loader.js → esm2022/ske-loader/mis-crystal-design-system-ske-loader.mjs} +0 -0
- /package/{esm2015/ske-loader/public_api.js → esm2022/ske-loader/public_api.mjs} +0 -0
- /package/{esm2015/slider/index.js → esm2022/slider/index.mjs} +0 -0
- /package/{esm2015/slider/mis-crystal-design-system-slider.js → esm2022/slider/mis-crystal-design-system-slider.mjs} +0 -0
- /package/{esm2015/slider/public_api.js → esm2022/slider/public_api.mjs} +0 -0
- /package/{esm2015/snackbar/index.js → esm2022/snackbar/index.mjs} +0 -0
- /package/{esm2015/snackbar/mis-crystal-design-system-snackbar.js → esm2022/snackbar/mis-crystal-design-system-snackbar.mjs} +0 -0
- /package/{esm2015/snackbar/public_api.js → esm2022/snackbar/public_api.mjs} +0 -0
- /package/{esm2015/specificdatepicker/daterangepicker-constants.js → esm2022/specificdatepicker/daterangepicker-constants.mjs} +0 -0
- /package/{esm2015/specificdatepicker/index.js → esm2022/specificdatepicker/index.mjs} +0 -0
- /package/{esm2015/specificdatepicker/models/sdp-config.model.js → esm2022/specificdatepicker/models/sdp-config.model.mjs} +0 -0
- /package/{esm2015/star-rating/index.js → esm2022/star-rating/index.mjs} +0 -0
- /package/{esm2015/star-rating/mis-crystal-design-system-star-rating.js → esm2022/star-rating/mis-crystal-design-system-star-rating.mjs} +0 -0
- /package/{esm2015/star-rating/public_api.js → esm2022/star-rating/public_api.mjs} +0 -0
- /package/{esm2015/styles/index.js → esm2022/styles/index.mjs} +0 -0
- /package/{esm2015/styles/mis-crystal-design-system-styles.js → esm2022/styles/mis-crystal-design-system-styles.mjs} +0 -0
- /package/{esm2015/styles/public_api.js → esm2022/styles/public_api.mjs} +0 -0
- /package/{esm2015/switch/index.js → esm2022/switch/index.mjs} +0 -0
- /package/{esm2015/switch/mis-crystal-design-system-switch.js → esm2022/switch/mis-crystal-design-system-switch.mjs} +0 -0
- /package/{esm2015/switch/public_api.js → esm2022/switch/public_api.mjs} +0 -0
- /package/{esm2015/table/index.js → esm2022/table/index.mjs} +0 -0
- /package/{esm2015/timepicker/index.js → esm2022/timepicker/index.mjs} +0 -0
- /package/{esm2015/timepicker/public_api.js → esm2022/timepicker/public_api.mjs} +0 -0
- /package/{esm2015/timepicker/time.namespace.js → esm2022/timepicker/time.namespace.mjs} +0 -0
- /package/{esm2015/timerangepicker/index.js → esm2022/timerangepicker/index.mjs} +0 -0
- /package/{esm2015/timerangepicker/mis-crystal-design-system-timerangepicker.js → esm2022/timerangepicker/mis-crystal-design-system-timerangepicker.mjs} +0 -0
- /package/{esm2015/timerangepicker/public_api.js → esm2022/timerangepicker/public_api.mjs} +0 -0
- /package/{esm2015/timerangepicker/timerange.namespace.js → esm2022/timerangepicker/timerange.namespace.mjs} +0 -0
- /package/{esm2015/toast/index.js → esm2022/toast/index.mjs} +0 -0
- /package/{esm2015/toast/mis-crystal-design-system-toast.js → esm2022/toast/mis-crystal-design-system-toast.mjs} +0 -0
- /package/{esm2015/toast/public_api.js → esm2022/toast/public_api.mjs} +0 -0
- /package/{esm2015/tooltip/index.js → esm2022/tooltip/index.mjs} +0 -0
- /package/{esm2015/tooltip/mis-crystal-design-system-tooltip.js → esm2022/tooltip/mis-crystal-design-system-tooltip.mjs} +0 -0
- /package/{esm2015/tooltip/models/tooltip.model.js → esm2022/tooltip/models/tooltip.model.mjs} +0 -0
- /package/{esm2015/tooltip/public_api.js → esm2022/tooltip/public_api.mjs} +0 -0
- /package/{esm2015/utils/index.js → esm2022/utils/index.mjs} +0 -0
- /package/{esm2015/utils/mis-crystal-design-system-utils.js → esm2022/utils/mis-crystal-design-system-utils.mjs} +0 -0
- /package/{esm2015/virtual-scroll/index.js → esm2022/virtual-scroll/index.mjs} +0 -0
- /package/{esm2015/virtual-scroll/mis-crystal-design-system-virtual-scroll.js → esm2022/virtual-scroll/mis-crystal-design-system-virtual-scroll.mjs} +0 -0
- /package/{esm2015/virtual-scroll/public_api.js → esm2022/virtual-scroll/public_api.mjs} +0 -0
- /package/{esm2015/virtual-scroll/virtual-scroll.constants.js → esm2022/virtual-scroll/virtual-scroll.constants.mjs} +0 -0
- /package/{esm2015/widgets/index.js → esm2022/widgets/index.mjs} +0 -0
- /package/{esm2015/widgets/interfaces/widgets.model.js → esm2022/widgets/interfaces/widgets.model.mjs} +0 -0
- /package/{esm2015/widgets/mis-crystal-design-system-widgets.js → esm2022/widgets/mis-crystal-design-system-widgets.mjs} +0 -0
- /package/{esm2015/widgets/public_api.js → esm2022/widgets/public_api.mjs} +0 -0
|
@@ -0,0 +1,705 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from "@angular/core";
|
|
2
|
+
import { UntypedFormArray, UntypedFormControl, UntypedFormGroup, Validators } from "@angular/forms";
|
|
3
|
+
import * as moment from "moment";
|
|
4
|
+
import "moment-timezone";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "@angular/forms";
|
|
8
|
+
import * as i3 from "mis-crystal-design-system/dropdown";
|
|
9
|
+
import * as i4 from "mis-crystal-design-system/switch";
|
|
10
|
+
import * as i5 from "mis-crystal-design-system/multi-select-dropdown";
|
|
11
|
+
import * as i6 from "mis-crystal-design-system/datepicker_v2";
|
|
12
|
+
const _c0 = (a0, a1, a2) => ({ $implicit: a0, formGroup: a1, control: a2 });
|
|
13
|
+
const _c1 = (a0, a1) => ({ $implicit: a0, control: a1 });
|
|
14
|
+
const _c2 = a0 => ({ "border": a0 });
|
|
15
|
+
const _c3 = a0 => ({ $implicit: a0 });
|
|
16
|
+
const _c4 = a0 => ({ "checkbox-active": a0 });
|
|
17
|
+
function DynamicFormComponent_ng_container_2_div_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
18
|
+
i0.ɵɵelementContainerStart(0);
|
|
19
|
+
i0.ɵɵelementContainer(1, 7);
|
|
20
|
+
i0.ɵɵelementContainerEnd();
|
|
21
|
+
} if (rf & 2) {
|
|
22
|
+
const subFieldControl_r1 = ctx.$implicit;
|
|
23
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
24
|
+
const fieldControl_r3 = ctx_r1.$implicit;
|
|
25
|
+
const i_r4 = ctx_r1.index;
|
|
26
|
+
const ctx_r4 = i0.ɵɵnextContext();
|
|
27
|
+
const dynamicField_r6 = i0.ɵɵreference(4);
|
|
28
|
+
i0.ɵɵadvance();
|
|
29
|
+
i0.ɵɵproperty("ngTemplateOutlet", dynamicField_r6)("ngTemplateOutletContext", i0.ɵɵpureFunction2(2, _c1, ctx_r4.formFields[i_r4].subFields[ctx_r4.findSelectedIndex(ctx_r4.formFields[i_r4] == null ? null : ctx_r4.formFields[i_r4].subFields, fieldControl_r3.controls.value.value.value)], subFieldControl_r1));
|
|
30
|
+
} }
|
|
31
|
+
function DynamicFormComponent_ng_container_2_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
32
|
+
i0.ɵɵelementStart(0, "div", 9);
|
|
33
|
+
i0.ɵɵtemplate(1, DynamicFormComponent_ng_container_2_div_2_ng_container_1_Template, 2, 5, "ng-container", 10);
|
|
34
|
+
i0.ɵɵelementEnd();
|
|
35
|
+
} if (rf & 2) {
|
|
36
|
+
const fieldControl_r3 = i0.ɵɵnextContext().$implicit;
|
|
37
|
+
i0.ɵɵadvance();
|
|
38
|
+
i0.ɵɵproperty("ngForOf", fieldControl_r3.controls.subFields.controls);
|
|
39
|
+
} }
|
|
40
|
+
function DynamicFormComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
|
41
|
+
i0.ɵɵelementContainerStart(0, 6);
|
|
42
|
+
i0.ɵɵelementContainer(1, 7);
|
|
43
|
+
i0.ɵɵtemplate(2, DynamicFormComponent_ng_container_2_div_2_Template, 2, 1, "div", 8);
|
|
44
|
+
i0.ɵɵelementContainerEnd();
|
|
45
|
+
} if (rf & 2) {
|
|
46
|
+
const fieldControl_r3 = ctx.$implicit;
|
|
47
|
+
const i_r4 = ctx.index;
|
|
48
|
+
const ctx_r4 = i0.ɵɵnextContext();
|
|
49
|
+
const dynamicField_r6 = i0.ɵɵreference(4);
|
|
50
|
+
i0.ɵɵproperty("formGroupName", i_r4);
|
|
51
|
+
i0.ɵɵadvance();
|
|
52
|
+
i0.ɵɵproperty("ngTemplateOutlet", dynamicField_r6)("ngTemplateOutletContext", i0.ɵɵpureFunction3(4, _c0, ctx_r4.formFields[i_r4], fieldControl_r3, fieldControl_r3.controls.value));
|
|
53
|
+
i0.ɵɵadvance();
|
|
54
|
+
i0.ɵɵproperty("ngIf", fieldControl_r3.value && (!!(ctx_r4.formFields[i_r4] == null ? null : ctx_r4.formFields[i_r4].subFields) && (ctx_r4.formFields[i_r4] == null ? null : ctx_r4.formFields[i_r4].subFields == null ? null : ctx_r4.formFields[i_r4].subFields.length) > 0 && ctx_r4.matchParentConfig(ctx_r4.formFields[i_r4] == null ? null : ctx_r4.formFields[i_r4].subFields, fieldControl_r3.controls.value.value.value)));
|
|
55
|
+
} }
|
|
56
|
+
function DynamicFormComponent_ng_template_3_div_0_ng_container_5_Template(rf, ctx) { if (rf & 1) {
|
|
57
|
+
i0.ɵɵelementContainer(0, 7);
|
|
58
|
+
} if (rf & 2) {
|
|
59
|
+
const control_r11 = i0.ɵɵnextContext(2).control;
|
|
60
|
+
i0.ɵɵnextContext();
|
|
61
|
+
const dynamicFieldErrors_r12 = i0.ɵɵreference(6);
|
|
62
|
+
i0.ɵɵproperty("ngTemplateOutlet", dynamicFieldErrors_r12)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c3, control_r11.errors));
|
|
63
|
+
} }
|
|
64
|
+
function DynamicFormComponent_ng_template_3_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
65
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
66
|
+
i0.ɵɵelementStart(0, "div", 13)(1, "p", 14);
|
|
67
|
+
i0.ɵɵtext(2);
|
|
68
|
+
i0.ɵɵelementEnd();
|
|
69
|
+
i0.ɵɵelement(3, "div", 15);
|
|
70
|
+
i0.ɵɵelementStart(4, "input", 16);
|
|
71
|
+
i0.ɵɵlistener("ngModelChange", function DynamicFormComponent_ng_template_3_div_0_Template_input_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r7 = i0.ɵɵnextContext(); const field_r9 = ctx_r7.$implicit; const formgroup_r10 = ctx_r7.formGroup; const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.updateSubDynamicFields(field_r9, formgroup_r10, $event)); });
|
|
72
|
+
i0.ɵɵelementEnd();
|
|
73
|
+
i0.ɵɵtemplate(5, DynamicFormComponent_ng_template_3_div_0_ng_container_5_Template, 1, 4, "ng-container", 17);
|
|
74
|
+
i0.ɵɵelementEnd();
|
|
75
|
+
} if (rf & 2) {
|
|
76
|
+
const ctx_r7 = i0.ɵɵnextContext();
|
|
77
|
+
const field_r9 = ctx_r7.$implicit;
|
|
78
|
+
const control_r11 = ctx_r7.control;
|
|
79
|
+
i0.ɵɵadvance(2);
|
|
80
|
+
i0.ɵɵtextInterpolate1(" ", field_r9.title, " ");
|
|
81
|
+
i0.ɵɵadvance(2);
|
|
82
|
+
i0.ɵɵproperty("type", field_r9.fieldInputType)("formControl", control_r11)("ngStyle", i0.ɵɵpureFunction1(7, _c2, control_r11.touched && control_r11.errors ? "1px solid #B00020" : ""))("placeholder", field_r9.placeholderText ? field_r9.placeholderText : "Input Text")("min", field_r9.fieldInputType === "number" ? 0 : "");
|
|
83
|
+
i0.ɵɵadvance();
|
|
84
|
+
i0.ɵɵproperty("ngIf", control_r11.touched && control_r11.errors);
|
|
85
|
+
} }
|
|
86
|
+
function DynamicFormComponent_ng_template_3_div_1_ng_container_5_Template(rf, ctx) { if (rf & 1) {
|
|
87
|
+
i0.ɵɵelementContainer(0, 7);
|
|
88
|
+
} if (rf & 2) {
|
|
89
|
+
const control_r11 = i0.ɵɵnextContext(2).control;
|
|
90
|
+
i0.ɵɵnextContext();
|
|
91
|
+
const dynamicFieldErrors_r12 = i0.ɵɵreference(6);
|
|
92
|
+
i0.ɵɵproperty("ngTemplateOutlet", dynamicFieldErrors_r12)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c3, control_r11.errors));
|
|
93
|
+
} }
|
|
94
|
+
function DynamicFormComponent_ng_template_3_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
95
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
96
|
+
i0.ɵɵelementStart(0, "div", 13)(1, "p", 14);
|
|
97
|
+
i0.ɵɵtext(2);
|
|
98
|
+
i0.ɵɵelementEnd();
|
|
99
|
+
i0.ɵɵelement(3, "div", 15);
|
|
100
|
+
i0.ɵɵelementStart(4, "textarea", 18);
|
|
101
|
+
i0.ɵɵlistener("ngModelChange", function DynamicFormComponent_ng_template_3_div_1_Template_textarea_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r7 = i0.ɵɵnextContext(); const field_r9 = ctx_r7.$implicit; const formgroup_r10 = ctx_r7.formGroup; const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.updateSubDynamicFields(field_r9, formgroup_r10, $event)); });
|
|
102
|
+
i0.ɵɵelementEnd();
|
|
103
|
+
i0.ɵɵtemplate(5, DynamicFormComponent_ng_template_3_div_1_ng_container_5_Template, 1, 4, "ng-container", 17);
|
|
104
|
+
i0.ɵɵelementEnd();
|
|
105
|
+
} if (rf & 2) {
|
|
106
|
+
const ctx_r7 = i0.ɵɵnextContext();
|
|
107
|
+
const field_r9 = ctx_r7.$implicit;
|
|
108
|
+
const control_r11 = ctx_r7.control;
|
|
109
|
+
i0.ɵɵadvance(2);
|
|
110
|
+
i0.ɵɵtextInterpolate1(" ", field_r9.title, " ");
|
|
111
|
+
i0.ɵɵadvance(2);
|
|
112
|
+
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(5, _c2, control_r11.touched && control_r11.errors ? "1px solid #B00020" : ""))("placeholder", field_r9.placeholderText ? field_r9.placeholderText : "Input Text")("formControl", control_r11);
|
|
113
|
+
i0.ɵɵadvance();
|
|
114
|
+
i0.ɵɵproperty("ngIf", control_r11.touched && control_r11.errors);
|
|
115
|
+
} }
|
|
116
|
+
function DynamicFormComponent_ng_template_3_div_2_img_6_Template(rf, ctx) { if (rf & 1) {
|
|
117
|
+
const _r15 = i0.ɵɵgetCurrentView();
|
|
118
|
+
i0.ɵɵelementStart(0, "img", 24);
|
|
119
|
+
i0.ɵɵlistener("click", function DynamicFormComponent_ng_template_3_div_2_img_6_Template_img_click_0_listener() { i0.ɵɵrestoreView(_r15); i0.ɵɵnextContext(); const dp_r16 = i0.ɵɵreference(5); return i0.ɵɵresetView(dp_r16.click()); });
|
|
120
|
+
i0.ɵɵelementEnd();
|
|
121
|
+
} if (rf & 2) {
|
|
122
|
+
const ctx_r4 = i0.ɵɵnextContext(3);
|
|
123
|
+
i0.ɵɵproperty("src", ctx_r4.calendarIconUrl, i0.ɵɵsanitizeUrl);
|
|
124
|
+
} }
|
|
125
|
+
function DynamicFormComponent_ng_template_3_div_2_ng_container_7_Template(rf, ctx) { if (rf & 1) {
|
|
126
|
+
i0.ɵɵelementContainer(0, 7);
|
|
127
|
+
} if (rf & 2) {
|
|
128
|
+
const control_r11 = i0.ɵɵnextContext(2).control;
|
|
129
|
+
i0.ɵɵnextContext();
|
|
130
|
+
const dynamicFieldErrors_r12 = i0.ɵɵreference(6);
|
|
131
|
+
i0.ɵɵproperty("ngTemplateOutlet", dynamicFieldErrors_r12)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c3, control_r11.errors));
|
|
132
|
+
} }
|
|
133
|
+
function DynamicFormComponent_ng_template_3_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
134
|
+
const _r14 = i0.ɵɵgetCurrentView();
|
|
135
|
+
i0.ɵɵelementStart(0, "div", 19)(1, "p", 20);
|
|
136
|
+
i0.ɵɵtext(2);
|
|
137
|
+
i0.ɵɵelementEnd();
|
|
138
|
+
i0.ɵɵelementStart(3, "div", 21)(4, "input", 22, 2);
|
|
139
|
+
i0.ɵɵlistener("dateChange", function DynamicFormComponent_ng_template_3_div_2_Template_input_dateChange_4_listener($event) { i0.ɵɵrestoreView(_r14); const control_r11 = i0.ɵɵnextContext().control; return i0.ɵɵresetView(control_r11.setValue($event)); });
|
|
140
|
+
i0.ɵɵelementEnd();
|
|
141
|
+
i0.ɵɵtemplate(6, DynamicFormComponent_ng_template_3_div_2_img_6_Template, 1, 1, "img", 23);
|
|
142
|
+
i0.ɵɵelementEnd();
|
|
143
|
+
i0.ɵɵtemplate(7, DynamicFormComponent_ng_template_3_div_2_ng_container_7_Template, 1, 4, "ng-container", 17);
|
|
144
|
+
i0.ɵɵelementEnd();
|
|
145
|
+
} if (rf & 2) {
|
|
146
|
+
const ctx_r7 = i0.ɵɵnextContext();
|
|
147
|
+
const field_r9 = ctx_r7.$implicit;
|
|
148
|
+
const control_r11 = ctx_r7.control;
|
|
149
|
+
const ctx_r4 = i0.ɵɵnextContext();
|
|
150
|
+
i0.ɵɵadvance(2);
|
|
151
|
+
i0.ɵɵtextInterpolate1(" ", field_r9.title, " ");
|
|
152
|
+
i0.ɵɵadvance(2);
|
|
153
|
+
i0.ɵɵproperty("dpConfig", field_r9.fieldConfig)("selectedDate", control_r11.value)("offsetY", 0)("value", control_r11.value);
|
|
154
|
+
i0.ɵɵadvance(2);
|
|
155
|
+
i0.ɵɵproperty("ngIf", ctx_r4.calendarIconUrl);
|
|
156
|
+
i0.ɵɵadvance();
|
|
157
|
+
i0.ɵɵproperty("ngIf", control_r11.touched && control_r11.errors);
|
|
158
|
+
} }
|
|
159
|
+
function DynamicFormComponent_ng_template_3_div_3_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
160
|
+
i0.ɵɵelementContainer(0, 7);
|
|
161
|
+
} if (rf & 2) {
|
|
162
|
+
const control_r11 = i0.ɵɵnextContext(2).control;
|
|
163
|
+
i0.ɵɵnextContext();
|
|
164
|
+
const dynamicFieldErrors_r12 = i0.ɵɵreference(6);
|
|
165
|
+
i0.ɵɵproperty("ngTemplateOutlet", dynamicFieldErrors_r12)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c3, control_r11.errors));
|
|
166
|
+
} }
|
|
167
|
+
function DynamicFormComponent_ng_template_3_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
168
|
+
const _r17 = i0.ɵɵgetCurrentView();
|
|
169
|
+
i0.ɵɵelementStart(0, "div", 19)(1, "p", 20);
|
|
170
|
+
i0.ɵɵtext(2);
|
|
171
|
+
i0.ɵɵelementEnd();
|
|
172
|
+
i0.ɵɵelementStart(3, "mis-switch", 25);
|
|
173
|
+
i0.ɵɵlistener("valueChanged", function DynamicFormComponent_ng_template_3_div_3_Template_mis_switch_valueChanged_3_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r7 = i0.ɵɵnextContext(); const field_r9 = ctx_r7.$implicit; const formgroup_r10 = ctx_r7.formGroup; const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.updateSubDynamicFields(field_r9, formgroup_r10, $event)); });
|
|
174
|
+
i0.ɵɵelementEnd();
|
|
175
|
+
i0.ɵɵtemplate(4, DynamicFormComponent_ng_template_3_div_3_ng_container_4_Template, 1, 4, "ng-container", 17);
|
|
176
|
+
i0.ɵɵelementEnd();
|
|
177
|
+
} if (rf & 2) {
|
|
178
|
+
const ctx_r7 = i0.ɵɵnextContext();
|
|
179
|
+
const field_r9 = ctx_r7.$implicit;
|
|
180
|
+
const control_r11 = ctx_r7.control;
|
|
181
|
+
i0.ɵɵadvance(2);
|
|
182
|
+
i0.ɵɵtextInterpolate1(" ", field_r9.title, " ");
|
|
183
|
+
i0.ɵɵadvance();
|
|
184
|
+
i0.ɵɵproperty("control", control_r11);
|
|
185
|
+
i0.ɵɵadvance();
|
|
186
|
+
i0.ɵɵproperty("ngIf", control_r11.touched && control_r11.errors);
|
|
187
|
+
} }
|
|
188
|
+
function DynamicFormComponent_ng_template_3_div_4_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
189
|
+
i0.ɵɵelementContainer(0, 7);
|
|
190
|
+
} if (rf & 2) {
|
|
191
|
+
const control_r11 = i0.ɵɵnextContext(2).control;
|
|
192
|
+
i0.ɵɵnextContext();
|
|
193
|
+
const dynamicFieldErrors_r12 = i0.ɵɵreference(6);
|
|
194
|
+
i0.ɵɵproperty("ngTemplateOutlet", dynamicFieldErrors_r12)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c3, control_r11.errors));
|
|
195
|
+
} }
|
|
196
|
+
function DynamicFormComponent_ng_template_3_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
197
|
+
const _r18 = i0.ɵɵgetCurrentView();
|
|
198
|
+
i0.ɵɵelementStart(0, "div", 19)(1, "p", 20);
|
|
199
|
+
i0.ɵɵtext(2);
|
|
200
|
+
i0.ɵɵelementEnd();
|
|
201
|
+
i0.ɵɵelementStart(3, "mis-dropdown", 26);
|
|
202
|
+
i0.ɵɵlistener("onChange", function DynamicFormComponent_ng_template_3_div_4_Template_mis_dropdown_onChange_3_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r7 = i0.ɵɵnextContext(); const field_r9 = ctx_r7.$implicit; const control_r11 = ctx_r7.control; const formgroup_r10 = ctx_r7.formGroup; const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.updateSelectedValueForSingleSelect(field_r9, control_r11, formgroup_r10, $event)); });
|
|
203
|
+
i0.ɵɵelementEnd();
|
|
204
|
+
i0.ɵɵtemplate(4, DynamicFormComponent_ng_template_3_div_4_ng_container_4_Template, 1, 4, "ng-container", 17);
|
|
205
|
+
i0.ɵɵelementEnd();
|
|
206
|
+
} if (rf & 2) {
|
|
207
|
+
const ctx_r7 = i0.ɵɵnextContext();
|
|
208
|
+
const field_r9 = ctx_r7.$implicit;
|
|
209
|
+
const control_r11 = ctx_r7.control;
|
|
210
|
+
i0.ɵɵadvance(2);
|
|
211
|
+
i0.ɵɵtextInterpolate1(" ", field_r9.title, " ");
|
|
212
|
+
i0.ɵɵadvance();
|
|
213
|
+
i0.ɵɵproperty("searchEnabled", false)("width", "140px")("data", field_r9.itemsList)("selectedItem", control_r11.value);
|
|
214
|
+
i0.ɵɵadvance();
|
|
215
|
+
i0.ɵɵproperty("ngIf", control_r11.touched && control_r11.errors);
|
|
216
|
+
} }
|
|
217
|
+
function DynamicFormComponent_ng_template_3_div_5_div_5_img_1_Template(rf, ctx) { if (rf & 1) {
|
|
218
|
+
i0.ɵɵelement(0, "img", 31);
|
|
219
|
+
} if (rf & 2) {
|
|
220
|
+
const ctx_r4 = i0.ɵɵnextContext(4);
|
|
221
|
+
i0.ɵɵproperty("src", ctx_r4.activeBtnIconUrl, i0.ɵɵsanitizeUrl);
|
|
222
|
+
} }
|
|
223
|
+
function DynamicFormComponent_ng_template_3_div_5_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
224
|
+
const _r19 = i0.ɵɵgetCurrentView();
|
|
225
|
+
i0.ɵɵelementStart(0, "div", 29);
|
|
226
|
+
i0.ɵɵlistener("click", function DynamicFormComponent_ng_template_3_div_5_div_5_Template_div_click_0_listener() { const item_r20 = i0.ɵɵrestoreView(_r19).$implicit; const ctx_r7 = i0.ɵɵnextContext(2); const field_r9 = ctx_r7.$implicit; const control_r11 = ctx_r7.control; const formgroup_r10 = ctx_r7.formGroup; const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.updateSelectedValueForSingleSelect(field_r9, control_r11, formgroup_r10, item_r20)); });
|
|
227
|
+
i0.ɵɵtemplate(1, DynamicFormComponent_ng_template_3_div_5_div_5_img_1_Template, 1, 1, "img", 30);
|
|
228
|
+
i0.ɵɵelementStart(2, "p", 20);
|
|
229
|
+
i0.ɵɵtext(3);
|
|
230
|
+
i0.ɵɵelementEnd()();
|
|
231
|
+
} if (rf & 2) {
|
|
232
|
+
const item_r20 = ctx.$implicit;
|
|
233
|
+
const control_r11 = i0.ɵɵnextContext(2).control;
|
|
234
|
+
const ctx_r4 = i0.ɵɵnextContext();
|
|
235
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c4, item_r20.label === (control_r11.value == null ? null : control_r11.value.label)));
|
|
236
|
+
i0.ɵɵadvance();
|
|
237
|
+
i0.ɵɵproperty("ngIf", item_r20.label === (control_r11.value == null ? null : control_r11.value.label) && ctx_r4.activeBtnIconUrl);
|
|
238
|
+
i0.ɵɵadvance(2);
|
|
239
|
+
i0.ɵɵtextInterpolate(item_r20.label);
|
|
240
|
+
} }
|
|
241
|
+
function DynamicFormComponent_ng_template_3_div_5_ng_container_6_Template(rf, ctx) { if (rf & 1) {
|
|
242
|
+
i0.ɵɵelementContainer(0, 7);
|
|
243
|
+
} if (rf & 2) {
|
|
244
|
+
const control_r11 = i0.ɵɵnextContext(2).control;
|
|
245
|
+
i0.ɵɵnextContext();
|
|
246
|
+
const dynamicFieldErrors_r12 = i0.ɵɵreference(6);
|
|
247
|
+
i0.ɵɵproperty("ngTemplateOutlet", dynamicFieldErrors_r12)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c3, control_r11.errors));
|
|
248
|
+
} }
|
|
249
|
+
function DynamicFormComponent_ng_template_3_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
250
|
+
i0.ɵɵelementStart(0, "div", 13)(1, "p", 14);
|
|
251
|
+
i0.ɵɵtext(2);
|
|
252
|
+
i0.ɵɵelementEnd();
|
|
253
|
+
i0.ɵɵelement(3, "div", 15);
|
|
254
|
+
i0.ɵɵelementStart(4, "div", 27);
|
|
255
|
+
i0.ɵɵtemplate(5, DynamicFormComponent_ng_template_3_div_5_div_5_Template, 4, 5, "div", 28);
|
|
256
|
+
i0.ɵɵelementEnd();
|
|
257
|
+
i0.ɵɵtemplate(6, DynamicFormComponent_ng_template_3_div_5_ng_container_6_Template, 1, 4, "ng-container", 17);
|
|
258
|
+
i0.ɵɵelementEnd();
|
|
259
|
+
} if (rf & 2) {
|
|
260
|
+
const ctx_r7 = i0.ɵɵnextContext();
|
|
261
|
+
const field_r9 = ctx_r7.$implicit;
|
|
262
|
+
const control_r11 = ctx_r7.control;
|
|
263
|
+
i0.ɵɵadvance(2);
|
|
264
|
+
i0.ɵɵtextInterpolate1(" ", field_r9.title, " ");
|
|
265
|
+
i0.ɵɵadvance(3);
|
|
266
|
+
i0.ɵɵproperty("ngForOf", field_r9.itemsList);
|
|
267
|
+
i0.ɵɵadvance();
|
|
268
|
+
i0.ɵɵproperty("ngIf", control_r11.touched && control_r11.errors);
|
|
269
|
+
} }
|
|
270
|
+
function DynamicFormComponent_ng_template_3_div_6_div_5_img_1_Template(rf, ctx) { if (rf & 1) {
|
|
271
|
+
i0.ɵɵelement(0, "img", 31);
|
|
272
|
+
} if (rf & 2) {
|
|
273
|
+
const ctx_r4 = i0.ɵɵnextContext(4);
|
|
274
|
+
i0.ɵɵproperty("src", ctx_r4.activeBtnIconUrl, i0.ɵɵsanitizeUrl);
|
|
275
|
+
} }
|
|
276
|
+
function DynamicFormComponent_ng_template_3_div_6_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
277
|
+
const _r21 = i0.ɵɵgetCurrentView();
|
|
278
|
+
i0.ɵɵelementStart(0, "div", 29);
|
|
279
|
+
i0.ɵɵlistener("click", function DynamicFormComponent_ng_template_3_div_6_div_5_Template_div_click_0_listener() { const item_r22 = i0.ɵɵrestoreView(_r21).$implicit; const ctx_r7 = i0.ɵɵnextContext(2); const field_r9 = ctx_r7.$implicit; const control_r11 = ctx_r7.control; const formgroup_r10 = ctx_r7.formGroup; const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.updateSelectedValueForMultiSelect(field_r9, control_r11, formgroup_r10, [item_r22])); });
|
|
280
|
+
i0.ɵɵtemplate(1, DynamicFormComponent_ng_template_3_div_6_div_5_img_1_Template, 1, 1, "img", 30);
|
|
281
|
+
i0.ɵɵelementStart(2, "p", 20);
|
|
282
|
+
i0.ɵɵtext(3);
|
|
283
|
+
i0.ɵɵelementEnd()();
|
|
284
|
+
} if (rf & 2) {
|
|
285
|
+
const item_r22 = ctx.$implicit;
|
|
286
|
+
const control_r11 = i0.ɵɵnextContext(2).control;
|
|
287
|
+
const ctx_r4 = i0.ɵɵnextContext();
|
|
288
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(3, _c4, ctx_r4.isCheckBoxSelected(item_r22.label, control_r11.value)));
|
|
289
|
+
i0.ɵɵadvance();
|
|
290
|
+
i0.ɵɵproperty("ngIf", ctx_r4.isCheckBoxSelected(item_r22.label, control_r11.value) && ctx_r4.activeBtnIconUrl);
|
|
291
|
+
i0.ɵɵadvance(2);
|
|
292
|
+
i0.ɵɵtextInterpolate(item_r22.label);
|
|
293
|
+
} }
|
|
294
|
+
function DynamicFormComponent_ng_template_3_div_6_ng_container_6_Template(rf, ctx) { if (rf & 1) {
|
|
295
|
+
i0.ɵɵelementContainer(0, 7);
|
|
296
|
+
} if (rf & 2) {
|
|
297
|
+
const control_r11 = i0.ɵɵnextContext(2).control;
|
|
298
|
+
i0.ɵɵnextContext();
|
|
299
|
+
const dynamicFieldErrors_r12 = i0.ɵɵreference(6);
|
|
300
|
+
i0.ɵɵproperty("ngTemplateOutlet", dynamicFieldErrors_r12)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c3, control_r11.errors));
|
|
301
|
+
} }
|
|
302
|
+
function DynamicFormComponent_ng_template_3_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
303
|
+
i0.ɵɵelementStart(0, "div", 13)(1, "p", 14);
|
|
304
|
+
i0.ɵɵtext(2);
|
|
305
|
+
i0.ɵɵelementEnd();
|
|
306
|
+
i0.ɵɵelement(3, "div", 15);
|
|
307
|
+
i0.ɵɵelementStart(4, "div", 27);
|
|
308
|
+
i0.ɵɵtemplate(5, DynamicFormComponent_ng_template_3_div_6_div_5_Template, 4, 5, "div", 28);
|
|
309
|
+
i0.ɵɵelementEnd();
|
|
310
|
+
i0.ɵɵtemplate(6, DynamicFormComponent_ng_template_3_div_6_ng_container_6_Template, 1, 4, "ng-container", 17);
|
|
311
|
+
i0.ɵɵelementEnd();
|
|
312
|
+
} if (rf & 2) {
|
|
313
|
+
const ctx_r7 = i0.ɵɵnextContext();
|
|
314
|
+
const field_r9 = ctx_r7.$implicit;
|
|
315
|
+
const control_r11 = ctx_r7.control;
|
|
316
|
+
i0.ɵɵadvance(2);
|
|
317
|
+
i0.ɵɵtextInterpolate1(" ", field_r9.title, " ");
|
|
318
|
+
i0.ɵɵadvance(3);
|
|
319
|
+
i0.ɵɵproperty("ngForOf", field_r9.itemsList);
|
|
320
|
+
i0.ɵɵadvance();
|
|
321
|
+
i0.ɵɵproperty("ngIf", control_r11.touched && control_r11.errors);
|
|
322
|
+
} }
|
|
323
|
+
function DynamicFormComponent_ng_template_3_div_7_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
324
|
+
i0.ɵɵelementContainer(0, 7);
|
|
325
|
+
} if (rf & 2) {
|
|
326
|
+
const control_r11 = i0.ɵɵnextContext(2).control;
|
|
327
|
+
i0.ɵɵnextContext();
|
|
328
|
+
const dynamicFieldErrors_r12 = i0.ɵɵreference(6);
|
|
329
|
+
i0.ɵɵproperty("ngTemplateOutlet", dynamicFieldErrors_r12)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c3, control_r11.errors));
|
|
330
|
+
} }
|
|
331
|
+
function DynamicFormComponent_ng_template_3_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
332
|
+
const _r23 = i0.ɵɵgetCurrentView();
|
|
333
|
+
i0.ɵɵelementStart(0, "div", 19)(1, "p", 20);
|
|
334
|
+
i0.ɵɵtext(2);
|
|
335
|
+
i0.ɵɵelementEnd();
|
|
336
|
+
i0.ɵɵelementStart(3, "mis-multi-select-dropdown", 32);
|
|
337
|
+
i0.ɵɵlistener("onChange", function DynamicFormComponent_ng_template_3_div_7_Template_mis_multi_select_dropdown_onChange_3_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r7 = i0.ɵɵnextContext(); const field_r9 = ctx_r7.$implicit; const control_r11 = ctx_r7.control; const formgroup_r10 = ctx_r7.formGroup; const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.updateSelectedValueForMultiSelect(field_r9, control_r11, formgroup_r10, $event)); });
|
|
338
|
+
i0.ɵɵelementEnd();
|
|
339
|
+
i0.ɵɵtemplate(4, DynamicFormComponent_ng_template_3_div_7_ng_container_4_Template, 1, 4, "ng-container", 17);
|
|
340
|
+
i0.ɵɵelementEnd();
|
|
341
|
+
} if (rf & 2) {
|
|
342
|
+
const ctx_r7 = i0.ɵɵnextContext();
|
|
343
|
+
const field_r9 = ctx_r7.$implicit;
|
|
344
|
+
const control_r11 = ctx_r7.control;
|
|
345
|
+
i0.ɵɵadvance(2);
|
|
346
|
+
i0.ɵɵtextInterpolate1(" ", field_r9.title, " ");
|
|
347
|
+
i0.ɵɵadvance();
|
|
348
|
+
i0.ɵɵproperty("width", "140px")("showSelectedCount", true)("dropdownListWidth", "256px")("searchEnabled", false)("hideApplyButton", true)("data", field_r9.itemsList)("selectedItems", control_r11.value);
|
|
349
|
+
i0.ɵɵadvance();
|
|
350
|
+
i0.ɵɵproperty("ngIf", control_r11.touched && control_r11.errors);
|
|
351
|
+
} }
|
|
352
|
+
function DynamicFormComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
|
353
|
+
i0.ɵɵtemplate(0, DynamicFormComponent_ng_template_3_div_0_Template, 6, 9, "div", 11)(1, DynamicFormComponent_ng_template_3_div_1_Template, 6, 7, "div", 11)(2, DynamicFormComponent_ng_template_3_div_2_Template, 8, 7, "div", 12)(3, DynamicFormComponent_ng_template_3_div_3_Template, 5, 3, "div", 12)(4, DynamicFormComponent_ng_template_3_div_4_Template, 5, 6, "div", 12)(5, DynamicFormComponent_ng_template_3_div_5_Template, 7, 3, "div", 11)(6, DynamicFormComponent_ng_template_3_div_6_Template, 7, 3, "div", 11)(7, DynamicFormComponent_ng_template_3_div_7_Template, 5, 9, "div", 12);
|
|
354
|
+
} if (rf & 2) {
|
|
355
|
+
const field_r9 = ctx.$implicit;
|
|
356
|
+
i0.ɵɵproperty("ngIf", field_r9.fieldType === "input" && (field_r9.fieldInputType === "text" || field_r9.fieldInputType === "number"));
|
|
357
|
+
i0.ɵɵadvance();
|
|
358
|
+
i0.ɵɵproperty("ngIf", field_r9.fieldType === "input" && field_r9.fieldInputType === "textarea");
|
|
359
|
+
i0.ɵɵadvance();
|
|
360
|
+
i0.ɵɵproperty("ngIf", field_r9.fieldType === "input" && field_r9.fieldInputType === "date");
|
|
361
|
+
i0.ɵɵadvance();
|
|
362
|
+
i0.ɵɵproperty("ngIf", field_r9.fieldType === "boolean" && field_r9.fieldInputType === "toggle");
|
|
363
|
+
i0.ɵɵadvance();
|
|
364
|
+
i0.ɵɵproperty("ngIf", field_r9.fieldType === "singleSelect" && field_r9.fieldInputType === "dropdown");
|
|
365
|
+
i0.ɵɵadvance();
|
|
366
|
+
i0.ɵɵproperty("ngIf", field_r9.fieldType === "singleSelect" && field_r9.fieldInputType === "radio");
|
|
367
|
+
i0.ɵɵadvance();
|
|
368
|
+
i0.ɵɵproperty("ngIf", field_r9.fieldType === "multiSelect" && field_r9.fieldInputType === "checkbox");
|
|
369
|
+
i0.ɵɵadvance();
|
|
370
|
+
i0.ɵɵproperty("ngIf", field_r9.fieldType === "multiSelect" && field_r9.fieldInputType === "dropdown");
|
|
371
|
+
} }
|
|
372
|
+
function DynamicFormComponent_ng_template_5_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
373
|
+
i0.ɵɵelementContainerStart(0);
|
|
374
|
+
i0.ɵɵelementStart(1, "p", 34);
|
|
375
|
+
i0.ɵɵtext(2);
|
|
376
|
+
i0.ɵɵelementEnd();
|
|
377
|
+
i0.ɵɵelement(3, "div", 35);
|
|
378
|
+
i0.ɵɵelementContainerEnd();
|
|
379
|
+
} if (rf & 2) {
|
|
380
|
+
const error_r24 = ctx.$implicit;
|
|
381
|
+
i0.ɵɵadvance(2);
|
|
382
|
+
i0.ɵɵtextInterpolate1(" ", " \u2022 \u00A0" + error_r24.value, " ");
|
|
383
|
+
} }
|
|
384
|
+
function DynamicFormComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {
|
|
385
|
+
i0.ɵɵelementStart(0, "div", 33);
|
|
386
|
+
i0.ɵɵtemplate(1, DynamicFormComponent_ng_template_5_ng_container_1_Template, 4, 1, "ng-container", 10);
|
|
387
|
+
i0.ɵɵpipe(2, "keyvalue");
|
|
388
|
+
i0.ɵɵelementEnd();
|
|
389
|
+
} if (rf & 2) {
|
|
390
|
+
const errors_r25 = ctx.$implicit;
|
|
391
|
+
i0.ɵɵadvance();
|
|
392
|
+
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 1, errors_r25));
|
|
393
|
+
} }
|
|
394
|
+
export class DynamicFormComponent {
|
|
395
|
+
constructor() {
|
|
396
|
+
/**
|
|
397
|
+
* formFields: Dynamic fields recieved from the API metadata to build a dynamic form
|
|
398
|
+
* formValues: Holds the value of the dynamic form with "key" being dynamic field "title"
|
|
399
|
+
* and value being the user input.
|
|
400
|
+
*/
|
|
401
|
+
this.formFields = [];
|
|
402
|
+
this.formValues = {};
|
|
403
|
+
// Need to deprecate these inputs and use constants.
|
|
404
|
+
this.activeBtnIconUrl = "";
|
|
405
|
+
this.calendarIconUrl = "";
|
|
406
|
+
/**
|
|
407
|
+
* formUpdated: Emits formValues Object whenever there is a change in the dynamic form.
|
|
408
|
+
*/
|
|
409
|
+
this.formUpdated = new EventEmitter();
|
|
410
|
+
/**
|
|
411
|
+
* formValid: Emits boolean depending on validity of the form
|
|
412
|
+
*/
|
|
413
|
+
this.formValid = new EventEmitter();
|
|
414
|
+
/**
|
|
415
|
+
* formInitialized: Emits dynamic form API on form initilization
|
|
416
|
+
*/
|
|
417
|
+
this.formInitialized = new EventEmitter();
|
|
418
|
+
}
|
|
419
|
+
ngOnInit() {
|
|
420
|
+
// Building the form
|
|
421
|
+
this.dynamicForm = this.generateDynamicForm(this.formFields, this.formValues);
|
|
422
|
+
// Subscribing to form changes and emiting values.
|
|
423
|
+
this.valueChangesSubscription$ = this.dynamicForm.valueChanges.subscribe(formValue => {
|
|
424
|
+
this.onFormValueChanges();
|
|
425
|
+
});
|
|
426
|
+
//api to expose functions
|
|
427
|
+
this.dynamicFormAPI = {
|
|
428
|
+
defaultFormValues: () => {
|
|
429
|
+
return this.generateDynamicFieldsValueObject(this.dynamicForm.value.dynamicFields);
|
|
430
|
+
}
|
|
431
|
+
};
|
|
432
|
+
this.formInitialized.emit(this.dynamicFormAPI);
|
|
433
|
+
this.formValid.emit(this.dynamicForm.valid);
|
|
434
|
+
}
|
|
435
|
+
ngOnDestroy() {
|
|
436
|
+
this.valueChangesSubscription$?.unsubscribe();
|
|
437
|
+
}
|
|
438
|
+
onFormValueChanges() {
|
|
439
|
+
let formValues = this.generateDynamicFieldsValueObject(this.dynamicForm.value.dynamicFields);
|
|
440
|
+
this.formValid.emit(this.dynamicForm.valid);
|
|
441
|
+
this.formUpdated.emit(formValues);
|
|
442
|
+
console.log(formValues);
|
|
443
|
+
}
|
|
444
|
+
generateDynamicFieldsValueObject(formValues) {
|
|
445
|
+
let dynamicFieldsValue = {};
|
|
446
|
+
formValues.forEach((fieldValue, index) => {
|
|
447
|
+
let formattedValue = this.mapFormFieldToFormValue(this.formFields[index], fieldValue.value);
|
|
448
|
+
if (fieldValue.subFields?.length > 0) {
|
|
449
|
+
let formattedSubFieldsValues = {};
|
|
450
|
+
fieldValue.subFields.forEach((subFieldValue, subIndex) => {
|
|
451
|
+
let subFormField = this.formFields[index].subFields[subIndex];
|
|
452
|
+
formattedSubFieldsValues[subFormField.configName] = this.mapFormFieldToFormValue(subFormField, subFieldValue);
|
|
453
|
+
});
|
|
454
|
+
dynamicFieldsValue[this.formFields[index].configName] = {
|
|
455
|
+
value: formattedValue,
|
|
456
|
+
subFields: formattedSubFieldsValues
|
|
457
|
+
};
|
|
458
|
+
}
|
|
459
|
+
else {
|
|
460
|
+
dynamicFieldsValue[this.formFields[index].configName] = formattedValue;
|
|
461
|
+
}
|
|
462
|
+
});
|
|
463
|
+
return dynamicFieldsValue;
|
|
464
|
+
}
|
|
465
|
+
generateDynamicForm(formFields, formValues) {
|
|
466
|
+
let formArray = new UntypedFormArray([]);
|
|
467
|
+
for (let field of formFields) {
|
|
468
|
+
let fieldValue = formValues[field.configName]?.value ? formValues[field.configName].value : formValues[field.configName];
|
|
469
|
+
let fieldControl = this.mapFormValueToFormField(field, fieldValue);
|
|
470
|
+
let subFieldsControls = this.generateSubDynamicFields(formValues, field, fieldControl.value);
|
|
471
|
+
formArray.push(new UntypedFormGroup({
|
|
472
|
+
value: fieldControl,
|
|
473
|
+
subFields: subFieldsControls
|
|
474
|
+
}));
|
|
475
|
+
}
|
|
476
|
+
return new UntypedFormGroup({
|
|
477
|
+
dynamicFields: formArray
|
|
478
|
+
});
|
|
479
|
+
}
|
|
480
|
+
getDynamicFieldsControls() {
|
|
481
|
+
return this.dynamicForm.get("dynamicFields");
|
|
482
|
+
}
|
|
483
|
+
updateSubDynamicFields(field, formGroup, value) {
|
|
484
|
+
if (field.subFields?.length > 0) {
|
|
485
|
+
let subFieldsControls = this.generateSubDynamicFields(this.formValues, field, value);
|
|
486
|
+
formGroup.removeControl('subFields');
|
|
487
|
+
formGroup.addControl('subFields', subFieldsControls);
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
updateSelectedValueForSingleSelect(field, control, formGroup, value) {
|
|
491
|
+
if (control.value?.value !== value.value) {
|
|
492
|
+
control.setValue(value);
|
|
493
|
+
}
|
|
494
|
+
else
|
|
495
|
+
control.setValue('');
|
|
496
|
+
this.updateSubDynamicFields(field, formGroup, value);
|
|
497
|
+
control.markAsTouched();
|
|
498
|
+
}
|
|
499
|
+
updateSelectedValueForMultiSelect(field, control, formGroup, values) {
|
|
500
|
+
let selectedValues = control.value;
|
|
501
|
+
for (let value of values) {
|
|
502
|
+
let itemIndex = selectedValues.findIndex(item => item.label === value.label);
|
|
503
|
+
if (itemIndex > -1) {
|
|
504
|
+
selectedValues.splice(itemIndex, 1);
|
|
505
|
+
}
|
|
506
|
+
else {
|
|
507
|
+
selectedValues.push({ ...value });
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
control.setValue(selectedValues);
|
|
511
|
+
this.updateSubDynamicFields(field, formGroup, values);
|
|
512
|
+
control.markAsTouched();
|
|
513
|
+
}
|
|
514
|
+
isCheckBoxSelected(value, selectedValues) {
|
|
515
|
+
return selectedValues.findIndex(item => item.label === value) > -1;
|
|
516
|
+
}
|
|
517
|
+
findSelectedIndex(subfields, value) {
|
|
518
|
+
const selectedIndex = subfields.findIndex(item => item.parentConfigValue === value);
|
|
519
|
+
return selectedIndex !== -1 ? selectedIndex : 0;
|
|
520
|
+
}
|
|
521
|
+
matchParentConfig(subfields, value) {
|
|
522
|
+
if (!subfields || subfields.length === 0) {
|
|
523
|
+
return false;
|
|
524
|
+
}
|
|
525
|
+
return subfields.some(item => item.parentConfigValue === value);
|
|
526
|
+
}
|
|
527
|
+
generateSubDynamicFields(formValues, parentField, parentValue) {
|
|
528
|
+
let controls = new UntypedFormArray([]);
|
|
529
|
+
let subFields = parentField.subFields;
|
|
530
|
+
let subFieldsValues = formValues[parentField.configName]?.subFields ? formValues[parentField.configName].subFields : {};
|
|
531
|
+
if (!subFields)
|
|
532
|
+
return controls;
|
|
533
|
+
if (parentField.fieldType === 'singleSelect') {
|
|
534
|
+
subFields = subFields.filter((subField) => subField.parentConfigValue === parentValue?.value);
|
|
535
|
+
}
|
|
536
|
+
else if (parentField.fieldType === 'multiSelect') {
|
|
537
|
+
let parentValues = new Set(parentValue.map((value) => value.value));
|
|
538
|
+
subFields = subFields.filter((subField) => parentValues.has(subField.parentConfigValue));
|
|
539
|
+
}
|
|
540
|
+
if (subFields?.length > 0) {
|
|
541
|
+
for (let subField of subFields) {
|
|
542
|
+
controls.push(this.mapFormValueToFormField(subField, subFieldsValues[subField.configName]));
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
return controls;
|
|
546
|
+
}
|
|
547
|
+
mapFormValueToFormField(formField, formValue) {
|
|
548
|
+
let validators = formField.validators ? [dynamicFieldValidator(formField.validators)] : [];
|
|
549
|
+
let control = new UntypedFormControl(null, validators);
|
|
550
|
+
if (formField.fieldType === "input") {
|
|
551
|
+
if (formField.fieldInputType === "text" || formField.fieldInputType === "textarea")
|
|
552
|
+
control.setValue(formValue ? formValue : "");
|
|
553
|
+
else if (formField.fieldInputType === "number")
|
|
554
|
+
control.setValue(formValue ? formValue : 0);
|
|
555
|
+
else if (formField.fieldInputType === "date") {
|
|
556
|
+
if (formValue && typeof formValue === "number") {
|
|
557
|
+
control.setValue(moment(formValue).tz(formField.fieldConfig.timezone).format(formField.fieldConfig.format));
|
|
558
|
+
}
|
|
559
|
+
else {
|
|
560
|
+
control.setValue(moment().tz(formField.fieldConfig.timezone).format(formField.fieldConfig.format));
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
else if (formField.fieldType === "singleSelect") {
|
|
565
|
+
const findSelectedValue = () => {
|
|
566
|
+
let index = formField.itemsList.findIndex(item => item.value === formValue);
|
|
567
|
+
return index >= 0 ? formField.itemsList[index] : "";
|
|
568
|
+
};
|
|
569
|
+
if (formField.fieldInputType === "dropdown") {
|
|
570
|
+
if (!formValue)
|
|
571
|
+
control.setValue(formField.itemsList[0]);
|
|
572
|
+
else
|
|
573
|
+
control.setValue(findSelectedValue());
|
|
574
|
+
}
|
|
575
|
+
else if (formField.fieldInputType === "radio") {
|
|
576
|
+
control.setValue(findSelectedValue());
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
else if (formField.fieldType === "multiSelect") {
|
|
580
|
+
if (formValue && Array.isArray(formValue)) {
|
|
581
|
+
let selectedValues = [];
|
|
582
|
+
for (let value of formValue) {
|
|
583
|
+
let index = formField.itemsList.findIndex(item => item.value === value);
|
|
584
|
+
if (index > -1)
|
|
585
|
+
selectedValues.push({ ...formField.itemsList[index] });
|
|
586
|
+
}
|
|
587
|
+
control.setValue(selectedValues);
|
|
588
|
+
}
|
|
589
|
+
else {
|
|
590
|
+
control.setValue([]);
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
else if (formField.fieldType === "boolean") {
|
|
594
|
+
control.setValue(!!formValue);
|
|
595
|
+
}
|
|
596
|
+
else
|
|
597
|
+
control.setValue(null);
|
|
598
|
+
return control;
|
|
599
|
+
}
|
|
600
|
+
mapFormFieldToFormValue(formField, formValue) {
|
|
601
|
+
if (formField.fieldType === "input") {
|
|
602
|
+
if (formField.fieldInputType === "text" || formField.fieldInputType === "textarea")
|
|
603
|
+
return formValue;
|
|
604
|
+
else if (formField.fieldInputType === "number")
|
|
605
|
+
return +formValue;
|
|
606
|
+
else if (formField.fieldInputType === "date") {
|
|
607
|
+
return moment.tz(formValue, formField.fieldConfig.format, formField.fieldConfig.timezone).valueOf();
|
|
608
|
+
}
|
|
609
|
+
}
|
|
610
|
+
else if (formField.fieldType === "singleSelect") {
|
|
611
|
+
return formValue?.value ?? '';
|
|
612
|
+
}
|
|
613
|
+
else if (formField.fieldType === "multiSelect") {
|
|
614
|
+
return formValue?.map(item => item.value);
|
|
615
|
+
}
|
|
616
|
+
else if (formField.fieldType === "boolean") {
|
|
617
|
+
return formValue;
|
|
618
|
+
}
|
|
619
|
+
else
|
|
620
|
+
return formValue;
|
|
621
|
+
}
|
|
622
|
+
static { this.ɵfac = function DynamicFormComponent_Factory(t) { return new (t || DynamicFormComponent)(); }; }
|
|
623
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DynamicFormComponent, selectors: [["mis-dynamic-form"]], inputs: { formFields: "formFields", formValues: "formValues", activeBtnIconUrl: "activeBtnIconUrl", calendarIconUrl: "calendarIconUrl" }, outputs: { formUpdated: "formUpdated", formValid: "formValid", formInitialized: "formInitialized" }, decls: 7, vars: 2, consts: [["dynamicField", ""], ["dynamicFieldErrors", ""], ["dp", ""], [3, "formGroup"], ["formArrayName", "dynamicFields"], [3, "formGroupName", 4, "ngFor", "ngForOf"], [3, "formGroupName"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], ["class", "sub-dynamic-form", 4, "ngIf"], [1, "sub-dynamic-form"], [4, "ngFor", "ngForOf"], ["class", "dynamic-field multi-line-field-container", 4, "ngIf"], ["class", "dynamic-field single-line-field-container", 4, "ngIf"], [1, "dynamic-field", "multi-line-field-container"], [1, "h7", "field-title-sm"], [2, "flex-basis", "100%"], [1, "input-field", "ip-text", 3, "ngModelChange", "type", "formControl", "ngStyle", "placeholder", "min"], [3, "ngTemplateOutlet", "ngTemplateOutletContext", 4, "ngIf"], ["type", "text", 1, "input-field", "ip-textarea", 3, "ngModelChange", "ngStyle", "placeholder", "formControl"], [1, "dynamic-field", "single-line-field-container"], [1, "h6"], [1, "date-picker-container"], ["readonly", "", "misTzDp", "", 1, "date-picker", 3, "dateChange", "dpConfig", "selectedDate", "offsetY", "value"], ["alt", "data-picker", "class", "date-picker-icon", 3, "src", "click", 4, "ngIf"], ["alt", "data-picker", 1, "date-picker-icon", 3, "click", "src"], [3, "valueChanged", "control"], [3, "onChange", "searchEnabled", "width", "data", "selectedItem"], ["id", "checkboxes-container"], ["class", "radio-checkbox-common", 3, "ngClass", "click", 4, "ngFor", "ngForOf"], [1, "radio-checkbox-common", 3, "click", "ngClass"], ["alt", "", 3, "src", 4, "ngIf"], ["alt", "", 3, "src"], [3, "onChange", "width", "showSelectedCount", "dropdownListWidth", "searchEnabled", "hideApplyButton", "data", "selectedItems"], ["id", "error-messages-container"], [1, "h8"], [2, "flex-basis", "100%", "height", "0"]], template: function DynamicFormComponent_Template(rf, ctx) { if (rf & 1) {
|
|
624
|
+
i0.ɵɵelementStart(0, "form", 3);
|
|
625
|
+
i0.ɵɵelementContainerStart(1, 4);
|
|
626
|
+
i0.ɵɵtemplate(2, DynamicFormComponent_ng_container_2_Template, 3, 8, "ng-container", 5);
|
|
627
|
+
i0.ɵɵelementContainerEnd();
|
|
628
|
+
i0.ɵɵelementEnd();
|
|
629
|
+
i0.ɵɵtemplate(3, DynamicFormComponent_ng_template_3_Template, 8, 8, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(5, DynamicFormComponent_ng_template_5_Template, 3, 3, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
|
|
630
|
+
} if (rf & 2) {
|
|
631
|
+
i0.ɵɵproperty("formGroup", ctx.dynamicForm);
|
|
632
|
+
i0.ɵɵadvance(2);
|
|
633
|
+
i0.ɵɵproperty("ngForOf", ctx.getDynamicFieldsControls().controls);
|
|
634
|
+
} }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, i2.ɵNgNoValidate, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormControlDirective, i2.FormGroupDirective, i2.FormGroupName, i2.FormArrayName, i3.DropdownComponent, i4.SwitchComponent, i5.MultiSelectDropdownComponent, i6.TzDatepickerDirective, i1.KeyValuePipe], styles: ["p[_ngcontent-%COMP%]{margin:0;cursor:default} .main-container{margin:0;max-width:100%}.sub-dynamic-form[_ngcontent-%COMP%]{padding-left:24px}.dynamic-field[_ngcontent-%COMP%] .container{height:32px!important}.single-line-field-container[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;padding:28px 16px;border-bottom:1px solid var(--grey-seperators)}.multi-line-field-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-start;align-items:flex-start;padding:28px 16px;flex-wrap:wrap;border-bottom:1px solid var(--grey-seperators)}.field-title-sm[_ngcontent-%COMP%]{margin-bottom:8px;cursor:default}.input-field[_ngcontent-%COMP%]{width:100%;background-color:var(--grey-bg-1);border:1px solid var(--grey-seperators);border-radius:6px}.ip-text[_ngcontent-%COMP%]{height:44px;padding:8px 12px}.ip-textarea[_ngcontent-%COMP%]{max-height:94px;padding:8px}input[_ngcontent-%COMP%]:focus{outline:none}input[_ngcontent-%COMP%]::placeholder{color:var(--grey-seperators)}textarea[_ngcontent-%COMP%]:focus{outline:none}.date-picker-container[_ngcontent-%COMP%]{position:relative;width:140px}.date-picker-container[_ngcontent-%COMP%] .date-picker[_ngcontent-%COMP%]{cursor:pointer;height:32px;width:100%;font-size:14px;border-radius:6px;padding:0 12px;border:1px solid var(--grey-seperators);inset:10px auto auto 80px;background-color:var(--text-white)}.date-picker-container[_ngcontent-%COMP%] .date-picker[_ngcontent-%COMP%]:hover{background-color:var(--grey-hover)}.date-picker-container[_ngcontent-%COMP%] .date-picker-icon[_ngcontent-%COMP%]{position:absolute;top:50%;right:12px;transform:translateY(-50%);cursor:pointer}form[_ngcontent-%COMP%] .dynamic-field[_ngcontent-%COMP%]:last-child{border-bottom:none!important}#checkboxes-container[_ngcontent-%COMP%]{display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap}.radio-checkbox-common[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;cursor:pointer;margin-right:8px;margin-bottom:8px;background-color:var(--text-white);padding:12px 16px;border:1px solid var(--text-muted);border-radius:8px}.radio-checkbox-common[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--text-muted);cursor:pointer}.radio-checkbox-common[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{margin-right:8px}.checkbox-active[_ngcontent-%COMP%]{background-color:var(--pmry-500)}.checkbox-active[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--text-white)}#error-messages-container[_ngcontent-%COMP%]{margin-top:4px;width:100%;display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap}#error-messages-container[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--sem-error)}"] }); }
|
|
635
|
+
}
|
|
636
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DynamicFormComponent, [{
|
|
637
|
+
type: Component,
|
|
638
|
+
args: [{ selector: "mis-dynamic-form", template: "<form [formGroup]=\"dynamicForm\">\n <ng-container formArrayName=\"dynamicFields\">\n <ng-container [formGroupName]=\"i\" *ngFor=\"let fieldControl of getDynamicFieldsControls().controls; let i = index\">\n <ng-container\n [ngTemplateOutlet]=\"dynamicField\"\n [ngTemplateOutletContext]=\"{\n $implicit: formFields[i],\n formGroup: fieldControl,\n control: fieldControl.controls.value\n }\"\n >\n </ng-container>\n <div class=\"sub-dynamic-form\" *ngIf=\"fieldControl.value && (!!formFields[i]?.subFields && formFields[i]?.subFields?.length > 0 && matchParentConfig(formFields[i]?.subFields, fieldControl.controls.value.value.value))\">\n <ng-container *ngFor=\"let subFieldControl of fieldControl.controls.subFields.controls;\">\n <ng-container\n [ngTemplateOutlet]=\"dynamicField\"\n [ngTemplateOutletContext]=\"{\n $implicit: formFields[i].subFields[findSelectedIndex(formFields[i]?.subFields, fieldControl.controls.value.value.value)],\n control: subFieldControl\n }\">\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n</form>\n\n\n<ng-template #dynamicField let-field let-control=\"control\" let-formgroup=\"formGroup\">\n\n <!-- fieldType: 'input' fieldInputType: 'text' | 'number' -->\n <div class=\"dynamic-field multi-line-field-container\"\n *ngIf=\"field.fieldType === 'input' && (field.fieldInputType === 'text' || field.fieldInputType === 'number')\">\n <p class=\"h7 field-title-sm\">\n {{ field.title }}\n </p>\n <div style=\"flex-basis: 100%\"></div>\n <input class=\"input-field ip-text\" [type]=\"field.fieldInputType\" [formControl]=\"control\"\n (ngModelChange)=\"updateSubDynamicFields(field, formgroup, $event)\" \n [ngStyle]=\"{'border': control.touched && control.errors ? '1px solid #B00020': ''}\"\n [placeholder]=\"field.placeholderText ? field.placeholderText : 'Input Text'\" \n [min]=\"field.fieldInputType === 'number' ? 0 : '' \"/>\n <ng-container *ngIf=\"control.touched && control.errors\"\n [ngTemplateOutlet]=\"dynamicFieldErrors\" \n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\"\n >\n </ng-container>\n </div>\n\n <!-- fieldType: 'input' fieldInputType: 'textarea' -->\n <div class=\"dynamic-field multi-line-field-container\"\n *ngIf=\"field.fieldType === 'input' && field.fieldInputType === 'textarea'\">\n <p class=\"h7 field-title-sm\">\n {{ field.title }}\n </p>\n <div style=\"flex-basis: 100%\"></div>\n <textarea class=\"input-field ip-textarea\" type=\"text\"\n [ngStyle]=\"{'border': control.touched && control.errors ? '1px solid #B00020': ''}\"\n [placeholder]=\"field.placeholderText ? field.placeholderText : 'Input Text'\" [formControl]=\"control\" (ngModelChange)=\"updateSubDynamicFields(field, formgroup, $event)\"></textarea>\n <ng-container *ngIf=\"control.touched && control.errors\" [ngTemplateOutlet]=\"dynamicFieldErrors\"\n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\">\n </ng-container>\n </div>\n\n <!-- fieldType: 'input' fieldInputType: 'date' -->\n <div class=\"dynamic-field single-line-field-container\"\n *ngIf=\"field.fieldType === 'input' && field.fieldInputType === 'date'\">\n <p class=\"h6\">\n {{ field.title }}\n </p>\n <div class=\"date-picker-container\">\n <input class=\"date-picker\" readonly misTzDp [dpConfig]=\"field.fieldConfig\"\n (dateChange)=\"control.setValue($event)\" [selectedDate]=\"control.value\" [offsetY]=\"0\"\n [value]=\"control.value\" #dp />\n <img alt=\"data-picker\" *ngIf=\"calendarIconUrl\" class=\"date-picker-icon\" [src]=\"calendarIconUrl\"\n (click)=\"dp.click()\" />\n </div>\n <ng-container *ngIf=\"control.touched && control.errors\" [ngTemplateOutlet]=\"dynamicFieldErrors\"\n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\">\n </ng-container>\n </div>\n\n <!-- fieldType: 'boolean' fieldInputType: 'toggle' -->\n <div class=\"dynamic-field single-line-field-container\"\n *ngIf=\"field.fieldType === 'boolean' && field.fieldInputType === 'toggle'\">\n <p class=\"h6\">\n {{ field.title }}\n </p>\n <mis-switch [control]=\"control\" (valueChanged)=\"updateSubDynamicFields(field, formgroup, $event)\"></mis-switch>\n <ng-container *ngIf=\"control.touched && control.errors\" [ngTemplateOutlet]=\"dynamicFieldErrors\"\n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\">\n </ng-container>\n </div>\n\n <!-- fieldType: 'singleSelect' fieldInputType: 'dropdown' -->\n <div class=\"dynamic-field single-line-field-container\"\n *ngIf=\"field.fieldType === 'singleSelect' && field.fieldInputType === 'dropdown'\">\n <p class=\"h6\">\n {{ field.title }}\n </p>\n <mis-dropdown [searchEnabled]=\"false\" [width]=\"'140px'\" [data]=\"field.itemsList\" [selectedItem]=\"control.value\"\n (onChange)=\"updateSelectedValueForSingleSelect(field, control, formgroup, $event);\">\n </mis-dropdown>\n <ng-container *ngIf=\"control.touched && control.errors\" [ngTemplateOutlet]=\"dynamicFieldErrors\"\n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\">\n </ng-container>\n </div>\n\n <!-- fieldType: 'singleSelect' fieldInputType: 'radio' -->\n <div class=\"dynamic-field multi-line-field-container\"\n *ngIf=\"field.fieldType === 'singleSelect' && field.fieldInputType === 'radio'\">\n <p class=\"h7 field-title-sm\">\n {{ field.title }}\n </p>\n <div style=\"flex-basis: 100%\"></div>\n <div id=\"checkboxes-container\">\n <div class=\"radio-checkbox-common\" *ngFor=\"let item of field.itemsList\"\n [ngClass]=\"{ 'checkbox-active': item.label === control.value?.label }\"\n (click)=\"updateSelectedValueForSingleSelect(field, control, formgroup, item);\">\n <img *ngIf=\"(item.label === control.value?.label) && activeBtnIconUrl\" [src]=\"activeBtnIconUrl\" alt=\"\" />\n <p class=\"h6\">{{ item.label }}</p>\n </div>\n </div>\n <ng-container *ngIf=\"control.touched && control.errors\" [ngTemplateOutlet]=\"dynamicFieldErrors\"\n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\">\n </ng-container>\n </div>\n\n <!-- fieldType: 'multiSelect' fieldInputType: 'checkbox' -->\n <div class=\"dynamic-field multi-line-field-container\"\n *ngIf=\"field.fieldType === 'multiSelect' && field.fieldInputType === 'checkbox'\">\n <p class=\"h7 field-title-sm\">\n {{ field.title }}\n </p>\n <div style=\"flex-basis: 100%\"></div>\n <div id=\"checkboxes-container\">\n <div class=\"radio-checkbox-common\" *ngFor=\"let item of field.itemsList\"\n [ngClass]=\"{ 'checkbox-active': isCheckBoxSelected(item.label, control.value) }\"\n (click)=\"updateSelectedValueForMultiSelect(field, control, formgroup, [item])\">\n <img *ngIf=\"isCheckBoxSelected(item.label, control.value) && activeBtnIconUrl\" [src]=\"activeBtnIconUrl\"\n alt=\"\" />\n <p class=\"h6\">{{ item.label }}</p>\n </div>\n </div>\n <ng-container *ngIf=\"control.touched && control.errors\" [ngTemplateOutlet]=\"dynamicFieldErrors\"\n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\">\n </ng-container>\n </div>\n\n <!-- fieldType: 'multiSelect' fieldInputType: 'dropdown' -->\n <div class=\"dynamic-field single-line-field-container\"\n *ngIf=\"field.fieldType === 'multiSelect' && field.fieldInputType === 'dropdown'\">\n <p class=\"h6\">\n {{ field.title }}\n </p>\n <mis-multi-select-dropdown [width]=\"'140px'\" [showSelectedCount]=\"true\" [dropdownListWidth]=\"'256px'\"\n [searchEnabled]=\"false\" [hideApplyButton]=\"true\" [data]=\"field.itemsList\"\n [selectedItems]=\"control.value\" (onChange)=\"updateSelectedValueForMultiSelect(field, control, formgroup, $event);\"></mis-multi-select-dropdown>\n <ng-container *ngIf=\"control.touched && control.errors\" [ngTemplateOutlet]=\"dynamicFieldErrors\"\n [ngTemplateOutletContext]=\"{ $implicit: control.errors }\">\n </ng-container>\n </div>\n\n</ng-template>\n\n<ng-template #dynamicFieldErrors let-errors>\n <div id=\"error-messages-container\">\n <ng-container *ngFor=\"let error of errors | keyvalue\">\n <p class=\"h8\">\n {{\" \u2022 \" + error.value}}\n </p>\n <div style=\"flex-basis: 100%; height: 0\"></div>\n </ng-container>\n </div>\n</ng-template>", styles: ["p{margin:0;cursor:default}::ng-deep .main-container{margin:0;max-width:100%}.sub-dynamic-form{padding-left:24px}.dynamic-field ::ng-deep .container{height:32px!important}.single-line-field-container{display:flex;justify-content:space-between;align-items:center;padding:28px 16px;border-bottom:1px solid var(--grey-seperators)}.multi-line-field-container{display:flex;justify-content:flex-start;align-items:flex-start;padding:28px 16px;flex-wrap:wrap;border-bottom:1px solid var(--grey-seperators)}.field-title-sm{margin-bottom:8px;cursor:default}.input-field{width:100%;background-color:var(--grey-bg-1);border:1px solid var(--grey-seperators);border-radius:6px}.ip-text{height:44px;padding:8px 12px}.ip-textarea{max-height:94px;padding:8px}input:focus{outline:none}input::placeholder{color:var(--grey-seperators)}textarea:focus{outline:none}.date-picker-container{position:relative;width:140px}.date-picker-container .date-picker{cursor:pointer;height:32px;width:100%;font-size:14px;border-radius:6px;padding:0 12px;border:1px solid var(--grey-seperators);inset:10px auto auto 80px;background-color:var(--text-white)}.date-picker-container .date-picker:hover{background-color:var(--grey-hover)}.date-picker-container .date-picker-icon{position:absolute;top:50%;right:12px;transform:translateY(-50%);cursor:pointer}form .dynamic-field:last-child{border-bottom:none!important}#checkboxes-container{display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap}.radio-checkbox-common{display:flex;justify-content:center;align-items:center;cursor:pointer;margin-right:8px;margin-bottom:8px;background-color:var(--text-white);padding:12px 16px;border:1px solid var(--text-muted);border-radius:8px}.radio-checkbox-common p{color:var(--text-muted);cursor:pointer}.radio-checkbox-common img{margin-right:8px}.checkbox-active{background-color:var(--pmry-500)}.checkbox-active p{color:var(--text-white)}#error-messages-container{margin-top:4px;width:100%;display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap}#error-messages-container p{color:var(--sem-error)}\n"] }]
|
|
639
|
+
}], () => [], { formFields: [{
|
|
640
|
+
type: Input
|
|
641
|
+
}], formValues: [{
|
|
642
|
+
type: Input
|
|
643
|
+
}], activeBtnIconUrl: [{
|
|
644
|
+
type: Input
|
|
645
|
+
}], calendarIconUrl: [{
|
|
646
|
+
type: Input
|
|
647
|
+
}], formUpdated: [{
|
|
648
|
+
type: Output
|
|
649
|
+
}], formValid: [{
|
|
650
|
+
type: Output
|
|
651
|
+
}], formInitialized: [{
|
|
652
|
+
type: Output
|
|
653
|
+
}] }); })();
|
|
654
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DynamicFormComponent, { className: "DynamicFormComponent" }); })();
|
|
655
|
+
export const dynamicFieldValidator = (validators) => {
|
|
656
|
+
return (control) => {
|
|
657
|
+
let value = control.value;
|
|
658
|
+
if (Array.isArray(value)) {
|
|
659
|
+
return null;
|
|
660
|
+
}
|
|
661
|
+
else if (typeof value === 'object') {
|
|
662
|
+
value = value?.value ? value.value : '';
|
|
663
|
+
}
|
|
664
|
+
let errors = null;
|
|
665
|
+
validators.forEach((validator) => {
|
|
666
|
+
let error = null;
|
|
667
|
+
let message = validator.message;
|
|
668
|
+
switch (validator.type) {
|
|
669
|
+
case "Required":
|
|
670
|
+
error = Validators.required(control);
|
|
671
|
+
if (error)
|
|
672
|
+
error = { Required: message };
|
|
673
|
+
break;
|
|
674
|
+
case "MinLength":
|
|
675
|
+
error = Validators.minLength(+validator.value)(control);
|
|
676
|
+
message = message.replace('${0}', error?.minlength.requiredLength);
|
|
677
|
+
if (error)
|
|
678
|
+
error = { MinLength: message };
|
|
679
|
+
break;
|
|
680
|
+
case "MaxLength":
|
|
681
|
+
error = Validators.maxLength(+validator.value)(control);
|
|
682
|
+
message = message.replace('${0}', error?.actualLength);
|
|
683
|
+
if (error)
|
|
684
|
+
error = { MaxLength: message };
|
|
685
|
+
break;
|
|
686
|
+
case "Email":
|
|
687
|
+
error = Validators.email(control);
|
|
688
|
+
if (error)
|
|
689
|
+
error = { Email: message };
|
|
690
|
+
break;
|
|
691
|
+
case "Custom":
|
|
692
|
+
error = Validators.pattern(`${validator.value}`)(control);
|
|
693
|
+
if (error)
|
|
694
|
+
error = { Custom: message };
|
|
695
|
+
break;
|
|
696
|
+
default:
|
|
697
|
+
break;
|
|
698
|
+
}
|
|
699
|
+
if (error)
|
|
700
|
+
errors = { ...errors, ...error };
|
|
701
|
+
});
|
|
702
|
+
return errors;
|
|
703
|
+
};
|
|
704
|
+
};
|
|
705
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZHluYW1pYy1mb3JtL2R5bmFtaWMtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBZ0IsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEcsT0FBTyxFQUFtQixnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBaUMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEosT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7SUNRakIsNkJBQXdGO0lBQ3RGLDJCQU1lOzs7Ozs7Ozs7SUFMYixjQUFpQztJQUNqQyxBQURBLGtEQUFpQyxnUUFJL0I7OztJQVBSLDhCQUF5TjtJQUN2Tiw2R0FBd0Y7SUFTMUYsaUJBQU07OztJQVRzQyxjQUE0QztJQUE1QyxxRUFBNEM7OztJQVgxRixnQ0FBa0g7SUFDOUcsMkJBUWE7SUFDZixvRkFBeU47Ozs7Ozs7SUFWN00sb0NBQW1CO0lBRTdCLGNBQWlDO0lBQ2pDLEFBREEsa0RBQWlDLGlJQUsvQjtJQUcyQixjQUF3TDtJQUF4TCxrYUFBd0w7OztJQThCek4sMkJBSWU7Ozs7O0lBRmIsQUFEQSx5REFBdUMsMkVBQ2tCOzs7O0lBWDNELEFBRkYsK0JBQ2dILFlBQ2pGO0lBQzNCLFlBQ0Y7SUFBQSxpQkFBSTtJQUNKLDBCQUFvQztJQUNwQyxpQ0FJdUQ7SUFIckQsaVVBQWlCLDhEQUFnRCxLQUFDO0lBRHBFLGlCQUl1RDtJQUN2RCw0R0FH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TUFBTTtZQUNWLENBQUM7WUFDRCxJQUFJLEtBQUs7Z0JBQUUsTUFBTSxHQUFHLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQTtRQUM3QyxDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTnNEeW5hbWljRm9ybSB9IGZyb20gXCIuL2R5bmFtaWMtZm9ybS5uYW1lc3BhY2VcIjtcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVW50eXBlZEZvcm1BcnJheSwgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xuaW1wb3J0IFwibW9tZW50LXRpbWV6b25lXCI7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwibWlzLWR5bmFtaWMtZm9ybVwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2R5bmFtaWMtZm9ybS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vZHluYW1pYy1mb3JtLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogZm9ybUZpZWxkczogIER5bmFtaWMgZmllbGRzIHJlY2lldmVkIGZyb20gdGhlIEFQSSBtZXRhZGF0YSB0byBidWlsZCBhIGR5bmFtaWMgZm9ybVxuICAgKiBmb3JtVmFsdWVzOiAgSG9sZHMgdGhlIHZhbHVlIG9mIHRoZSBkeW5hbWljIGZvcm0gd2l0aCBcImtleVwiIGJlaW5nIGR5bmFtaWMgZmllbGQgXCJ0aXRsZVwiXG4gICAqICAgICAgICAgICAgICBhbmQgdmFsdWUgYmVpbmcgdGhlIHVzZXIgaW5wdXQuXG4gICAqL1xuICBASW5wdXQoKSBmb3JtRmllbGRzOiBBcnJheTxOc0R5bmFtaWNGb3JtLklEeW5hbWljRmllbGQ+ID0gW107XG4gIEBJbnB1dCgpIGZvcm1WYWx1ZXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgLy8gTmVlZCB0byBkZXByZWNhdGUgdGhlc2UgaW5wdXRzIGFuZCB1c2UgY29uc3RhbnRzLlxuICBASW5wdXQoKSBhY3RpdmVCdG5JY29uVXJsID0gXCJcIjtcbiAgQElucHV0KCkgY2FsZW5kYXJJY29uVXJsID0gXCJcIjtcbiAgLyoqXG4gICAqIGR5bmFtaWNGb3JtOiBDb25zdHJ1Y3RlZCB1c2luZyBmb3JtRmllbGRzIGFuZCBmb3JtVmFsdWVzKGluIGNhc2Ugb2YgZWRpdClcbiAgICovXG4gIGR5bmFtaWNGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gIC8qKlxuICAgKiBmb3JtVXBkYXRlZDogRW1pdHMgZm9ybVZhbHVlcyBPYmplY3Qgd2hlbmV2ZXIgdGhlcmUgaXMgYSBjaGFuZ2UgaW4gdGhlIGR5bmFtaWMgZm9ybS5cbiAgICovXG4gIEBPdXRwdXQoKSBmb3JtVXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBba2V5OiBzdHJpbmddOiBhbnkgfT4oKTtcbiAgLyoqXG4gICAqIGZvcm1WYWxpZDogRW1pdHMgYm9vbGVhbiBkZXBlbmRpbmcgb24gdmFsaWRpdHkgb2YgdGhlIGZvcm1cbiAgICovXG4gIEBPdXRwdXQoKSBmb3JtVmFsaWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIC8qKlxuICAgKiBmb3JtSW5pdGlhbGl6ZWQ6IEVtaXRzIGR5bmFtaWMgZm9ybSBBUEkgb24gZm9ybSBpbml0aWxpemF0aW9uXG4gICAqL1xuICBAT3V0cHV0KCkgZm9ybUluaXRpYWxpemVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgZHluYW1pY0Zvcm1BUEk6IE5zRHluYW1pY0Zvcm0uSUR5bmFtaWNGb3JtQVBJO1xuICB2YWx1ZUNoYW5nZXNTdWJzY3JpcHRpb24kOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEJ1aWxkaW5nIHRoZSBmb3JtXG4gICAgdGhpcy5keW5hbWljRm9ybSA9IHRoaXMuZ2VuZXJhdGVEeW5hbWljRm9ybSh0aGlzLmZvcm1GaWVsZHMsIHRoaXMuZm9ybVZhbHVlcyk7XG5cbiAgICAvLyBTdWJzY3JpYmluZyB0byBmb3JtIGNoYW5nZXMgYW5kIGVtaXRpbmcgdmFsdWVzLlxuICAgIHRoaXMudmFsdWVDaGFuZ2VzU3Vic2NyaXB0aW9uJCA9IHRoaXMuZHluYW1pY0Zvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZShmb3JtVmFsdWUgPT4ge1xuICAgICAgdGhpcy5vbkZvcm1WYWx1ZUNoYW5nZXMoKTtcbiAgICB9KTtcblxuICAgIC8vYXBpIHRvIGV4cG9zZSBmdW5jdGlvbnNcbiAgICB0aGlzLmR5bmFtaWNGb3JtQVBJID0ge1xuICAgICAgZGVmYXVsdEZvcm1WYWx1ZXM6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVEeW5hbWljRmllbGRzVmFsdWVPYmplY3QodGhpcy5keW5hbWljRm9ybS52YWx1ZS5keW5hbWljRmllbGRzKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMuZm9ybUluaXRpYWxpemVkLmVtaXQodGhpcy5keW5hbWljRm9ybUFQSSk7XG4gICAgdGhpcy5mb3JtVmFsaWQuZW1pdCh0aGlzLmR5bmFtaWNGb3JtLnZhbGlkKTtcbiAgfVxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlc1N1YnNjcmlwdGlvbiQ/LnVuc3Vic2NyaWJlKCk7XG4gIH1cbiAgb25Gb3JtVmFsdWVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIGxldCBmb3JtVmFsdWVzID0gdGhpcy5nZW5lcmF0ZUR5bmFtaWNGaWVsZHNWYWx1ZU9iamVjdCh0aGlzLmR5bmFtaWNGb3JtLnZhbHVlLmR5bmFtaWNGaWVsZHMpO1xuICAgIHRoaXMuZm9ybVZhbGlkLmVtaXQodGhpcy5keW5hbWljRm9ybS52YWxpZCk7XG4gICAgdGhpcy5mb3JtVXBkYXRlZC5lbWl0KGZvcm1WYWx1ZXMpO1xuICAgIGNvbnNvbGUubG9nKGZvcm1WYWx1ZXMpXG4gIH1cbiAgZ2VuZXJhdGVEeW5hbWljRmllbGRzVmFsdWVPYmplY3QoZm9ybVZhbHVlczogQXJyYXk8YW55Pik6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIGxldCBkeW5hbWljRmllbGRzVmFsdWUgPSB7fTtcbiAgICBmb3JtVmFsdWVzLmZvckVhY2goKGZpZWxkVmFsdWUsIGluZGV4KSA9PiB7XG4gICAgICBsZXQgZm9ybWF0dGVkVmFsdWUgPSB0aGlzLm1hcEZvcm1GaWVsZFRvRm9ybVZhbHVlKHRoaXMuZm9ybUZpZWxkc1tpbmRleF0sIGZpZWxkVmFsdWUudmFsdWUpO1xuICAgICAgaWYgKGZpZWxkVmFsdWUuc3ViRmllbGRzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGxldCBmb3JtYXR0ZWRTdWJGaWVsZHNWYWx1ZXMgPSB7fVxuICAgICAgICBmaWVsZFZhbHVlLnN1YkZpZWxkcy5mb3JFYWNoKChzdWJGaWVsZFZhbHVlLCBzdWJJbmRleCkgPT4ge1xuICAgICAgICAgIGxldCBzdWJGb3JtRmllbGQgPSB0aGlzLmZvcm1GaWVsZHNbaW5kZXhdLnN1YkZpZWxkc1tzdWJJbmRleF1cbiAgICAgICAgICBmb3JtYXR0ZWRTdWJGaWVsZHNWYWx1ZXNbc3ViRm9ybUZpZWxkLmNvbmZpZ05hbWVdID0gdGhpcy5tYXBGb3JtRmllbGRUb0Zvcm1WYWx1ZShzdWJGb3JtRmllbGQsIHN1YkZpZWxkVmFsdWUpXG4gICAgICAgIH0pXG4gICAgICAgIGR5bmFtaWNGaWVsZHNWYWx1ZVt0aGlzLmZvcm1GaWVsZHNbaW5kZXhdLmNvbmZpZ05hbWVdID0ge1xuICAgICAgICAgIHZhbHVlOiBmb3JtYXR0ZWRWYWx1ZSxcbiAgICAgICAgICBzdWJGaWVsZHM6IGZvcm1hdHRlZFN1YkZpZWxkc1ZhbHVlc1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgZHluYW1pY0ZpZWxkc1ZhbHVlW3RoaXMuZm9ybUZpZWxkc1tpbmRleF0uY29uZmlnTmFtZV0gPSBmb3JtYXR0ZWRWYWx1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZHluYW1pY0ZpZWxkc1ZhbHVlO1xuICB9XG4gIGdlbmVyYXRlRHluYW1pY0Zvcm0oXG4gICAgZm9ybUZpZWxkczogQXJyYXk8TnNEeW5hbWljRm9ybS5JRHluYW1pY0ZpZWxkPixcbiAgICBmb3JtVmFsdWVzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9XG4gICk6IFVudHlwZWRGb3JtR3JvdXAge1xuICAgIGxldCBmb3JtQXJyYXkgPSBuZXcgVW50eXBlZEZvcm1BcnJheShbXSlcblxuICAgIGZvciAobGV0IGZpZWxkIG9mIGZvcm1GaWVsZHMpIHtcbiAgICAgIGxldCBmaWVsZFZhbHVlID0gZm9ybVZhbHVlc1tmaWVsZC5jb25maWdOYW1lXT8udmFsdWUgPyBmb3JtVmFsdWVzW2ZpZWxkLmNvbmZpZ05hbWVdLnZhbHVlIDogZm9ybVZhbHVlc1tmaWVsZC5jb25maWdOYW1lXVxuICAgICAgbGV0IGZpZWxkQ29udHJvbCA9IHRoaXMubWFwRm9ybVZhbHVlVG9Gb3JtRmllbGQoZmllbGQsIGZpZWxkVmFsdWUpO1xuICAgICAgbGV0IHN1YkZpZWxkc0NvbnRyb2xzID0gdGhpcy5nZW5lcmF0ZVN1YkR5bmFtaWNGaWVsZHMoZm9ybVZhbHVlcywgZmllbGQsIGZpZWxkQ29udHJvbC52YWx1ZSk7XG4gICAgICBmb3JtQXJyYXkucHVzaChuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgICAgIHZhbHVlOiBmaWVsZENvbnRyb2wsXG4gICAgICAgIHN1YkZpZWxkczogc3ViRmllbGRzQ29udHJvbHNcbiAgICAgIH0pKVxuICAgIH0gIFxuICAgIHJldHVybiBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgICBkeW5hbWljRmllbGRzOiBmb3JtQXJyYXlcbiAgICB9KVxuICB9XG4gIFxuICBnZXREeW5hbWljRmllbGRzQ29udHJvbHMoKTogVW50eXBlZEZvcm1BcnJheSB7XG4gICAgcmV0dXJuIHRoaXMuZHluYW1pY0Zvcm0uZ2V0KFwiZHluYW1pY0ZpZWxkc1wiKSBhcyBVbnR5cGVkRm9ybUFycmF5O1xuICB9XG4gIHVwZGF0ZVN1YkR5bmFtaWNGaWVsZHMoXG4gICAgZmllbGQ6IE5zRHluYW1pY0Zvcm0uSUR5bmFtaWNGaWVsZCxcbiAgICBmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAsXG4gICAgdmFsdWU6IGFueVxuICApOiB2b2lkIHtcbiAgICBpZiAoZmllbGQuc3ViRmllbGRzPy5sZW5ndGggPiAwKSB7XG4gICAgICBsZXQgc3ViRmllbGRzQ29udHJvbHMgPSB0aGlzLmdlbmVyYXRlU3ViRHluYW1pY0ZpZWxkcyh0aGlzLmZvcm1WYWx1ZXMsIGZpZWxkLCB2YWx1ZSk7XG4gICAgICBmb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnc3ViRmllbGRzJylcbiAgICAgIGZvcm1Hcm91cC5hZGRDb250cm9sKCdzdWJGaWVsZHMnLCBzdWJGaWVsZHNDb250cm9scylcbiAgICB9XG4gIH1cbiAgdXBkYXRlU2VsZWN0ZWRWYWx1ZUZvclNpbmdsZVNlbGVjdChcbiAgICBmaWVsZDogTnNEeW5hbWljRm9ybS5JRHluYW1pY0ZpZWxkLFxuICAgIGNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCxcbiAgICBmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAsXG4gICAgdmFsdWU6IGFueVxuICApOiB2b2lkIHtcbiAgICBpZiAoY29udHJvbC52YWx1ZT8udmFsdWUgIT09IHZhbHVlLnZhbHVlKSB7XG4gICAgICBjb250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gICAgZWxzZSBjb250cm9sLnNldFZhbHVlKCcnKTtcbiAgICB0aGlzLnVwZGF0ZVN1YkR5bmFtaWNGaWVsZHMoZmllbGQsIGZvcm1Hcm91cCwgdmFsdWUpO1xuICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICB9XG4gIHVwZGF0ZVNlbGVjdGVkVmFsdWVGb3JNdWx0aVNlbGVjdChcbiAgICBmaWVsZDogTnNEeW5hbWljRm9ybS5JRHluYW1pY0ZpZWxkLFxuICAgIGNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCxcbiAgICBmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAsXG4gICAgdmFsdWVzOiBBcnJheTxhbnk+XG4gICk6IHZvaWQge1xuICAgIGxldCBzZWxlY3RlZFZhbHVlczogQXJyYXk8eyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogYW55IH0+ID0gY29udHJvbC52YWx1ZTtcbiAgICBmb3IgKGxldCB2YWx1ZSBvZiB2YWx1ZXMpIHtcbiAgICAgIGxldCBpdGVtSW5kZXggPSBzZWxlY3RlZFZhbHVlcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmxhYmVsID09PSB2YWx1ZS5sYWJlbCk7XG4gICAgICBpZiAoaXRlbUluZGV4ID4gLTEpIHtcbiAgICAgICAgc2VsZWN0ZWRWYWx1ZXMuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZWxlY3RlZFZhbHVlcy5wdXNoKHsgLi4udmFsdWUgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnRyb2wuc2V0VmFsdWUoc2VsZWN0ZWRWYWx1ZXMpO1xuICAgIHRoaXMudXBkYXRlU3ViRHluYW1pY0ZpZWxkcyhmaWVsZCwgZm9ybUdyb3VwLCB2YWx1ZXMpO1xuICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICB9XG4gIGlzQ2hlY2tCb3hTZWxlY3RlZCh2YWx1ZTogc3RyaW5nLCBzZWxlY3RlZFZhbHVlczogQXJyYXk8eyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNlbGVjdGVkVmFsdWVzLmZpbmRJbmRleChpdGVtID0+IGl0ZW0ubGFiZWwgPT09IHZhbHVlKSA+IC0xO1xuICB9XG5cbiAgZmluZFNlbGVjdGVkSW5kZXgoc3ViZmllbGRzLCB2YWx1ZSkge1xuICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSBzdWJmaWVsZHMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5wYXJlbnRDb25maWdWYWx1ZSA9PT0gdmFsdWUpO1xuICAgIHJldHVybiBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IHNlbGVjdGVkSW5kZXggOiAwO1xuICB9XG5cbiAgbWF0Y2hQYXJlbnRDb25maWcoc3ViZmllbGRzLCB2YWx1ZSkge1xuICAgIGlmICghc3ViZmllbGRzIHx8IHN1YmZpZWxkcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHN1YmZpZWxkcy5zb21lKGl0ZW0gPT4gaXRlbS5wYXJlbnRDb25maWdWYWx1ZSA9PT0gdmFsdWUpO1xuICB9XG5cbiAgZ2VuZXJhdGVTdWJEeW5hbWljRmllbGRzKFxuICAgIGZvcm1WYWx1ZXM6IGFueSxcbiAgICBwYXJlbnRGaWVsZDogTnNEeW5hbWljRm9ybS5JRHluYW1pY0ZpZWxkLFxuICAgIHBhcmVudFZhbHVlOiBBcnJheTx7IGxhYmVsOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfT4gfCB7bGFiZWw6IHN0cmluZywgdmFsdWU6IHN0cmluZyB9IHwgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhblxuICApOiBVbnR5cGVkRm9ybUFycmF5IHtcbiAgICBsZXQgY29udHJvbHMgPSBuZXcgVW50eXBlZEZvcm1BcnJheShbXSlcbiAgICBsZXQgc3ViRmllbGRzID0gcGFyZW50RmllbGQuc3ViRmllbGRzXG4gICAgbGV0IHN1YkZpZWxkc1ZhbHVlcyA9IGZvcm1WYWx1ZXNbcGFyZW50RmllbGQuY29uZmlnTmFtZV0/LnN1YkZpZWxkcyA/IGZvcm1WYWx1ZXNbcGFyZW50RmllbGQuY29uZmlnTmFtZV0uc3ViRmllbGRzIDoge31cbiAgICBpZighc3ViRmllbGRzKSByZXR1cm4gY29udHJvbHM7XG4gICAgaWYgKHBhcmVudEZpZWxkLmZpZWxkVHlwZSA9PT0gJ3NpbmdsZVNlbGVjdCcpIHtcbiAgICAgIHN1YkZpZWxkcyA9IHN1YkZpZWxkcy5maWx0ZXIoKHN1YkZpZWxkKSA9PiBzdWJGaWVsZC5wYXJlbnRDb25maWdWYWx1ZSA9PT0gKDx7bGFiZWw6IHN0cmluZywgdmFsdWU6IHN0cmluZyB9PnBhcmVudFZhbHVlKT8udmFsdWUpO1xuICAgIH1cbiAgICBlbHNlIGlmIChwYXJlbnRGaWVsZC5maWVsZFR5cGUgPT09ICdtdWx0aVNlbGVjdCcpIHtcbiAgICAgIGxldCBwYXJlbnRWYWx1ZXMgPSBuZXcgU2V0KCg8QXJyYXk8eyBsYWJlbDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIH0+PnBhcmVudFZhbHVlKS5tYXAoKHZhbHVlKSA9PiB2YWx1ZS52YWx1ZSkpO1xuICAgICAgc3ViRmllbGRzID0gc3ViRmllbGRzLmZpbHRlcigoc3ViRmllbGQpID0+IHBhcmVudFZhbHVlcy5oYXMoc3ViRmllbGQucGFyZW50Q29uZmlnVmFsdWUpKTtcbiAgICB9XG5cbiAgICBpZiAoc3ViRmllbGRzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAobGV0IHN1YkZpZWxkIG9mIHN1YkZpZWxkcykge1xuICAgICAgICAgIGNvbnRyb2xzLnB1c2godGhpcy5tYXBGb3JtVmFsdWVUb0Zvcm1GaWVsZChzdWJGaWVsZCwgc3ViRmllbGRzVmFsdWVzW3N1YkZpZWxkLmNvbmZpZ05hbWVdKSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIHJldHVybiBjb250cm9scztcbiAgfVxuICBtYXBGb3JtVmFsdWVUb0Zvcm1GaWVsZChmb3JtRmllbGQ6IE5zRHluYW1pY0Zvcm0uSUR5bmFtaWNGaWVsZCwgZm9ybVZhbHVlOiBhbnkpOiBhbnkge1xuICAgIGxldCB2YWxpZGF0b3JzID0gZm9ybUZpZWxkLnZhbGlkYXRvcnMgPyBbZHluYW1pY0ZpZWxkVmFsaWRhdG9yKGZvcm1GaWVsZC52YWxpZGF0b3JzKV06IFtdXG4gICAgbGV0IGNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKG51bGwsIHZhbGlkYXRvcnMpO1xuXG4gICAgaWYgKGZvcm1GaWVsZC5maWVsZFR5cGUgPT09IFwiaW5wdXRcIikge1xuICAgICAgaWYgKGZvcm1GaWVsZC5maWVsZElucHV0VHlwZSA9PT0gXCJ0ZXh0XCIgfHwgZm9ybUZpZWxkLmZpZWxkSW5wdXRUeXBlID09PSBcInRleHRhcmVhXCIpIGNvbnRyb2wuc2V0VmFsdWUoZm9ybVZhbHVlID8gZm9ybVZhbHVlIDogXCJcIik7XG4gICAgICBlbHNlIGlmIChmb3JtRmllbGQuZmllbGRJbnB1dFR5cGUgPT09IFwibnVtYmVyXCIpIGNvbnRyb2wuc2V0VmFsdWUoZm9ybVZhbHVlID8gZm9ybVZhbHVlIDogMCk7XG4gICAgICBlbHNlIGlmIChmb3JtRmllbGQuZmllbGRJbnB1dFR5cGUgPT09IFwiZGF0ZVwiKSB7XG4gICAgICAgIGlmIChmb3JtVmFsdWUgJiYgdHlwZW9mIGZvcm1WYWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUobW9tZW50KGZvcm1WYWx1ZSkudHooZm9ybUZpZWxkLmZpZWxkQ29uZmlnLnRpbWV6b25lKS5mb3JtYXQoZm9ybUZpZWxkLmZpZWxkQ29uZmlnLmZvcm1hdCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUobW9tZW50KCkudHooZm9ybUZpZWxkLmZpZWxkQ29uZmlnLnRpbWV6b25lKS5mb3JtYXQoZm9ybUZpZWxkLmZpZWxkQ29uZmlnLmZvcm1hdCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChmb3JtRmllbGQuZmllbGRUeXBlID09PSBcInNpbmdsZVNlbGVjdFwiKSB7XG4gICAgICBjb25zdCBmaW5kU2VsZWN0ZWRWYWx1ZSA9ICgpID0+IHtcbiAgICAgICAgbGV0IGluZGV4ID0gZm9ybUZpZWxkLml0ZW1zTGlzdC5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLnZhbHVlID09PSBmb3JtVmFsdWUpXG4gICAgICAgIHJldHVybiBpbmRleCA+PSAwID8gZm9ybUZpZWxkLml0ZW1zTGlzdFtpbmRleF06IFwiXCI7XG4gICAgICB9XG4gICAgICBpZiAoZm9ybUZpZWxkLmZpZWxkSW5wdXRUeXBlID09PSBcImRyb3Bkb3duXCIpIHtcbiAgICAgICAgaWYgKCFmb3JtVmFsdWUpIGNvbnRyb2wuc2V0VmFsdWUoZm9ybUZpZWxkLml0ZW1zTGlzdFswXSk7XG4gICAgICAgIGVsc2UgY29udHJvbC5zZXRWYWx1ZShmaW5kU2VsZWN0ZWRWYWx1ZSgpKVxuICAgICAgfVxuICAgICAgZWxzZSBpZiAoZm9ybUZpZWxkLmZpZWxkSW5wdXRUeXBlID09PSBcInJhZGlvXCIpIHtcbiAgICAgICAgY29udHJvbC5zZXRWYWx1ZShmaW5kU2VsZWN0ZWRWYWx1ZSgpKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZm9ybUZpZWxkLmZpZWxkVHlwZSA9PT0gXCJtdWx0aVNlbGVjdFwiKSB7XG4gICAgICBpZiAoZm9ybVZhbHVlICYmIEFycmF5LmlzQXJyYXkoZm9ybVZhbHVlKSkge1xuICAgICAgICBsZXQgc2VsZWN0ZWRWYWx1ZXMgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgdmFsdWUgb2YgZm9ybVZhbHVlKSB7XG4gICAgICAgICAgbGV0IGluZGV4ID0gZm9ybUZpZWxkLml0ZW1zTGlzdC5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLnZhbHVlID09PSB2YWx1ZSk7XG4gICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHNlbGVjdGVkVmFsdWVzLnB1c2goeyAuLi5mb3JtRmllbGQuaXRlbXNMaXN0W2luZGV4XSB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb250cm9sLnNldFZhbHVlKHNlbGVjdGVkVmFsdWVzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRyb2wuc2V0VmFsdWUoW10pO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZm9ybUZpZWxkLmZpZWxkVHlwZSA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgIGNvbnRyb2wuc2V0VmFsdWUoISFmb3JtVmFsdWUpO1xuICAgIH0gZWxzZSBjb250cm9sLnNldFZhbHVlKG51bGwpO1xuICAgIHJldHVybiBjb250cm9sO1xuICB9XG4gIG1hcEZvcm1GaWVsZFRvRm9ybVZhbHVlKGZvcm1GaWVsZDogTnNEeW5hbWljRm9ybS5JRHluYW1pY0ZpZWxkLCBmb3JtVmFsdWU6IGFueSk6IGFueSB7XG4gICAgaWYgKGZvcm1GaWVsZC5maWVsZFR5cGUgPT09IFwiaW5wdXRcIikge1xuICAgICAgaWYgKGZvcm1GaWVsZC5maWVsZElucHV0VHlwZSA9PT0gXCJ0ZXh0XCIgfHwgZm9ybUZpZWxkLmZpZWxkSW5wdXRUeXBlID09PSBcInRleHRhcmVhXCIpIHJldHVybiBmb3JtVmFsdWU7XG4gICAgICBlbHNlIGlmIChmb3JtRmllbGQuZmllbGRJbnB1dFR5cGUgPT09IFwibnVtYmVyXCIpIHJldHVybiArZm9ybVZhbHVlO1xuICAgICAgZWxzZSBpZiAoZm9ybUZpZWxkLmZpZWxkSW5wdXRUeXBlID09PSBcImRhdGVcIikge1xuICAgICAgICByZXR1cm4gbW9tZW50LnR6KGZvcm1WYWx1ZSwgZm9ybUZpZWxkLmZpZWxkQ29uZmlnLmZvcm1hdCwgZm9ybUZpZWxkLmZpZWxkQ29uZmlnLnRpbWV6b25lKS52YWx1ZU9mKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChmb3JtRmllbGQuZmllbGRUeXBlID09PSBcInNpbmdsZVNlbGVjdFwiKSB7XG4gICAgICByZXR1cm4gZm9ybVZhbHVlPy52YWx1ZSA/PyAnJztcbiAgICB9IGVsc2UgaWYgKGZvcm1GaWVsZC5maWVsZFR5cGUgPT09IFwibXVsdGlTZWxlY3RcIikge1xuICAgICAgcmV0dXJuIGZvcm1WYWx1ZT8ubWFwKGl0ZW0gPT4gaXRlbS52YWx1ZSk7XG4gICAgfSBlbHNlIGlmIChmb3JtRmllbGQuZmllbGRUeXBlID09PSBcImJvb2xlYW5cIikge1xuICAgICAgcmV0dXJuIGZvcm1WYWx1ZTtcbiAgICB9IGVsc2UgcmV0dXJuIGZvcm1WYWx1ZTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZHluYW1pY0ZpZWxkVmFsaWRhdG9yID0gKHZhbGlkYXRvcnM6IEFycmF5PE5zRHluYW1pY0Zvcm0uSUR5bmFtaWNGaWVsZFZhbGlkYXRvcj4pOiBWYWxpZGF0b3JGbiA9PiB7XG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgIGxldCB2YWx1ZSA9IGNvbnRyb2wudmFsdWVcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlPy52YWx1ZSA/IHZhbHVlLnZhbHVlIDogJydcbiAgICB9XG4gICAgbGV0IGVycm9ycyA9IG51bGxcblxuICAgIHZhbGlkYXRvcnMuZm9yRWFjaCgodmFsaWRhdG9yKSA9PiB7XG4gICAgICBsZXQgZXJyb3IgPSBudWxsXG4gICAgICBsZXQgbWVzc2FnZSA9IHZhbGlkYXRvci5tZXNzYWdlXG4gICAgICBzd2l0Y2ggKHZhbGlkYXRvci50eXBlKSB7XG4gICAgICAgIGNhc2UgXCJSZXF1aXJlZFwiOlxuICAgICAgICAgIGVycm9yID0gVmFsaWRhdG9ycy5yZXF1aXJlZChjb250cm9sKVxuICAgICAgICAgIGlmKGVycm9yKSBlcnJvciA9IHtSZXF1aXJlZDogbWVzc2FnZX1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIk1pbkxlbmd0aFwiOlxuICAgICAgICAgIGVycm9yID0gVmFsaWRhdG9ycy5taW5MZW5ndGgoK3ZhbGlkYXRvci52YWx1ZSkoY29udHJvbClcbiAgICAgICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKCckezB9JywgZXJyb3I/Lm1pbmxlbmd0aC5yZXF1aXJlZExlbmd0aClcbiAgICAgICAgICBpZihlcnJvcikgZXJyb3IgPSB7IE1pbkxlbmd0aDogbWVzc2FnZSB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJNYXhMZW5ndGhcIjpcbiAgICAgICAgICBlcnJvciA9IFZhbGlkYXRvcnMubWF4TGVuZ3RoKCt2YWxpZGF0b3IudmFsdWUpKGNvbnRyb2wpXG4gICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSgnJHswfScsIGVycm9yPy5hY3R1YWxMZW5ndGgpXG4gICAgICAgICAgaWYoZXJyb3IpIGVycm9yID0geyBNYXhMZW5ndGg6IG1lc3NhZ2UgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiRW1haWxcIjpcbiAgICAgICAgICBlcnJvciA9IFZhbGlkYXRvcnMuZW1haWwoY29udHJvbClcbiAgICAgICAgICBpZihlcnJvcikgZXJyb3IgPSB7RW1haWw6IG1lc3NhZ2V9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJDdXN0b21cIjpcbiAgICAgICAgICBlcnJvciA9IFZhbGlkYXRvcnMucGF0dGVybihgJHt2YWxpZGF0b3IudmFsdWV9YCkoY29udHJvbClcbiAgICAgICAgICBpZihlcnJvcikgZXJyb3IgPSB7Q3VzdG9tOiBtZXNzYWdlfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKGVycm9yKSBlcnJvcnMgPSB7IC4uLmVycm9ycywgLi4uZXJyb3IgfVxuICAgIH0pXG4gICAgcmV0dXJuIGVycm9yc1xuICB9XG59IiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJkeW5hbWljRm9ybVwiPlxuICA8bmctY29udGFpbmVyIGZvcm1BcnJheU5hbWU9XCJkeW5hbWljRmllbGRzXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwTmFtZV09XCJpXCIgKm5nRm9yPVwibGV0IGZpZWxkQ29udHJvbCBvZiBnZXREeW5hbWljRmllbGRzQ29udHJvbHMoKS5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImR5bmFtaWNGaWVsZFwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgJGltcGxpY2l0OiBmb3JtRmllbGRzW2ldLFxuICAgICAgICAgIGZvcm1Hcm91cDogZmllbGRDb250cm9sLFxuICAgICAgICAgIGNvbnRyb2w6IGZpZWxkQ29udHJvbC5jb250cm9scy52YWx1ZVxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPGRpdiBjbGFzcz1cInN1Yi1keW5hbWljLWZvcm1cIiAqbmdJZj1cImZpZWxkQ29udHJvbC52YWx1ZSAmJiAoISFmb3JtRmllbGRzW2ldPy5zdWJGaWVsZHMgJiYgZm9ybUZpZWxkc1tpXT8uc3ViRmllbGRzPy5sZW5ndGggPiAwICYmIG1hdGNoUGFyZW50Q29uZmlnKGZvcm1GaWVsZHNbaV0/LnN1YkZpZWxkcywgZmllbGRDb250cm9sLmNvbnRyb2xzLnZhbHVlLnZhbHVlLnZhbHVlKSlcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc3ViRmllbGRDb250cm9sIG9mIGZpZWxkQ29udHJvbC5jb250cm9scy5zdWJGaWVsZHMuY29udHJvbHM7XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZHluYW1pY0ZpZWxkXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICRpbXBsaWNpdDogZm9ybUZpZWxkc1tpXS5zdWJGaWVsZHNbZmluZFNlbGVjdGVkSW5kZXgoZm9ybUZpZWxkc1tpXT8uc3ViRmllbGRzLCBmaWVsZENvbnRyb2wuY29udHJvbHMudmFsdWUudmFsdWUudmFsdWUpXSxcbiAgICAgICAgICAgICAgY29udHJvbDogc3ViRmllbGRDb250cm9sXG4gICAgICAgICAgICB9XCI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9mb3JtPlxuXG5cbjxuZy10ZW1wbGF0ZSAjZHluYW1pY0ZpZWxkIGxldC1maWVsZCBsZXQtY29udHJvbD1cImNvbnRyb2xcIiBsZXQtZm9ybWdyb3VwPVwiZm9ybUdyb3VwXCI+XG5cbiAgPCEtLSBmaWVsZFR5cGU6ICdpbnB1dCcgZmllbGRJbnB1dFR5cGU6ICd0ZXh0JyB8ICdudW1iZXInIC0tPlxuICA8ZGl2IGNsYXNzPVwiZHluYW1pYy1maWVsZCBtdWx0aS1saW5lLWZpZWxkLWNvbnRhaW5lclwiXG4gICAgKm5nSWY9XCJmaWVsZC5maWVsZFR5cGUgPT09ICdpbnB1dCcgJiYgKGZpZWxkLmZpZWxkSW5wdXRUeXBlID09PSAndGV4dCcgfHwgZmllbGQuZmllbGRJbnB1dFR5cGUgPT09ICdudW1iZXInKVwiPlxuICAgIDxwIGNsYXNzPVwiaDcgZmllbGQtdGl0bGUtc21cIj5cbiAgICAgIHt7IGZpZWxkLnRpdGxlIH19XG4gICAgPC9wPlxuICAgIDxkaXYgc3R5bGU9XCJmbGV4LWJhc2lzOiAxMDAlXCI+PC9kaXY+XG4gICAgPGlucHV0IGNsYXNzPVwiaW5wdXQtZmllbGQgaXAtdGV4dFwiIFt0eXBlXT1cImZpZWxkLmZpZWxkSW5wdXRUeXBlXCIgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlU3ViRHluYW1pY0ZpZWxkcyhmaWVsZCwgZm9ybWdyb3VwLCAkZXZlbnQpXCIgXG4gICAgICBbbmdTdHlsZV09XCJ7J2JvcmRlcic6IGNvbnRyb2wudG91Y2hlZCAmJiBjb250cm9sLmVycm9ycyA/ICcxcHggc29saWQgI0IwMDAyMCc6ICcnfVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJUZXh0ID8gZmllbGQucGxhY2Vob2xkZXJUZXh0IDogJ0lucHV0IFRleHQnXCIgXG4gICAgICBbbWluXT1cImZpZWxkLmZpZWxkSW5wdXRUeXBlID09PSAnbnVtYmVyJyA/IDAgOiAnJyBcIi8+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRyb2wudG91Y2hlZCAmJiBjb250cm9sLmVycm9yc1wiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkeW5hbWljRmllbGRFcnJvcnNcIiBcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogY29udHJvbC5lcnJvcnMgfVwiXG4gICAgPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8IS0tIGZpZWxkVHlwZTogJ2lucHV0JyBmaWVsZElucHV0VHlwZTogJ3RleHRhcmVhJyAtLT5cbiAgPGRpdiBjbGFzcz1cImR5bmFtaWMtZmllbGQgbXVsdGktbGluZS1maWVsZC1jb250YWluZXJcIlxuICAgICpuZ0lmPVwiZmllbGQuZmllbGRUeXBlID09PSAnaW5wdXQnICYmIGZpZWxkLmZpZWxkSW5wdXRUeXBlID09PSAndGV4dGFyZWEnXCI+XG4gICAgPHAgY2xhc3M9XCJoNyBmaWVsZC10aXRsZS1zbVwiPlxuICAgICAge3sgZmllbGQudGl0bGUgfX1cbiAgICA8L3A+XG4gICAgPGRpdiBzdHlsZT1cImZsZXgtYmFzaXM6IDEwMCVcIj48L2Rpdj5cbiAgICA8dGV4dGFyZWEgY2xhc3M9XCJpbnB1dC1maWVsZCBpcC10ZXh0YXJlYVwiIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIFtuZ1N0eWxlXT1cInsnYm9yZGVyJzogY29udHJvbC50b3VjaGVkICYmIGNvbnRyb2wuZXJyb3JzID8gJzFweCBzb2xpZCAjQjAwMDIwJzogJyd9XCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclRleHQgPyBmaWVsZC5wbGFjZWhvbGRlclRleHQgOiAnSW5wdXQgVGV4dCdcIiBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZVN1YkR5bmFtaWNGaWVsZHMoZmllbGQsIGZvcm1ncm91cCwgJGV2ZW50KVwiPjwvdGV4dGFyZWE+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udHJvbC50b3VjaGVkICYmIGNvbnRyb2wuZXJyb3JzXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZHluYW1pY0ZpZWxkRXJyb3JzXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBjb250cm9sLmVycm9ycyB9XCI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBmaWVsZFR5cGU6ICdpbnB1dCcgZmllbGRJbnB1dFR5cGU6ICdkYXRlJyAtLT5cbiAgPGRpdiBjbGFzcz1cImR5bmFtaWMtZmllbGQgc2luZ2xlLWxpbmUtZmllbGQtY29udGFpbmVyXCJcbiAgICAqbmdJZj1cImZpZWxkLmZpZWxkVHlwZSA9PT0gJ2lucHV0JyAmJiBmaWVsZC5maWVsZElucHV0VHlwZSA9PT0gJ2RhdGUnXCI+XG4gICAgPHAgY2xhc3M9XCJoNlwiPlxuICAgICAge3sgZmllbGQudGl0bGUgfX1cbiAgICA8L3A+XG4gICAgPGRpdiBjbGFzcz1cImRhdGUtcGlja2VyLWNvbnRhaW5lclwiPlxuICAgICAgPGlucHV0IGNsYXNzPVwiZGF0ZS1waWNrZXJcIiByZWFkb25seSBtaXNUekRwIFtkcENvbmZpZ109XCJmaWVsZC5maWVsZENvbmZpZ1wiXG4gICAgICAgIChkYXRlQ2hhbmdlKT1cImNvbnRyb2wuc2V0VmFsdWUoJGV2ZW50KVwiIFtzZWxlY3RlZERhdGVdPVwiY29udHJvbC52YWx1ZVwiIFtvZmZzZXRZXT1cIjBcIlxuICAgICAgICBbdmFsdWVdPVwiY29udHJvbC52YWx1ZVwiICNkcCAvPlxuICAgICAgPGltZyBhbHQ9XCJkYXRhLXBpY2tlclwiICpuZ0lmPVwiY2FsZW5kYXJJY29uVXJsXCIgY2xhc3M9XCJkYXRlLXBpY2tlci1pY29uXCIgW3NyY109XCJjYWxlbmRhckljb25VcmxcIlxuICAgICAgICAoY2xpY2spPVwiZHAuY2xpY2soKVwiIC8+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRyb2wudG91Y2hlZCAmJiBjb250cm9sLmVycm9yc1wiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImR5bmFtaWNGaWVsZEVycm9yc1wiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGNvbnRyb2wuZXJyb3JzIH1cIj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBmaWVsZFR5cGU6ICdib29sZWFuJyBmaWVsZElucHV0VHlwZTogJ3RvZ2dsZScgLS0+XG4gIDxkaXYgY2xhc3M9XCJkeW5hbWljLWZpZWxkIHNpbmdsZS1saW5lLWZpZWxkLWNvbnRhaW5lclwiXG4gICAgKm5nSWY9XCJmaWVsZC5maWVsZFR5cGUgPT09ICdib29sZWFuJyAmJiBmaWVsZC5maWVsZElucHV0VHlwZSA9PT0gJ3RvZ2dsZSdcIj5cbiAgICA8cCBjbGFzcz1cImg2XCI+XG4gICAgICB7eyBmaWVsZC50aXRsZSB9fVxuICAgIDwvcD5cbiAgICA8bWlzLXN3aXRjaCBbY29udHJvbF09XCJjb250cm9sXCIgKHZhbHVlQ2hhbmdlZCk9XCJ1cGRhdGVTdWJEeW5hbWljRmllbGRzKGZpZWxkLCBmb3JtZ3JvdXAsICRldmVudClcIj48L21pcy1zd2l0Y2g+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRyb2wudG91Y2hlZCAmJiBjb250cm9sLmVycm9yc1wiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImR5bmFtaWNGaWVsZEVycm9yc1wiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGNvbnRyb2wuZXJyb3JzIH1cIj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBmaWVsZFR5cGU6ICdzaW5nbGVTZWxlY3QnIGZpZWxkSW5wdXRUeXBlOiAnZHJvcGRvd24nIC0tPlxuICA8ZGl2IGNsYXNzPVwiZHluYW1pYy1maWVsZCBzaW5nbGUtbGluZS1maWVsZC1jb250YWluZXJcIlxuICAgICpuZ0lmPVwiZmllbGQuZmllbGRUeXBlID09PSAnc2luZ2xlU2VsZWN0JyAmJiBmaWVsZC5maWVsZElucHV0VHlwZSA9PT0gJ2Ryb3Bkb3duJ1wiPlxuICAgIDxwIGNsYXNzPVwiaDZcIj5cbiAgICAgIHt7IGZpZWxkLnRpdGxlIH19XG4gICAgPC9wPlxuICAgIDxtaXMtZHJvcGRvd24gW3NlYXJjaEVuYWJsZWRdPVwiZmFsc2VcIiBbd2lkdGhdPVwiJzE0MHB4J1wiIFtkYXRhXT1cImZpZWxkLml0ZW1zTGlzdFwiIFtzZWxlY3RlZEl0ZW1dPVwiY29udHJvbC52YWx1ZVwiXG4gICAgICAob25DaGFuZ2UpPVwidXBkYXRlU2VsZWN0ZWRWYWx1ZUZvclNpbmdsZVNlbGVjdChmaWVsZCwgY29udHJvbCwgZm9ybWdyb3VwLCAkZXZlbnQpO1wiPlxuICAgIDwvbWlzLWRyb3Bkb3duPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250cm9sLnRvdWNoZWQgJiYgY29udHJvbC5lcnJvcnNcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJkeW5hbWljRmllbGRFcnJvcnNcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBjb250cm9sLmVycm9ycyB9XCI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDwhLS0gZmllbGRUeXBlOiAnc2luZ2xlU2VsZWN0JyBmaWVsZElucHV0VHlwZTogJ3JhZGlvJyAtLT5cbiAgPGRpdiBjbGFzcz1cImR5bmFtaWMtZmllbGQgbXVsdGktbGluZS1maWVsZC1jb250YWluZXJcIlxuICAgICpuZ0lmPVwiZmllbGQuZmllbGRUeXBlID09PSAnc2luZ2xlU2VsZWN0JyAmJiBmaWVsZC5maWVsZElucHV0VHlwZSA9PT0gJ3JhZGlvJ1wiPlxuICAgIDxwIGNsYXNzPVwiaDcgZmllbGQtdGl0bGUtc21cIj5cbiAgICAgIHt7IGZpZWxkLnRpdGxlIH19XG4gICAgPC9wPlxuICAgIDxkaXYgc3R5bGU9XCJmbGV4LWJhc2lzOiAxMDAlXCI+PC9kaXY+XG4gICAgPGRpdiBpZD1cImNoZWNrYm94ZXMtY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicmFkaW8tY2hlY2tib3gtY29tbW9uXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmllbGQuaXRlbXNMaXN0XCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnY2hlY2tib3gtYWN0aXZlJzogaXRlbS5sYWJlbCA9PT0gY29udHJvbC52YWx1ZT8ubGFiZWwgfVwiXG4gICAgICAgIChjbGljayk9XCJ1cGRhdGVTZWxlY3RlZFZhbHVlRm9yU2luZ2xlU2VsZWN0KGZpZWxkLCBjb250cm9sLCBmb3JtZ3JvdXAsIGl0ZW0pO1wiPlxuICAgICAgICA8aW1nICpuZ0lmPVwiKGl0ZW0ubGFiZWwgPT09IGNvbnRyb2wudmFsdWU/LmxhYmVsKSAmJiBhY3RpdmVCdG5JY29uVXJsXCIgW3NyY109XCJhY3RpdmVCdG5JY29uVXJsXCIgYWx0PVwiXCIgLz5cbiAgICAgICAgPHAgY2xhc3M9XCJoNlwiPnt7IGl0ZW0ubGFiZWwgfX08L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29udHJvbC50b3VjaGVkICYmIGNvbnRyb2wuZXJyb3JzXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZHluYW1pY0ZpZWxkRXJyb3JzXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogY29udHJvbC5lcnJvcnMgfVwiPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8IS0tIGZpZWxkVHlwZTogJ211bHRpU2VsZWN0JyBmaWVsZElucHV0VHlwZTogJ2NoZWNrYm94JyAtLT5cbiAgPGRpdiBjbGFzcz1cImR5bmFtaWMtZmllbGQgbXVsdGktbGluZS1maWVsZC1jb250YWluZXJcIlxuICAgICpuZ0lmPVwiZmllbGQuZmllbGRUeXBlID09PSAnbXVsdGlTZWxlY3QnICYmIGZpZWxkLmZpZWxkSW5wdXRUeXBlID09PSAnY2hlY2tib3gnXCI+XG4gICAgPHAgY2xhc3M9XCJoNyBmaWVsZC10aXRsZS1zbVwiPlxuICAgICAge3sgZmllbGQudGl0bGUgfX1cbiAgICA8L3A+XG4gICAgPGRpdiBzdHlsZT1cImZsZXgtYmFzaXM6IDEwMCVcIj48L2Rpdj5cbiAgICA8ZGl2IGlkPVwiY2hlY2tib3hlcy1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyYWRpby1jaGVja2JveC1jb21tb25cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmaWVsZC5pdGVtc0xpc3RcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdjaGVja2JveC1hY3RpdmUnOiBpc0NoZWNrQm94U2VsZWN0ZWQoaXRlbS5sYWJlbCwgY29udHJvbC52YWx1ZSkgfVwiXG4gICAgICAgIChjbGljayk9XCJ1cGRhdGVTZWxlY3RlZFZhbHVlRm9yTXVsdGlTZWxlY3QoZmllbGQsIGNvbnRyb2wsIGZvcm1ncm91cCwgW2l0ZW1dKVwiPlxuICAgICAgICA8aW1nICpuZ0lmPVwiaXNDaGVja0JveFNlbGVjdGVkKGl0ZW0ubGFiZWwsIGNvbnRyb2wudmFsdWUpICYmIGFjdGl2ZUJ0bkljb25VcmxcIiBbc3JjXT1cImFjdGl2ZUJ0bkljb25VcmxcIlxuICAgICAgICAgIGFsdD1cIlwiIC8+XG4gICAgICAgIDxwIGNsYXNzPVwiaDZcIj57eyBpdGVtLmxhYmVsIH19PC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRyb2wudG91Y2hlZCAmJiBjb250cm9sLmVycm9yc1wiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImR5bmFtaWNGaWVsZEVycm9yc1wiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGNvbnRyb2wuZXJyb3JzIH1cIj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBmaWVsZFR5cGU6ICdtdWx0aVNlbGVjdCcgZmllbGRJbnB1dFR5cGU6ICdkcm9wZG93bicgLS0+XG4gIDxkaXYgY2xhc3M9XCJkeW5hbWljLWZpZWxkIHNpbmdsZS1saW5lLWZpZWxkLWNvbnRhaW5lclwiXG4gICAgKm5nSWY9XCJmaWVsZC5maWVsZFR5cGUgPT09ICdtdWx0aVNlbGVjdCcgJiYgZmllbGQuZmllbGRJbnB1dFR5cGUgPT09ICdkcm9wZG93bidcIj5cbiAgICA8cCBjbGFzcz1cImg2XCI+XG4gICAgICB7eyBmaWVsZC50aXRsZSB9fVxuICAgIDwvcD5cbiAgICA8bWlzLW11bHRpLXNlbGVjdC1kcm9wZG93biBbd2lkdGhdPVwiJzE0MHB4J1wiIFtzaG93U2VsZWN0ZWRDb3VudF09XCJ0cnVlXCIgW2Ryb3Bkb3duTGlzdFdpZHRoXT1cIicyNTZweCdcIlxuICAgICAgW3NlYXJjaEVuYWJsZWRdPVwiZmFsc2VcIiBbaGlkZUFwcGx5QnV0dG9uXT1cInRydWVcIiBbZGF0YV09XCJmaWVsZC5pdGVtc0xpc3RcIlxuICAgICAgW3NlbGVjdGVkSXRlbXNdPVwiY29udHJvbC52YWx1ZVwiIChvbkNoYW5nZSk9XCJ1cGRhdGVTZWxlY3RlZFZhbHVlRm9yTXVsdGlTZWxlY3QoZmllbGQsIGNvbnRyb2wsIGZvcm1ncm91cCwgJGV2ZW50KTtcIj48L21pcy1tdWx0aS1zZWxlY3QtZHJvcGRvd24+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRyb2wudG91Y2hlZCAmJiBjb250cm9sLmVycm9yc1wiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImR5bmFtaWNGaWVsZEVycm9yc1wiXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGNvbnRyb2wuZXJyb3JzIH1cIj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZHluYW1pY0ZpZWxkRXJyb3JzIGxldC1lcnJvcnM+XG4gIDxkaXYgaWQ9XCJlcnJvci1tZXNzYWdlcy1jb250YWluZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlcnJvciBvZiBlcnJvcnMgfCBrZXl2YWx1ZVwiPlxuICAgICAgPHAgY2xhc3M9XCJoOFwiPlxuICAgICAgICB7e1wiIOKAoiAmbmJzcDtcIiArIGVycm9yLnZhbHVlfX1cbiAgICAgIDwvcD5cbiAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWJhc2lzOiAxMDAlOyBoZWlnaHQ6IDBcIj48L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiJdfQ==
|