mis-crystal-design-system 4.0.51 → 14.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 +5 -2
- 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/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/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/esm2020/action-list/action-list.component.mjs +175 -0
- package/esm2020/action-list/action-list.module.mjs +24 -0
- package/esm2020/analytics/analytics.module.mjs +18 -0
- package/esm2020/analytics/analytics.service.mjs +63 -0
- package/esm2020/async-search-dropdown/async-dropdown.component.mjs +263 -0
- package/esm2020/async-search-dropdown/async-dropdown.module.mjs +21 -0
- package/esm2020/button/button.component.mjs +52 -0
- package/esm2020/button/button.directive.mjs +59 -0
- package/esm2020/button/button.module.mjs +22 -0
- package/esm2020/checkbox/checkbox.component.mjs +87 -0
- package/esm2020/checkbox/checkbox.module.mjs +22 -0
- package/esm2020/chip/chip.component.mjs +36 -0
- package/esm2020/chip/chip.module.mjs +21 -0
- package/esm2020/datepicker_v2/datepicker.module.mjs +23 -0
- package/esm2020/datepicker_v2/mis-crystal-design-system-datepicker_v2.mjs +5 -0
- package/esm2020/datepicker_v2/public_api.mjs +4 -0
- package/esm2020/datepicker_v2/tz-datepicker.directive.mjs +162 -0
- package/esm2020/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +151 -0
- package/esm2020/daterangepicker_v2/daterangepicker.module.mjs +24 -0
- package/esm2020/daterangepicker_v2/mis-crystal-design-system-daterangepicker_v2.mjs +5 -0
- package/esm2020/daterangepicker_v2/public_api.mjs +4 -0
- package/esm2020/daterangepicker_v2/tz-daterangepicker.directive.mjs +133 -0
- package/esm2020/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +230 -0
- package/esm2020/drawer/drawer-body/drawer-body.component.mjs +43 -0
- package/esm2020/drawer/drawer.module.mjs +32 -0
- package/{esm2015/drawer/drawer.service.js → esm2020/drawer/drawer.service.mjs} +12 -15
- package/esm2020/drawer/mis-crystal-design-system-drawer.mjs +5 -0
- package/esm2020/dropdown/calculate-container-height.directive.mjs +41 -0
- package/esm2020/dropdown/dropdown.component.mjs +194 -0
- package/esm2020/dropdown/dropdown.module.mjs +26 -0
- package/esm2020/dropdown/mis-crystal-design-system-dropdown.mjs +5 -0
- package/esm2020/dynamic-form/dynamic-form.component.mjs +311 -0
- package/esm2020/dynamic-form/dynamic-form.module.mjs +55 -0
- package/esm2020/fab/fab.component.mjs +82 -0
- package/esm2020/fab/fab.module.mjs +21 -0
- package/esm2020/input/directives/input/input.directive.mjs +40 -0
- package/esm2020/input/mis-input.component.mjs +49 -0
- package/esm2020/input/mis-input.module.mjs +20 -0
- package/esm2020/input-stepper/input-stepper/input-stepper.component.mjs +52 -0
- package/esm2020/input-stepper/input-stepper.module.mjs +24 -0
- package/esm2020/loader/loader.component.mjs +19 -0
- package/esm2020/loader/loader.module.mjs +21 -0
- package/esm2020/menu/menu-close.directive.mjs +23 -0
- package/esm2020/menu/menu.directive.mjs +75 -0
- package/esm2020/menu/menu.module.mjs +22 -0
- package/esm2020/mobile-filter/mobile-filter.component.mjs +66 -0
- package/esm2020/mobile-filter/mobile-filter.module.mjs +20 -0
- package/esm2020/modal/mis-crystal-design-system-modal.mjs +5 -0
- package/esm2020/modal/modal.module.mjs +32 -0
- package/esm2020/modal/modal.service.mjs +70 -0
- package/esm2020/modal/module-wrapper/module-wrapper.component.mjs +40 -0
- package/esm2020/multi-select-dropdown/multi-select-dropdown.component.mjs +299 -0
- package/esm2020/multi-select-dropdown/multi-select-dropdown.module.mjs +25 -0
- package/esm2020/nested-multi-select-dropdown/nested-multi-select-dropdown.component.mjs +313 -0
- package/esm2020/nested-multi-select-dropdown/nested-multi-select-dropdown.module.mjs +25 -0
- package/esm2020/phone-input/phone-input.component.mjs +102 -0
- package/esm2020/phone-input/phone-input.module.mjs +26 -0
- package/esm2020/radio-button/radio-button.component.mjs +49 -0
- package/esm2020/radio-button/radio-button.module.mjs +22 -0
- package/esm2020/ske-loader/ske-loader.component.mjs +34 -0
- package/esm2020/ske-loader/ske-loader.module.mjs +18 -0
- package/esm2020/slider/slider.component.mjs +37 -0
- package/esm2020/slider/slider.module.mjs +29 -0
- package/esm2020/snackbar/snackbar/snackbar.component.mjs +22 -0
- package/esm2020/snackbar/snackbar.module.mjs +35 -0
- package/esm2020/snackbar/snackbar.service.mjs +47 -0
- package/esm2020/specificdatepicker/mis-crystal-design-system-specificdatepicker.mjs +5 -0
- package/esm2020/specificdatepicker/public_api.mjs +4 -0
- package/esm2020/specificdatepicker/specificdatepicker.module.mjs +26 -0
- package/esm2020/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +359 -0
- package/esm2020/specificdatepicker/tz-specificdatepicker.directive.mjs +194 -0
- package/esm2020/star-rating/star-rating.component.mjs +86 -0
- package/esm2020/star-rating/star-rating.module.mjs +18 -0
- package/esm2020/switch/switch.component.mjs +43 -0
- package/esm2020/switch/switch.module.mjs +22 -0
- package/esm2020/table/custom-table-cell.directive.mjs +42 -0
- package/esm2020/table/filter/filter.component.mjs +79 -0
- package/esm2020/table/mis-crystal-design-system-table.mjs +5 -0
- package/esm2020/table/public_api.mjs +6 -0
- package/esm2020/table/sub-table/sub-table.component.mjs +69 -0
- package/esm2020/table/table.component.mjs +210 -0
- package/esm2020/table/table.module.mjs +26 -0
- package/esm2020/timepicker/mis-crystal-design-system-timepicker.mjs +5 -0
- package/esm2020/timepicker/timepicker.component.mjs +272 -0
- package/esm2020/timepicker/timepicker.directive.mjs +65 -0
- package/esm2020/timepicker/timepicker.module.mjs +25 -0
- package/esm2020/timerangepicker/timerangepicker.component.mjs +205 -0
- package/esm2020/timerangepicker/timerangepicker.module.mjs +23 -0
- package/esm2020/toast/toast.component.mjs +33 -0
- package/esm2020/toast/toast.data.service.mjs +30 -0
- package/esm2020/toast/toast.module.mjs +32 -0
- package/esm2020/toast/toast.service.mjs +91 -0
- package/esm2020/tooltip/tooltip-container/tooltip.component.mjs +34 -0
- package/esm2020/tooltip/tooltip.directive.mjs +135 -0
- package/esm2020/tooltip/tooltip.module.mjs +23 -0
- package/esm2020/virtual-scroll/virtual-scroll.component.mjs +116 -0
- package/esm2020/virtual-scroll/virtual-scroll.module.mjs +33 -0
- package/{esm2015/widgets/classes/base-widget.js → esm2020/widgets/classes/base-widget.mjs} +2 -2
- package/esm2020/widgets/classes/widget-group.mjs +32 -0
- package/esm2020/widgets/services/widget.service.mjs +18 -0
- package/esm2020/widgets/widgets.module.mjs +17 -0
- package/fab/fab.component.d.ts +3 -0
- package/fab/fab.module.d.ts +6 -0
- package/fesm2015/mis-crystal-design-system-action-list.mjs +200 -0
- package/fesm2015/mis-crystal-design-system-action-list.mjs.map +1 -0
- package/fesm2015/{mis-crystal-design-system-analytics.js → mis-crystal-design-system-analytics.mjs} +22 -14
- package/fesm2015/mis-crystal-design-system-analytics.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-async-search-dropdown.mjs +294 -0
- package/fesm2015/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-button.mjs +134 -0
- package/fesm2015/mis-crystal-design-system-button.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-checkbox.mjs +112 -0
- package/fesm2015/mis-crystal-design-system-checkbox.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-chip.mjs +61 -0
- package/fesm2015/mis-crystal-design-system-chip.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-datepicker_v2.mjs +381 -0
- package/fesm2015/mis-crystal-design-system-datepicker_v2.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-daterangepicker_v2.mjs +433 -0
- package/fesm2015/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-drawer.mjs +157 -0
- package/fesm2015/mis-crystal-design-system-drawer.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-dropdown.mjs +261 -0
- package/fesm2015/mis-crystal-design-system-dropdown.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-dynamic-form.mjs +375 -0
- package/fesm2015/mis-crystal-design-system-dynamic-form.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-fab.mjs +102 -0
- package/fesm2015/mis-crystal-design-system-fab.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-input-stepper.mjs +80 -0
- package/fesm2015/mis-crystal-design-system-input-stepper.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-input.mjs +115 -0
- package/fesm2015/mis-crystal-design-system-input.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-loader.mjs +44 -0
- package/fesm2015/mis-crystal-design-system-loader.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-menu.mjs +120 -0
- package/fesm2015/mis-crystal-design-system-menu.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-mobile-filter.mjs +87 -0
- package/fesm2015/mis-crystal-design-system-mobile-filter.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-modal.mjs +156 -0
- package/fesm2015/mis-crystal-design-system-modal.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-multi-select-dropdown.mjs +314 -0
- package/fesm2015/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-nested-multi-select-dropdown.mjs +310 -0
- package/fesm2015/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-phone-input.mjs +130 -0
- package/fesm2015/mis-crystal-design-system-phone-input.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-radio-button.mjs +74 -0
- package/fesm2015/mis-crystal-design-system-radio-button.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-ske-loader.mjs +56 -0
- package/fesm2015/mis-crystal-design-system-ske-loader.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-slider.mjs +70 -0
- package/fesm2015/mis-crystal-design-system-slider.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-snackbar.mjs +104 -0
- package/fesm2015/mis-crystal-design-system-snackbar.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-specificdatepicker.mjs +627 -0
- package/fesm2015/mis-crystal-design-system-specificdatepicker.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-star-rating.mjs +108 -0
- package/fesm2015/mis-crystal-design-system-star-rating.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-styles.mjs +4 -0
- package/fesm2015/mis-crystal-design-system-styles.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-switch.mjs +68 -0
- package/fesm2015/mis-crystal-design-system-switch.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-table.mjs +422 -0
- package/fesm2015/mis-crystal-design-system-table.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-timepicker.mjs +357 -0
- package/fesm2015/mis-crystal-design-system-timepicker.mjs.map +1 -0
- package/fesm2015/{mis-crystal-design-system-timerangepicker.js → mis-crystal-design-system-timerangepicker.mjs} +52 -38
- package/fesm2015/mis-crystal-design-system-timerangepicker.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-toast.mjs +182 -0
- package/fesm2015/mis-crystal-design-system-toast.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-tooltip.mjs +193 -0
- package/fesm2015/mis-crystal-design-system-tooltip.mjs.map +1 -0
- package/fesm2015/{mis-crystal-design-system-utils.js → mis-crystal-design-system-utils.mjs} +1 -1
- package/fesm2015/mis-crystal-design-system-utils.mjs.map +1 -0
- package/fesm2015/mis-crystal-design-system-virtual-scroll.mjs +154 -0
- package/fesm2015/mis-crystal-design-system-virtual-scroll.mjs.map +1 -0
- package/fesm2015/{mis-crystal-design-system-widgets.js → mis-crystal-design-system-widgets.mjs} +13 -8
- package/fesm2015/mis-crystal-design-system-widgets.mjs.map +1 -0
- package/fesm2015/{mis-crystal-design-system.js → mis-crystal-design-system.mjs} +1 -1
- package/fesm2015/mis-crystal-design-system.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-action-list.mjs +202 -0
- package/fesm2020/mis-crystal-design-system-action-list.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-analytics.mjs +85 -0
- package/fesm2020/mis-crystal-design-system-analytics.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-async-search-dropdown.mjs +286 -0
- package/fesm2020/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-button.mjs +134 -0
- package/fesm2020/mis-crystal-design-system-button.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-checkbox.mjs +112 -0
- package/fesm2020/mis-crystal-design-system-checkbox.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-chip.mjs +61 -0
- package/fesm2020/mis-crystal-design-system-chip.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-datepicker_v2.mjs +380 -0
- package/fesm2020/mis-crystal-design-system-datepicker_v2.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-daterangepicker_v2.mjs +430 -0
- package/fesm2020/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-drawer.mjs +156 -0
- package/fesm2020/mis-crystal-design-system-drawer.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-dropdown.mjs +260 -0
- package/fesm2020/mis-crystal-design-system-dropdown.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-dynamic-form.mjs +368 -0
- package/fesm2020/mis-crystal-design-system-dynamic-form.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-fab.mjs +107 -0
- package/fesm2020/mis-crystal-design-system-fab.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-input-stepper.mjs +80 -0
- package/fesm2020/mis-crystal-design-system-input-stepper.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-input.mjs +109 -0
- package/fesm2020/mis-crystal-design-system-input.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-loader.mjs +44 -0
- package/fesm2020/mis-crystal-design-system-loader.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-menu.mjs +119 -0
- package/fesm2020/mis-crystal-design-system-menu.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-mobile-filter.mjs +90 -0
- package/fesm2020/mis-crystal-design-system-mobile-filter.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-modal.mjs +156 -0
- package/fesm2020/mis-crystal-design-system-modal.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-multi-select-dropdown.mjs +327 -0
- package/fesm2020/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-nested-multi-select-dropdown.mjs +341 -0
- package/fesm2020/mis-crystal-design-system-nested-multi-select-dropdown.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-phone-input.mjs +130 -0
- package/fesm2020/mis-crystal-design-system-phone-input.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-radio-button.mjs +74 -0
- package/fesm2020/mis-crystal-design-system-radio-button.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-ske-loader.mjs +56 -0
- package/fesm2020/mis-crystal-design-system-ske-loader.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-slider.mjs +70 -0
- package/fesm2020/mis-crystal-design-system-slider.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-snackbar.mjs +104 -0
- package/fesm2020/mis-crystal-design-system-snackbar.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-specificdatepicker.mjs +621 -0
- package/fesm2020/mis-crystal-design-system-specificdatepicker.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-star-rating.mjs +108 -0
- package/fesm2020/mis-crystal-design-system-star-rating.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-styles.mjs +4 -0
- package/fesm2020/mis-crystal-design-system-styles.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-switch.mjs +68 -0
- package/fesm2020/mis-crystal-design-system-switch.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-table.mjs +415 -0
- package/fesm2020/mis-crystal-design-system-table.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-timepicker.mjs +357 -0
- package/fesm2020/mis-crystal-design-system-timepicker.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-timerangepicker.mjs +232 -0
- package/fesm2020/mis-crystal-design-system-timerangepicker.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-toast.mjs +180 -0
- package/fesm2020/mis-crystal-design-system-toast.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-tooltip.mjs +191 -0
- package/fesm2020/mis-crystal-design-system-tooltip.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-utils.mjs +24 -0
- package/fesm2020/mis-crystal-design-system-utils.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-virtual-scroll.mjs +154 -0
- package/fesm2020/mis-crystal-design-system-virtual-scroll.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-widgets.mjs +128 -0
- package/fesm2020/mis-crystal-design-system-widgets.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system.mjs +24 -0
- package/fesm2020/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 +4 -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 +316 -8
- 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/public_api.d.ts +1 -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 +3 -0
- package/table/public_api.d.ts +1 -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/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 +3 -0
- 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/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/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/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/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/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 → esm2020/action-list/index.mjs} +0 -0
- /package/{esm2015/action-list/mis-crystal-design-system-action-list.js → esm2020/action-list/mis-crystal-design-system-action-list.mjs} +0 -0
- /package/{esm2015/action-list/public_api.js → esm2020/action-list/public_api.mjs} +0 -0
- /package/{esm2015/analytics/index.js → esm2020/analytics/index.mjs} +0 -0
- /package/{esm2015/analytics/mis-crystal-design-system-analytics.js → esm2020/analytics/mis-crystal-design-system-analytics.mjs} +0 -0
- /package/{esm2015/analytics/public_api.js → esm2020/analytics/public_api.mjs} +0 -0
- /package/{esm2015/async-search-dropdown/index.js → esm2020/async-search-dropdown/index.mjs} +0 -0
- /package/{esm2015/async-search-dropdown/mis-crystal-design-system-async-search-dropdown.js → esm2020/async-search-dropdown/mis-crystal-design-system-async-search-dropdown.mjs} +0 -0
- /package/{esm2015/async-search-dropdown/public_api.js → esm2020/async-search-dropdown/public_api.mjs} +0 -0
- /package/{esm2015/button/index.js → esm2020/button/index.mjs} +0 -0
- /package/{esm2015/button/mis-crystal-design-system-button.js → esm2020/button/mis-crystal-design-system-button.mjs} +0 -0
- /package/{esm2015/button/public_api.js → esm2020/button/public_api.mjs} +0 -0
- /package/{esm2015/checkbox/index.js → esm2020/checkbox/index.mjs} +0 -0
- /package/{esm2015/checkbox/mis-crystal-design-system-checkbox.js → esm2020/checkbox/mis-crystal-design-system-checkbox.mjs} +0 -0
- /package/{esm2015/checkbox/public_api.js → esm2020/checkbox/public_api.mjs} +0 -0
- /package/{esm2015/chip/index.js → esm2020/chip/index.mjs} +0 -0
- /package/{esm2015/chip/mis-crystal-design-system-chip.js → esm2020/chip/mis-crystal-design-system-chip.mjs} +0 -0
- /package/{esm2015/chip/public_api.js → esm2020/chip/public_api.mjs} +0 -0
- /package/{esm2015/datepicker_v2/datepicker-constants.js → esm2020/datepicker_v2/datepicker-constants.mjs} +0 -0
- /package/{esm2015/datepicker_v2/index.js → esm2020/datepicker_v2/index.mjs} +0 -0
- /package/{esm2015/datepicker_v2/models/dp-config.model.js → esm2020/datepicker_v2/models/dp-config.model.mjs} +0 -0
- /package/{esm2015/datepicker_v2/utils/index.js → esm2020/datepicker_v2/utils/index.mjs} +0 -0
- /package/{esm2015/daterangepicker_v2/daterangepicker-constants.js → esm2020/daterangepicker_v2/daterangepicker-constants.mjs} +0 -0
- /package/{esm2015/daterangepicker_v2/index.js → esm2020/daterangepicker_v2/index.mjs} +0 -0
- /package/{esm2015/daterangepicker_v2/models/drp-config.model.js → esm2020/daterangepicker_v2/models/drp-config.model.mjs} +0 -0
- /package/{esm2015/daterangepicker_v2/utils/index.js → esm2020/daterangepicker_v2/utils/index.mjs} +0 -0
- /package/{esm2015/drawer/drawer-constants.js → esm2020/drawer/drawer-constants.mjs} +0 -0
- /package/{esm2015/drawer/drawer-ref.js → esm2020/drawer/drawer-ref.mjs} +0 -0
- /package/{esm2015/drawer/index.js → esm2020/drawer/index.mjs} +0 -0
- /package/{esm2015/drawer/public_api.js → esm2020/drawer/public_api.mjs} +0 -0
- /package/{esm2015/dropdown/index.js → esm2020/dropdown/index.mjs} +0 -0
- /package/{esm2015/dropdown/public_api.js → esm2020/dropdown/public_api.mjs} +0 -0
- /package/{esm2015/dynamic-form/dynamic-form.namespace.js → esm2020/dynamic-form/dynamic-form.namespace.mjs} +0 -0
- /package/{esm2015/dynamic-form/index.js → esm2020/dynamic-form/index.mjs} +0 -0
- /package/{esm2015/dynamic-form/mis-crystal-design-system-dynamic-form.js → esm2020/dynamic-form/mis-crystal-design-system-dynamic-form.mjs} +0 -0
- /package/{esm2015/dynamic-form/public_api.js → esm2020/dynamic-form/public_api.mjs} +0 -0
- /package/{esm2015/fab/index.js → esm2020/fab/index.mjs} +0 -0
- /package/{esm2015/fab/mis-crystal-design-system-fab.js → esm2020/fab/mis-crystal-design-system-fab.mjs} +0 -0
- /package/{esm2015/fab/public_api.js → esm2020/fab/public_api.mjs} +0 -0
- /package/{esm2015/index.js → esm2020/index.mjs} +0 -0
- /package/{esm2015/input/index.js → esm2020/input/index.mjs} +0 -0
- /package/{esm2015/input/mis-crystal-design-system-input.js → esm2020/input/mis-crystal-design-system-input.mjs} +0 -0
- /package/{esm2015/input/public_api.js → esm2020/input/public_api.mjs} +0 -0
- /package/{esm2015/input-stepper/index.js → esm2020/input-stepper/index.mjs} +0 -0
- /package/{esm2015/input-stepper/mis-crystal-design-system-input-stepper.js → esm2020/input-stepper/mis-crystal-design-system-input-stepper.mjs} +0 -0
- /package/{esm2015/input-stepper/public_api.js → esm2020/input-stepper/public_api.mjs} +0 -0
- /package/{esm2015/loader/index.js → esm2020/loader/index.mjs} +0 -0
- /package/{esm2015/loader/mis-crystal-design-system-loader.js → esm2020/loader/mis-crystal-design-system-loader.mjs} +0 -0
- /package/{esm2015/loader/public_api.js → esm2020/loader/public_api.mjs} +0 -0
- /package/{esm2015/menu/index.js → esm2020/menu/index.mjs} +0 -0
- /package/{esm2015/menu/mis-crystal-design-system-menu.js → esm2020/menu/mis-crystal-design-system-menu.mjs} +0 -0
- /package/{esm2015/menu/public_api.js → esm2020/menu/public_api.mjs} +0 -0
- /package/{esm2015/mis-crystal-design-system.js → esm2020/mis-crystal-design-system.mjs} +0 -0
- /package/{esm2015/mobile-filter/index.js → esm2020/mobile-filter/index.mjs} +0 -0
- /package/{esm2015/mobile-filter/mis-crystal-design-system-mobile-filter.js → esm2020/mobile-filter/mis-crystal-design-system-mobile-filter.mjs} +0 -0
- /package/{esm2015/mobile-filter/public_api.js → esm2020/mobile-filter/public_api.mjs} +0 -0
- /package/{esm2015/modal/index.js → esm2020/modal/index.mjs} +0 -0
- /package/{esm2015/modal/modal-constants.js → esm2020/modal/modal-constants.mjs} +0 -0
- /package/{esm2015/modal/modal-ref.js → esm2020/modal/modal-ref.mjs} +0 -0
- /package/{esm2015/modal/public_api.js → esm2020/modal/public_api.mjs} +0 -0
- /package/{esm2015/multi-select-dropdown/index.js → esm2020/multi-select-dropdown/index.mjs} +0 -0
- /package/{esm2015/multi-select-dropdown/mis-crystal-design-system-multi-select-dropdown.js → esm2020/multi-select-dropdown/mis-crystal-design-system-multi-select-dropdown.mjs} +0 -0
- /package/{esm2015/multi-select-dropdown/public_api.js → esm2020/multi-select-dropdown/public_api.mjs} +0 -0
- /package/{esm2015/nested-multi-select-dropdown/index.js → esm2020/nested-multi-select-dropdown/index.mjs} +0 -0
- /package/{esm2015/nested-multi-select-dropdown/mis-crystal-design-system-nested-multi-select-dropdown.js → esm2020/nested-multi-select-dropdown/mis-crystal-design-system-nested-multi-select-dropdown.mjs} +0 -0
- /package/{esm2015/nested-multi-select-dropdown/public_api.js → esm2020/nested-multi-select-dropdown/public_api.mjs} +0 -0
- /package/{esm2015/phone-input/index.js → esm2020/phone-input/index.mjs} +0 -0
- /package/{esm2015/phone-input/mis-crystal-design-system-phone-input.js → esm2020/phone-input/mis-crystal-design-system-phone-input.mjs} +0 -0
- /package/{esm2015/phone-input/public_api.js → esm2020/phone-input/public_api.mjs} +0 -0
- /package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- /package/{esm2015/radio-button/index.js → esm2020/radio-button/index.mjs} +0 -0
- /package/{esm2015/radio-button/mis-crystal-design-system-radio-button.js → esm2020/radio-button/mis-crystal-design-system-radio-button.mjs} +0 -0
- /package/{esm2015/radio-button/public_api.js → esm2020/radio-button/public_api.mjs} +0 -0
- /package/{esm2015/ske-loader/index.js → esm2020/ske-loader/index.mjs} +0 -0
- /package/{esm2015/ske-loader/mis-crystal-design-system-ske-loader.js → esm2020/ske-loader/mis-crystal-design-system-ske-loader.mjs} +0 -0
- /package/{esm2015/ske-loader/public_api.js → esm2020/ske-loader/public_api.mjs} +0 -0
- /package/{esm2015/slider/index.js → esm2020/slider/index.mjs} +0 -0
- /package/{esm2015/slider/mis-crystal-design-system-slider.js → esm2020/slider/mis-crystal-design-system-slider.mjs} +0 -0
- /package/{esm2015/slider/public_api.js → esm2020/slider/public_api.mjs} +0 -0
- /package/{esm2015/snackbar/index.js → esm2020/snackbar/index.mjs} +0 -0
- /package/{esm2015/snackbar/mis-crystal-design-system-snackbar.js → esm2020/snackbar/mis-crystal-design-system-snackbar.mjs} +0 -0
- /package/{esm2015/snackbar/public_api.js → esm2020/snackbar/public_api.mjs} +0 -0
- /package/{esm2015/specificdatepicker/daterangepicker-constants.js → esm2020/specificdatepicker/daterangepicker-constants.mjs} +0 -0
- /package/{esm2015/specificdatepicker/index.js → esm2020/specificdatepicker/index.mjs} +0 -0
- /package/{esm2015/specificdatepicker/models/sdp-config.model.js → esm2020/specificdatepicker/models/sdp-config.model.mjs} +0 -0
- /package/{esm2015/specificdatepicker/utils/index.js → esm2020/specificdatepicker/utils/index.mjs} +0 -0
- /package/{esm2015/star-rating/index.js → esm2020/star-rating/index.mjs} +0 -0
- /package/{esm2015/star-rating/mis-crystal-design-system-star-rating.js → esm2020/star-rating/mis-crystal-design-system-star-rating.mjs} +0 -0
- /package/{esm2015/star-rating/public_api.js → esm2020/star-rating/public_api.mjs} +0 -0
- /package/{esm2015/styles/index.js → esm2020/styles/index.mjs} +0 -0
- /package/{esm2015/styles/mis-crystal-design-system-styles.js → esm2020/styles/mis-crystal-design-system-styles.mjs} +0 -0
- /package/{esm2015/styles/public_api.js → esm2020/styles/public_api.mjs} +0 -0
- /package/{esm2015/switch/index.js → esm2020/switch/index.mjs} +0 -0
- /package/{esm2015/switch/mis-crystal-design-system-switch.js → esm2020/switch/mis-crystal-design-system-switch.mjs} +0 -0
- /package/{esm2015/switch/public_api.js → esm2020/switch/public_api.mjs} +0 -0
- /package/{esm2015/table/index.js → esm2020/table/index.mjs} +0 -0
- /package/{esm2015/timepicker/index.js → esm2020/timepicker/index.mjs} +0 -0
- /package/{esm2015/timepicker/public_api.js → esm2020/timepicker/public_api.mjs} +0 -0
- /package/{esm2015/timepicker/time.namespace.js → esm2020/timepicker/time.namespace.mjs} +0 -0
- /package/{esm2015/timerangepicker/index.js → esm2020/timerangepicker/index.mjs} +0 -0
- /package/{esm2015/timerangepicker/mis-crystal-design-system-timerangepicker.js → esm2020/timerangepicker/mis-crystal-design-system-timerangepicker.mjs} +0 -0
- /package/{esm2015/timerangepicker/public_api.js → esm2020/timerangepicker/public_api.mjs} +0 -0
- /package/{esm2015/timerangepicker/timerange.namespace.js → esm2020/timerangepicker/timerange.namespace.mjs} +0 -0
- /package/{esm2015/toast/index.js → esm2020/toast/index.mjs} +0 -0
- /package/{esm2015/toast/mis-crystal-design-system-toast.js → esm2020/toast/mis-crystal-design-system-toast.mjs} +0 -0
- /package/{esm2015/toast/public_api.js → esm2020/toast/public_api.mjs} +0 -0
- /package/{esm2015/tooltip/index.js → esm2020/tooltip/index.mjs} +0 -0
- /package/{esm2015/tooltip/mis-crystal-design-system-tooltip.js → esm2020/tooltip/mis-crystal-design-system-tooltip.mjs} +0 -0
- /package/{esm2015/tooltip/models/tooltip.model.js → esm2020/tooltip/models/tooltip.model.mjs} +0 -0
- /package/{esm2015/tooltip/public_api.js → esm2020/tooltip/public_api.mjs} +0 -0
- /package/{esm2015/utils/index.js → esm2020/utils/index.mjs} +0 -0
- /package/{esm2015/utils/mis-crystal-design-system-utils.js → esm2020/utils/mis-crystal-design-system-utils.mjs} +0 -0
- /package/{esm2015/virtual-scroll/index.js → esm2020/virtual-scroll/index.mjs} +0 -0
- /package/{esm2015/virtual-scroll/mis-crystal-design-system-virtual-scroll.js → esm2020/virtual-scroll/mis-crystal-design-system-virtual-scroll.mjs} +0 -0
- /package/{esm2015/virtual-scroll/public_api.js → esm2020/virtual-scroll/public_api.mjs} +0 -0
- /package/{esm2015/virtual-scroll/virtual-scroll.constants.js → esm2020/virtual-scroll/virtual-scroll.constants.mjs} +0 -0
- /package/{esm2015/widgets/classes/async-widget.js → esm2020/widgets/classes/async-widget.mjs} +0 -0
- /package/{esm2015/widgets/classes/sync-widget.js → esm2020/widgets/classes/sync-widget.mjs} +0 -0
- /package/{esm2015/widgets/index.js → esm2020/widgets/index.mjs} +0 -0
- /package/{esm2015/widgets/interfaces/widgets.model.js → esm2020/widgets/interfaces/widgets.model.mjs} +0 -0
- /package/{esm2015/widgets/mis-crystal-design-system-widgets.js → esm2020/widgets/mis-crystal-design-system-widgets.mjs} +0 -0
- /package/{esm2015/widgets/public_api.js → esm2020/widgets/public_api.mjs} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mis-crystal-design-system-dropdown.mjs","sources":["../../../projects/mis-components/dropdown/calculate-container-height.directive.ts","../../../projects/mis-components/dropdown/dropdown.component.ts","../../../projects/mis-components/dropdown/dropdown.component.html","../../../projects/mis-components/dropdown/dropdown.module.ts","../../../projects/mis-components/dropdown/mis-crystal-design-system-dropdown.ts"],"sourcesContent":["import { AfterViewInit, Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n selector: '[calculateContainerHeight]'\n})\nexport class CalculateContainerHeightDirective implements AfterViewInit{\n @Input() items: any[];\n @Input() visibleItems: number;\n\n constructor(private el: ElementRef) {\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.setContainerHeight();\n },200);\n }\n\n private setContainerHeight() {\n const firstItemElement = this.el.nativeElement.querySelector('.item');\n const firstItemHeight = firstItemElement ? firstItemElement.getBoundingClientRect().height :0;\n const numberOfItems = this.items ? this.items.length : 0;\n \n let containerHeight = 0;\n if (firstItemHeight * numberOfItems > 200) {\n containerHeight = 200;\n } else if (numberOfItems <= this.visibleItems) {\n containerHeight = firstItemHeight * numberOfItems;\n } else {\n containerHeight = firstItemHeight * this.visibleItems;\n }\n\n this.el.nativeElement.style.height = `${containerHeight}px`;\n }\n\n}\n","import { ConnectionPositionPair, Overlay, OverlayConfig, OverlayRef } from \"@angular/cdk/overlay\";\nimport { TemplatePortal } from \"@angular/cdk/portal\";\nimport { Component, ElementRef, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild, ViewContainerRef } from \"@angular/core\";\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\n\n@Component({\n selector: \"mis-dropdown\",\n templateUrl: \"./dropdown.component.html\",\n styleUrls: [\"./dropdown.component.scss\"],\n \n})\nexport class DropdownComponent implements OnInit {\n isOpen = false;\n loading: boolean = false;\n isSearchInputFocused: boolean = false;\n searchInput: string = \"\";\n searchData: DropdownItem[] = [];\n visibleItems = 10;\n @Input() data: DropdownItem[] = [];\n @Input() height: string = \"\";\n @Input() width: string = \"\";\n @Input() label: string = \"Select\";\n @Input() itemSizeForCdk: number;\n @Input() showOnlyIcon: boolean = false;\n @Input() higlightSelectedValue: boolean = false;\n @Input() dropdownListHeight: string = \"\";\n @Input() dropdownListWidth: string = \"\";\n @Input() dropdownListPosition: \"Left\" | \"Right\" = \"Left\";\n @Input() config\n @Input() searchEnabled: boolean = true;\n @Input() selectedItem: DropdownItem = { value: \"\", label: \"\" };\n @Input() noDataMessage: string = \"No Data\";\n @Input() multiLine: boolean = false;\n @Input() additionalInfoMessage : string;\n @Input() scrollIntoView: boolean = false;\n @Input() searchLabel:string = \"Search Keyword\";\n @Input() customStyles: { [key: string]: string };\n @Input() activeItem: boolean = false;\n @Output() onChange: EventEmitter<any> = new EventEmitter();\n @ViewChild(\"select\", { static: false }) selectElement: ElementRef;\n @ViewChild(\"popupContainer\", { static: false }) popupContainer: TemplateRef<Element>;\n @ViewChild(CdkVirtualScrollViewport) viewPort: CdkVirtualScrollViewport;\n private overlayRef: OverlayRef;\n constructor(private eRef: ElementRef, private overlay: Overlay, private viewContainerRef: ViewContainerRef) {}\n ngOnInit() {\n }\n\n getIconStyles(item: any, activeItem: boolean): { [key: string]: string } {\n return {\n 'color': item && activeItem ? '#0937B2' : '',\n 'font-weight': item && activeItem ? '700' : ''\n };\n }\n\nsetUpAsyncDataSearch()\n{\n if(this.config)\n {\n this.loading = true;\n this.config.dataStream().pipe().subscribe(res=> {\n this.data = res\n this.loading = false\n })\n }\n const index = this.data.findIndex((dataItem) => dataItem.value === this.selectedItem.value);\n if (this.scrollIntoView)\n this.viewPort.scrollToIndex(index, 'smooth');\n}\n filterByValue(array, string: string) {\n return array.filter(o => o.label.toLowerCase().includes(string.toLowerCase().trim()));\n }\n\n filterByPrimaryText(array, string: string) {\n return array.filter(o => o.label.primaryText.toLowerCase().includes(string.toLowerCase().trim()));\n }\n searchInputOnChange(newValue) {\n this.searchInput = newValue;\n if (newValue) {\n this.searchData = this.multiLine ? this.filterByPrimaryText(this.data, newValue) : this.filterByValue(this.data, newValue);\n } else {\n this.searchData = [];\n this.searchInput = \"\";\n }\n }\n searchInputFocused(isFocused: boolean) {\n this.isSearchInputFocused = isFocused;\n }\n searchInputCanceled(event) {\n event.stopPropagation();\n this.searchInput = \"\";\n this.isSearchInputFocused = false;\n }\n toggleDropdown() {\n this.isOpen = !this.isOpen;\n if (this.isOpen) this.openDropdown(this.popupContainer, this.selectElement.nativeElement);\n else this.onCancel();\n }\n private openDropdown(template: TemplateRef<Element>, origin: HTMLElement): void {\n const positionsBottom = [\n new ConnectionPositionPair({ originX: \"start\", originY: \"bottom\" }, { overlayX: \"start\", overlayY: \"top\" }, 0, 4),\n new ConnectionPositionPair({ originX: \"end\", originY: \"bottom\" }, { overlayX: \"end\", overlayY: \"top\" }, 0, 4)\n ];\n const positionsTop = [\n new ConnectionPositionPair({ originX: \"start\", originY: \"top\" }, { overlayX: \"start\", overlayY: \"bottom\" }, 0, -4),\n new ConnectionPositionPair({ originX: \"end\", originY: \"top\" }, { overlayX: \"end\", overlayY: \"bottom\" }, 0, -4)\n ];\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(origin)\n .withPositions([\n ...(this.dropdownListPosition === \"Right\" ? positionsBottom.reverse() : positionsBottom),\n ...(this.dropdownListPosition === \"Right\" ? positionsTop.reverse() : positionsTop)\n ])\n .withPush(true);\n const configs = new OverlayConfig({\n hasBackdrop: true,\n backdropClass: \"cdk-overlay-transparent-backdrop\",\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy,\n width: origin.clientWidth\n });\n this.overlayRef = this.overlay.create(configs);\n if (this.dropdownListWidth) this.overlayRef.updateSize({ width: this.dropdownListWidth });\n if (this.dropdownListHeight) this.overlayRef.updateSize({ height: this.dropdownListHeight });\n this.overlayRef.attach(new TemplatePortal(template, this.viewContainerRef));\n this.overlayRef.backdropClick().subscribe(res => {\n this.onCancel();\n });\n }\n selectItem(item) {\n this.onChange.emit(item); \n this.toggleDropdown();\n }\n onCancel() {\n this.isSearchInputFocused = false;\n this.isOpen = false;\n this.overlayRef?.detach();\n this.searchInput = \"\";\n }\n}\nexport interface DropdownItem {\n label: any ;\n value: string;\n icon?: string;\n disabled?: boolean;\n customIcon?: string\n}\nexport interface ActionItemLabel {\n primaryText ?: string;\n secondaryText ?: string;\n}\n","<div (click)=\"setUpAsyncDataSearch()\"\n class=\"main-container\"\n [ngStyle]=\"{\n height: height.length > 0 ? height : '',\n width: width.length > 0 ? width : ''\n }\"\n>\n <div\n class=\"dropdown\"\n #select\n tabindex=\"0\"\n (keyup.enter)=\"toggleDropdown()\"\n (click)=\"toggleDropdown()\"\n [ngStyle]=\"customStyles\"\n [ngClass]=\"isOpen ? 'dropdown-port': ''\"\n >\n <img class=\"img-container\" [src]=\"selectedItem.customIcon\" *ngIf=\"selectedItem.customIcon\">\n <div class=\"label\">\n <p class=\"text\" *ngIf=\"!showOnlyIcon; else showIcon\">\n {{ multiLine ? selectedItem.label?.primaryText : selectedItem.label || label }}\n </p>\n <ng-template #showIcon>\n <p class=\"text\" *ngIf=\"!selectedItem.icon\">\n {{ label }}\n </p>\n <img class=\"icon\" *ngIf=\"!!selectedItem.icon\" [src]=\"selectedItem.icon\" alt=\"no img\" />\n </ng-template>\n </div>\n <svg\n class=\"handle\"\n [ngStyle]=\"{ transform: isOpen ? 'rotate(180deg)' : 'rotate(0deg)' }\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13.825 7.15845L10 10.9751L6.175 7.15845L5 8.33345L10 13.3334L15 8.33345L13.825 7.15845Z\"\n fill=\"#181F33\"\n />\n </svg>\n </div>\n</div>\n<ng-template #popupContainer>\n <div\n class=\"popup-container\"\n [ngStyle]=\"{\n height: dropdownListHeight,\n width: dropdownListWidth\n }\"\n >\n <div *ngIf=\"searchEnabled\" class=\"search-container\">\n <svg\n *ngIf=\"!isSearchInputFocused\"\n class=\"search-icon\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.21508 11.1456C4.21508 7.3179 7.33722 4.21165 11.1926 4.21165C15.048 4.21165 18.1702 7.3179 18.1702 11.1456C18.1702 12.6931 17.6599 14.1226 16.7972 15.2767L15.3685 16.7013C14.2044 17.5668 12.759 18.0796 11.1926 18.0796C7.33722 18.0796 4.21508 14.9734 4.21508 11.1456ZM15.9421 17.7835C14.6021 18.7329 12.9627 19.2913 11.1926 19.2913C6.66977 19.2913 3 15.6461 3 11.1456C3 6.64512 6.66977 3 11.1926 3C15.7155 3 19.3852 6.64512 19.3852 11.1456C19.3852 12.9371 18.8037 14.5931 17.8184 15.9375L19.8361 17.4048C20.6705 17.912 21.7554 18.6543 20.2454 20.215C18.7353 21.7756 18.0099 20.6663 17.4991 19.8364L15.9421 17.7835Z\"\n fill=\"#6A737D\"\n />\n </svg>\n <input\n [ngModel]=\"searchInput\"\n [ngStyle]=\"{\n paddingLeft: isSearchInputFocused ? '12px' : '45px',\n border: isSearchInputFocused ? '1px solid #0937B2' : '1px solid #e0e0e0',\n paddingRight: isSearchInputFocused ? '45px' : '10px'\n }\"\n (ngModelChange)=\"searchInputOnChange($event)\"\n [placeholder]=\"isSearchInputFocused ? '' : searchLabel\"\n (focus)=\"searchInputFocused(true)\"\n class=\"search-input\"\n />\n <svg\n *ngIf=\"isSearchInputFocused\"\n class=\"cancel-icon\"\n (click)=\"searchInputCanceled($event)\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8.87446 7.32144C8.44588 6.89285 7.751 6.89285 7.32242 7.32144C6.89383 7.75002 6.89383 8.4449 7.32242 8.87349L10.4488 11.9999L7.32357 15.1252C6.89498 15.5538 6.89498 16.2486 7.32357 16.6772C7.75215 17.1058 8.44703 17.1058 8.87561 16.6772L12.0009 13.552L15.1261 16.6772C15.5547 17.1058 16.2496 17.1058 16.6781 16.6772C17.1067 16.2486 17.1067 15.5537 16.6781 15.1251L13.5529 11.9999L16.6793 8.87354C17.1079 8.44496 17.1079 7.75008 16.6793 7.3215C16.2507 6.89291 15.5558 6.89291 15.1273 7.3215L12.0009 10.4479L8.87446 7.32144Z\"\n fill=\"#6A737D\"\n />\n </svg>\n </div>\n <div class=\"status-container\" *ngIf=\"loading\">\n <mis-loader [mobileView]=\"true\"></mis-loader>\n </div>\n <div class=\"items\" *ngIf=\"!loading\"> \n <cdk-virtual-scroll-viewport [itemSize]=\"itemSizeForCdk\" class=\"dropdown-viewport\" [items]=\"data\" [visibleItems]=\"visibleItems\" calculateContainerHeight>\n <div\n class=\"item\"\n tabindex=\"0\"\n [ngClass]=\"{ 'item-disabled': item.disabled, 'item-selected': (higlightSelectedValue && item.value === selectedItem.value), 'icon-only' : showOnlyIcon }\"\n (click)=\"item.disabled ? null : selectItem(item)\"\n (keyup.enter)=\"item.disabled ? null : selectItem(item)\"\n *cdkVirtualFor=\"let item of searchInput ? searchData : data;\"\n >\n <div class=\"label\" *ngIf=\"!showOnlyIcon\" [ngStyle]=\"{ width: item.icon ? '90%' : '100%', 'display': multiLine ? 'flex': 'inherit', 'flex-direction': multiLine ? 'column': 'inherit' }\">\n <span class=\"primaryText\" [ngStyle]=\"getIconStyles(item.icon, activeItem)\">{{ multiLine ? item.label?.primaryText : item.label }}</span>\n <span class=\"secondaryText\" *ngIf=\"multiLine\" [ngStyle]=\"getIconStyles(item.icon, activeItem)\"> {{ item.label?.secondaryText ? item.label?.secondaryText : additionalInfoMessage }} </span>\n </div>\n <div class=\"icon-container\" *ngIf=\"item.icon\">\n <img class=\"icon\" [src]=\"item.icon\" alt=\"no img\" />\n </div>\n </div>\n </cdk-virtual-scroll-viewport>\n <div class=\"noData\" *ngIf=\"(searchInput ? searchData : data).length === 0\">\n {{ searchInput === \"\" ? noDataMessage : \"No results\" }}\n </div>\n </div>\n </div>\n</ng-template>\n","import { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { DropdownComponent } from \"./dropdown.component\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { ScrollingModule } from \"@angular/cdk-experimental/scrolling\";\nimport { LoaderModule } from \"mis-crystal-design-system/loader\";\nimport { CalculateContainerHeightDirective } from './calculate-container-height.directive';\n\n@NgModule({\n declarations: [DropdownComponent, CalculateContainerHeightDirective],\n imports: [CommonModule, FormsModule, OverlayModule, ScrollingModule,LoaderModule],\n exports: [DropdownComponent]\n})\nexport class DropdownModule {\n static forRoot(): ModuleWithProviders<DropdownModule> {\n return { ngModule: DropdownModule, providers: [] };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i6.CalculateContainerHeightDirective"],"mappings":"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"}
|
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
import * as i1 from '@angular/common';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i2 from '@angular/forms';
|
|
4
|
+
import { UntypedFormArray, UntypedFormGroup, UntypedFormControl, Validators, ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
5
|
+
import * as i0 from '@angular/core';
|
|
6
|
+
import { EventEmitter, Component, Input, Output, NgModule } from '@angular/core';
|
|
7
|
+
import { OverlayModule } from '@angular/cdk/overlay';
|
|
8
|
+
import { ScrollingModule } from '@angular/cdk-experimental/scrolling';
|
|
9
|
+
import * as i3 from 'mis-crystal-design-system/dropdown';
|
|
10
|
+
import { DropdownModule } from 'mis-crystal-design-system/dropdown';
|
|
11
|
+
import * as moment from 'moment';
|
|
12
|
+
import 'moment-timezone';
|
|
13
|
+
import * as i4 from 'mis-crystal-design-system/switch';
|
|
14
|
+
import { SwitchModule } from 'mis-crystal-design-system/switch';
|
|
15
|
+
import * as i5 from 'mis-crystal-design-system/multi-select-dropdown';
|
|
16
|
+
import { MultiSelectDropdownModule } from 'mis-crystal-design-system/multi-select-dropdown';
|
|
17
|
+
import * as i6 from 'mis-crystal-design-system/datepicker_v2';
|
|
18
|
+
import { DatepickerModuleV2 } from 'mis-crystal-design-system/datepicker_v2';
|
|
19
|
+
|
|
20
|
+
class DynamicFormComponent {
|
|
21
|
+
constructor() {
|
|
22
|
+
/**
|
|
23
|
+
* formFields: Dynamic fields recieved from the API metadata to build a dynamic form
|
|
24
|
+
* formValues: Holds the value of the dynamic form with "key" being dynamic field "title"
|
|
25
|
+
* and value being the user input.
|
|
26
|
+
*/
|
|
27
|
+
this.formFields = [];
|
|
28
|
+
this.formValues = {};
|
|
29
|
+
// Need to deprecate these inputs and use constants.
|
|
30
|
+
this.activeBtnIconUrl = "";
|
|
31
|
+
this.calendarIconUrl = "";
|
|
32
|
+
/**
|
|
33
|
+
* formUpdated: Emits formValues Object whenever there is a change in the dynamic form.
|
|
34
|
+
*/
|
|
35
|
+
this.formUpdated = new EventEmitter();
|
|
36
|
+
/**
|
|
37
|
+
* formValid: Emits boolean depending on validity of the form
|
|
38
|
+
*/
|
|
39
|
+
this.formValid = new EventEmitter();
|
|
40
|
+
/**
|
|
41
|
+
* formInitialized: Emits dynamic form API on form initilization
|
|
42
|
+
*/
|
|
43
|
+
this.formInitialized = new EventEmitter();
|
|
44
|
+
}
|
|
45
|
+
ngOnInit() {
|
|
46
|
+
// Building the form
|
|
47
|
+
this.dynamicForm = this.generateDynamicForm(this.formFields, this.formValues);
|
|
48
|
+
// Subscribing to form changes and emiting values.
|
|
49
|
+
this.valueChangesSubscription$ = this.dynamicForm.valueChanges.subscribe(formValue => {
|
|
50
|
+
this.onFormValueChanges();
|
|
51
|
+
});
|
|
52
|
+
//api to expose functions
|
|
53
|
+
this.dynamicFormAPI = {
|
|
54
|
+
defaultFormValues: () => {
|
|
55
|
+
return this.generateDynamicFieldsValueObject(this.dynamicForm.value.dynamicFields);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
this.formInitialized.emit(this.dynamicFormAPI);
|
|
59
|
+
this.formValid.emit(this.dynamicForm.valid);
|
|
60
|
+
}
|
|
61
|
+
ngOnDestroy() {
|
|
62
|
+
var _a;
|
|
63
|
+
(_a = this.valueChangesSubscription$) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
64
|
+
}
|
|
65
|
+
onFormValueChanges() {
|
|
66
|
+
let formValues = this.generateDynamicFieldsValueObject(this.dynamicForm.value.dynamicFields);
|
|
67
|
+
this.formValid.emit(this.dynamicForm.valid);
|
|
68
|
+
this.formUpdated.emit(formValues);
|
|
69
|
+
console.log(formValues);
|
|
70
|
+
}
|
|
71
|
+
generateDynamicFieldsValueObject(formValues) {
|
|
72
|
+
let dynamicFieldsValue = {};
|
|
73
|
+
formValues.forEach((fieldValue, index) => {
|
|
74
|
+
var _a;
|
|
75
|
+
let formattedValue = this.mapFormFieldToFormValue(this.formFields[index], fieldValue.value);
|
|
76
|
+
if (((_a = fieldValue.subFields) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
77
|
+
let formattedSubFieldsValues = {};
|
|
78
|
+
fieldValue.subFields.forEach((subFieldValue, subIndex) => {
|
|
79
|
+
let subFormField = this.formFields[index].subFields[subIndex];
|
|
80
|
+
formattedSubFieldsValues[subFormField.configName] = this.mapFormFieldToFormValue(subFormField, subFieldValue);
|
|
81
|
+
});
|
|
82
|
+
dynamicFieldsValue[this.formFields[index].configName] = {
|
|
83
|
+
value: formattedValue,
|
|
84
|
+
subFields: formattedSubFieldsValues
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
dynamicFieldsValue[this.formFields[index].configName] = formattedValue;
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
return dynamicFieldsValue;
|
|
92
|
+
}
|
|
93
|
+
generateDynamicForm(formFields, formValues) {
|
|
94
|
+
var _a;
|
|
95
|
+
let formArray = new UntypedFormArray([]);
|
|
96
|
+
for (let field of formFields) {
|
|
97
|
+
let fieldValue = ((_a = formValues[field.configName]) === null || _a === void 0 ? void 0 : _a.value) ? formValues[field.configName].value : formValues[field.configName];
|
|
98
|
+
let fieldControl = this.mapFormValueToFormField(field, fieldValue);
|
|
99
|
+
let subFieldsControls = this.generateSubDynamicFields(formValues, field, fieldControl.value);
|
|
100
|
+
formArray.push(new UntypedFormGroup({
|
|
101
|
+
value: fieldControl,
|
|
102
|
+
subFields: subFieldsControls
|
|
103
|
+
}));
|
|
104
|
+
}
|
|
105
|
+
return new UntypedFormGroup({
|
|
106
|
+
dynamicFields: formArray
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
getDynamicFieldsControls() {
|
|
110
|
+
return this.dynamicForm.get("dynamicFields");
|
|
111
|
+
}
|
|
112
|
+
updateSubDynamicFields(field, formGroup, value) {
|
|
113
|
+
var _a;
|
|
114
|
+
if (((_a = field.subFields) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
115
|
+
let subFieldsControls = this.generateSubDynamicFields(this.formValues, field, value);
|
|
116
|
+
formGroup.removeControl('subFields');
|
|
117
|
+
formGroup.addControl('subFields', subFieldsControls);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
updateSelectedValueForSingleSelect(field, control, formGroup, value) {
|
|
121
|
+
var _a;
|
|
122
|
+
if (((_a = control.value) === null || _a === void 0 ? void 0 : _a.value) !== value.value) {
|
|
123
|
+
control.setValue(value);
|
|
124
|
+
}
|
|
125
|
+
else
|
|
126
|
+
control.setValue('');
|
|
127
|
+
this.updateSubDynamicFields(field, formGroup, value);
|
|
128
|
+
control.markAsTouched();
|
|
129
|
+
}
|
|
130
|
+
updateSelectedValueForMultiSelect(field, control, formGroup, values) {
|
|
131
|
+
let selectedValues = control.value;
|
|
132
|
+
for (let value of values) {
|
|
133
|
+
let itemIndex = selectedValues.findIndex(item => item.label === value.label);
|
|
134
|
+
if (itemIndex > -1) {
|
|
135
|
+
selectedValues.splice(itemIndex, 1);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
selectedValues.push(Object.assign({}, value));
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
control.setValue(selectedValues);
|
|
142
|
+
this.updateSubDynamicFields(field, formGroup, values);
|
|
143
|
+
control.markAsTouched();
|
|
144
|
+
}
|
|
145
|
+
isCheckBoxSelected(value, selectedValues) {
|
|
146
|
+
return selectedValues.findIndex(item => item.label === value) > -1;
|
|
147
|
+
}
|
|
148
|
+
findSelectedIndex(subfields, value) {
|
|
149
|
+
const selectedIndex = subfields.findIndex(item => item.parentConfigValue === value);
|
|
150
|
+
return selectedIndex !== -1 ? selectedIndex : 0;
|
|
151
|
+
}
|
|
152
|
+
matchParentConfig(subfields, value) {
|
|
153
|
+
if (!subfields || subfields.length === 0) {
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
return subfields.some(item => item.parentConfigValue === value);
|
|
157
|
+
}
|
|
158
|
+
generateSubDynamicFields(formValues, parentField, parentValue) {
|
|
159
|
+
var _a;
|
|
160
|
+
let controls = new UntypedFormArray([]);
|
|
161
|
+
let subFields = parentField.subFields;
|
|
162
|
+
let subFieldsValues = ((_a = formValues[parentField.configName]) === null || _a === void 0 ? void 0 : _a.subFields) ? formValues[parentField.configName].subFields : {};
|
|
163
|
+
if (!subFields)
|
|
164
|
+
return controls;
|
|
165
|
+
if (parentField.fieldType === 'singleSelect') {
|
|
166
|
+
subFields = subFields.filter((subField) => subField.parentConfigValue === (parentValue === null || parentValue === void 0 ? void 0 : parentValue.value));
|
|
167
|
+
}
|
|
168
|
+
else if (parentField.fieldType === 'multiSelect') {
|
|
169
|
+
let parentValues = new Set(parentValue.map((value) => value.value));
|
|
170
|
+
subFields = subFields.filter((subField) => parentValues.has(subField.parentConfigValue));
|
|
171
|
+
}
|
|
172
|
+
if ((subFields === null || subFields === void 0 ? void 0 : subFields.length) > 0) {
|
|
173
|
+
for (let subField of subFields) {
|
|
174
|
+
controls.push(this.mapFormValueToFormField(subField, subFieldsValues[subField.configName]));
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
return controls;
|
|
178
|
+
}
|
|
179
|
+
mapFormValueToFormField(formField, formValue) {
|
|
180
|
+
let validators = formField.validators ? [dynamicFieldValidator(formField.validators)] : [];
|
|
181
|
+
let control = new UntypedFormControl(null, validators);
|
|
182
|
+
if (formField.fieldType === "input") {
|
|
183
|
+
if (formField.fieldInputType === "text" || formField.fieldInputType === "textarea")
|
|
184
|
+
control.setValue(formValue ? formValue : "");
|
|
185
|
+
else if (formField.fieldInputType === "number")
|
|
186
|
+
control.setValue(formValue ? formValue : 0);
|
|
187
|
+
else if (formField.fieldInputType === "date") {
|
|
188
|
+
if (formValue && typeof formValue === "number") {
|
|
189
|
+
control.setValue(moment(formValue).tz(formField.fieldConfig.timezone).format(formField.fieldConfig.format));
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
control.setValue(moment().tz(formField.fieldConfig.timezone).format(formField.fieldConfig.format));
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
else if (formField.fieldType === "singleSelect") {
|
|
197
|
+
const findSelectedValue = () => {
|
|
198
|
+
let index = formField.itemsList.findIndex(item => item.value === formValue);
|
|
199
|
+
return index >= 0 ? formField.itemsList[index] : "";
|
|
200
|
+
};
|
|
201
|
+
if (formField.fieldInputType === "dropdown") {
|
|
202
|
+
if (!formValue)
|
|
203
|
+
control.setValue(formField.itemsList[0]);
|
|
204
|
+
else
|
|
205
|
+
control.setValue(findSelectedValue());
|
|
206
|
+
}
|
|
207
|
+
else if (formField.fieldInputType === "radio") {
|
|
208
|
+
control.setValue(findSelectedValue());
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
else if (formField.fieldType === "multiSelect") {
|
|
212
|
+
if (formValue && Array.isArray(formValue)) {
|
|
213
|
+
let selectedValues = [];
|
|
214
|
+
for (let value of formValue) {
|
|
215
|
+
let index = formField.itemsList.findIndex(item => item.value === value);
|
|
216
|
+
if (index > -1)
|
|
217
|
+
selectedValues.push(Object.assign({}, formField.itemsList[index]));
|
|
218
|
+
}
|
|
219
|
+
control.setValue(selectedValues);
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
control.setValue([]);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
else if (formField.fieldType === "boolean") {
|
|
226
|
+
control.setValue(!!formValue);
|
|
227
|
+
}
|
|
228
|
+
else
|
|
229
|
+
control.setValue(null);
|
|
230
|
+
return control;
|
|
231
|
+
}
|
|
232
|
+
mapFormFieldToFormValue(formField, formValue) {
|
|
233
|
+
var _a;
|
|
234
|
+
if (formField.fieldType === "input") {
|
|
235
|
+
if (formField.fieldInputType === "text" || formField.fieldInputType === "textarea")
|
|
236
|
+
return formValue;
|
|
237
|
+
else if (formField.fieldInputType === "number")
|
|
238
|
+
return +formValue;
|
|
239
|
+
else if (formField.fieldInputType === "date") {
|
|
240
|
+
return moment.tz(formValue, formField.fieldConfig.format, formField.fieldConfig.timezone).valueOf();
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
else if (formField.fieldType === "singleSelect") {
|
|
244
|
+
return (_a = formValue === null || formValue === void 0 ? void 0 : formValue.value) !== null && _a !== void 0 ? _a : '';
|
|
245
|
+
}
|
|
246
|
+
else if (formField.fieldType === "multiSelect") {
|
|
247
|
+
return formValue === null || formValue === void 0 ? void 0 : formValue.map(item => item.value);
|
|
248
|
+
}
|
|
249
|
+
else if (formField.fieldType === "boolean") {
|
|
250
|
+
return formValue;
|
|
251
|
+
}
|
|
252
|
+
else
|
|
253
|
+
return formValue;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
DynamicFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DynamicFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
257
|
+
DynamicFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DynamicFormComponent, selector: "mis-dynamic-form", inputs: { formFields: "formFields", formValues: "formValues", activeBtnIconUrl: "activeBtnIconUrl", calendarIconUrl: "calendarIconUrl" }, outputs: { formUpdated: "formUpdated", formValid: "formValid", formInitialized: "formInitialized" }, ngImport: i0, 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"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i3.DropdownComponent, selector: "mis-dropdown", inputs: ["data", "height", "width", "label", "itemSizeForCdk", "showOnlyIcon", "higlightSelectedValue", "dropdownListHeight", "dropdownListWidth", "dropdownListPosition", "config", "searchEnabled", "selectedItem", "noDataMessage", "multiLine", "additionalInfoMessage", "scrollIntoView", "searchLabel", "customStyles", "activeItem"], outputs: ["onChange"] }, { kind: "component", type: i4.SwitchComponent, selector: "mis-switch", inputs: ["mobileView", "checked", "disabled", "control"], outputs: ["valueChanged"] }, { kind: "component", type: i5.MultiSelectDropdownComponent, selector: "mis-multi-select-dropdown", inputs: ["data", "label", "height", "width", "dropdownListHeight", "dropdownListWidth", "dropdownListPosition", "enableSelectAll", "searchEnabled", "showSelectedCount", "noDataMessage", "options", "selectedItems", "hideApplyButton", "customLabelTemplate"], outputs: ["onChange"] }, { kind: "directive", type: i6.TzDatepickerDirective, selector: "input[misTzDp]", inputs: ["dpConfig", "selectedDate", "datesDisabled", "dateMessages", "positionX", "positionY", "offsetX", "offsetY", "allowBookingOnDisabledDay", "disableBoxShadow", "disableOverLay", "openElement"], outputs: ["dateChange"] }, { kind: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }] });
|
|
258
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DynamicFormComponent, decorators: [{
|
|
259
|
+
type: Component,
|
|
260
|
+
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"] }]
|
|
261
|
+
}], ctorParameters: function () { return []; }, propDecorators: { formFields: [{
|
|
262
|
+
type: Input
|
|
263
|
+
}], formValues: [{
|
|
264
|
+
type: Input
|
|
265
|
+
}], activeBtnIconUrl: [{
|
|
266
|
+
type: Input
|
|
267
|
+
}], calendarIconUrl: [{
|
|
268
|
+
type: Input
|
|
269
|
+
}], formUpdated: [{
|
|
270
|
+
type: Output
|
|
271
|
+
}], formValid: [{
|
|
272
|
+
type: Output
|
|
273
|
+
}], formInitialized: [{
|
|
274
|
+
type: Output
|
|
275
|
+
}] } });
|
|
276
|
+
const dynamicFieldValidator = (validators) => {
|
|
277
|
+
return (control) => {
|
|
278
|
+
let value = control.value;
|
|
279
|
+
if (Array.isArray(value)) {
|
|
280
|
+
return null;
|
|
281
|
+
}
|
|
282
|
+
else if (typeof value === 'object') {
|
|
283
|
+
value = (value === null || value === void 0 ? void 0 : value.value) ? value.value : '';
|
|
284
|
+
}
|
|
285
|
+
let errors = null;
|
|
286
|
+
validators.forEach((validator) => {
|
|
287
|
+
let error = null;
|
|
288
|
+
let message = validator.message;
|
|
289
|
+
switch (validator.type) {
|
|
290
|
+
case "Required":
|
|
291
|
+
error = Validators.required(control);
|
|
292
|
+
if (error)
|
|
293
|
+
error = { Required: message };
|
|
294
|
+
break;
|
|
295
|
+
case "MinLength":
|
|
296
|
+
error = Validators.minLength(+validator.value)(control);
|
|
297
|
+
message = message.replace('${0}', error === null || error === void 0 ? void 0 : error.minlength.requiredLength);
|
|
298
|
+
if (error)
|
|
299
|
+
error = { MinLength: message };
|
|
300
|
+
break;
|
|
301
|
+
case "MaxLength":
|
|
302
|
+
error = Validators.maxLength(+validator.value)(control);
|
|
303
|
+
message = message.replace('${0}', error === null || error === void 0 ? void 0 : error.actualLength);
|
|
304
|
+
if (error)
|
|
305
|
+
error = { MaxLength: message };
|
|
306
|
+
break;
|
|
307
|
+
case "Email":
|
|
308
|
+
error = Validators.email(control);
|
|
309
|
+
if (error)
|
|
310
|
+
error = { Email: message };
|
|
311
|
+
break;
|
|
312
|
+
case "Custom":
|
|
313
|
+
error = Validators.pattern(`${validator.value}`)(control);
|
|
314
|
+
if (error)
|
|
315
|
+
error = { Custom: message };
|
|
316
|
+
break;
|
|
317
|
+
default:
|
|
318
|
+
break;
|
|
319
|
+
}
|
|
320
|
+
if (error)
|
|
321
|
+
errors = Object.assign(Object.assign({}, errors), error);
|
|
322
|
+
});
|
|
323
|
+
return errors;
|
|
324
|
+
};
|
|
325
|
+
};
|
|
326
|
+
|
|
327
|
+
class DynamicFormModule {
|
|
328
|
+
static forRoot() {
|
|
329
|
+
return { ngModule: DynamicFormModule, providers: [] };
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
DynamicFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DynamicFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
333
|
+
DynamicFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: DynamicFormModule, declarations: [DynamicFormComponent], imports: [CommonModule,
|
|
334
|
+
ReactiveFormsModule,
|
|
335
|
+
FormsModule,
|
|
336
|
+
OverlayModule,
|
|
337
|
+
ScrollingModule,
|
|
338
|
+
DropdownModule,
|
|
339
|
+
SwitchModule,
|
|
340
|
+
MultiSelectDropdownModule,
|
|
341
|
+
DatepickerModuleV2], exports: [DynamicFormComponent] });
|
|
342
|
+
DynamicFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DynamicFormModule, imports: [CommonModule,
|
|
343
|
+
ReactiveFormsModule,
|
|
344
|
+
FormsModule,
|
|
345
|
+
OverlayModule,
|
|
346
|
+
ScrollingModule,
|
|
347
|
+
DropdownModule,
|
|
348
|
+
SwitchModule,
|
|
349
|
+
MultiSelectDropdownModule,
|
|
350
|
+
DatepickerModuleV2] });
|
|
351
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DynamicFormModule, decorators: [{
|
|
352
|
+
type: NgModule,
|
|
353
|
+
args: [{
|
|
354
|
+
declarations: [DynamicFormComponent],
|
|
355
|
+
imports: [
|
|
356
|
+
CommonModule,
|
|
357
|
+
ReactiveFormsModule,
|
|
358
|
+
FormsModule,
|
|
359
|
+
OverlayModule,
|
|
360
|
+
ScrollingModule,
|
|
361
|
+
DropdownModule,
|
|
362
|
+
SwitchModule,
|
|
363
|
+
MultiSelectDropdownModule,
|
|
364
|
+
DatepickerModuleV2
|
|
365
|
+
],
|
|
366
|
+
exports: [DynamicFormComponent]
|
|
367
|
+
}]
|
|
368
|
+
}] });
|
|
369
|
+
|
|
370
|
+
/**
|
|
371
|
+
* Generated bundle index. Do not edit.
|
|
372
|
+
*/
|
|
373
|
+
|
|
374
|
+
export { DynamicFormComponent, DynamicFormModule };
|
|
375
|
+
//# sourceMappingURL=mis-crystal-design-system-dynamic-form.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mis-crystal-design-system-dynamic-form.mjs","sources":["../../../projects/mis-components/dynamic-form/dynamic-form.component.ts","../../../projects/mis-components/dynamic-form/dynamic-form.component.html","../../../projects/mis-components/dynamic-form/dynamic-form.module.ts","../../../projects/mis-components/dynamic-form/mis-crystal-design-system-dynamic-form.ts"],"sourcesContent":["import { Component, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\nimport { NsDynamicForm } from \"./dynamic-form.namespace\";\nimport { AbstractControl, UntypedFormArray, UntypedFormControl, UntypedFormGroup, ValidationErrors, ValidatorFn, Validators } from \"@angular/forms\";\n\nimport * as moment from \"moment\";\nimport \"moment-timezone\";\nimport { Subscription } from \"rxjs\";\n\n@Component({\n selector: \"mis-dynamic-form\",\n templateUrl: \"./dynamic-form.component.html\",\n styleUrls: [\"./dynamic-form.component.scss\"]\n})\nexport class DynamicFormComponent implements OnInit, OnDestroy {\n /**\n * formFields: Dynamic fields recieved from the API metadata to build a dynamic form\n * formValues: Holds the value of the dynamic form with \"key\" being dynamic field \"title\"\n * and value being the user input.\n */\n @Input() formFields: Array<NsDynamicForm.IDynamicField> = [];\n @Input() formValues: { [key: string]: any } = {};\n // Need to deprecate these inputs and use constants.\n @Input() activeBtnIconUrl = \"\";\n @Input() calendarIconUrl = \"\";\n /**\n * dynamicForm: Constructed using formFields and formValues(in case of edit)\n */\n dynamicForm: UntypedFormGroup;\n\n /**\n * formUpdated: Emits formValues Object whenever there is a change in the dynamic form.\n */\n @Output() formUpdated = new EventEmitter<{ [key: string]: any }>();\n /**\n * formValid: Emits boolean depending on validity of the form\n */\n @Output() formValid = new EventEmitter<boolean>();\n /**\n * formInitialized: Emits dynamic form API on form initilization\n */\n @Output() formInitialized = new EventEmitter<any>();\n\n dynamicFormAPI: NsDynamicForm.IDynamicFormAPI;\n valueChangesSubscription$: Subscription;\n\n constructor() {}\n\n ngOnInit(): void {\n // Building the form\n this.dynamicForm = this.generateDynamicForm(this.formFields, this.formValues);\n\n // Subscribing to form changes and emiting values.\n this.valueChangesSubscription$ = this.dynamicForm.valueChanges.subscribe(formValue => {\n this.onFormValueChanges();\n });\n\n //api to expose functions\n this.dynamicFormAPI = {\n defaultFormValues: () => {\n return this.generateDynamicFieldsValueObject(this.dynamicForm.value.dynamicFields);\n }\n };\n this.formInitialized.emit(this.dynamicFormAPI);\n this.formValid.emit(this.dynamicForm.valid);\n }\n ngOnDestroy(): void {\n this.valueChangesSubscription$?.unsubscribe();\n }\n onFormValueChanges(): void {\n let formValues = this.generateDynamicFieldsValueObject(this.dynamicForm.value.dynamicFields);\n this.formValid.emit(this.dynamicForm.valid);\n this.formUpdated.emit(formValues);\n console.log(formValues)\n }\n generateDynamicFieldsValueObject(formValues: Array<any>): { [key: string]: any } {\n let dynamicFieldsValue = {};\n formValues.forEach((fieldValue, index) => {\n let formattedValue = this.mapFormFieldToFormValue(this.formFields[index], fieldValue.value);\n if (fieldValue.subFields?.length > 0) {\n let formattedSubFieldsValues = {}\n fieldValue.subFields.forEach((subFieldValue, subIndex) => {\n let subFormField = this.formFields[index].subFields[subIndex]\n formattedSubFieldsValues[subFormField.configName] = this.mapFormFieldToFormValue(subFormField, subFieldValue)\n })\n dynamicFieldsValue[this.formFields[index].configName] = {\n value: formattedValue,\n subFields: formattedSubFieldsValues\n }\n }\n else {\n dynamicFieldsValue[this.formFields[index].configName] = formattedValue;\n }\n });\n return dynamicFieldsValue;\n }\n generateDynamicForm(\n formFields: Array<NsDynamicForm.IDynamicField>,\n formValues: { [key: string]: any }\n ): UntypedFormGroup {\n let formArray = new UntypedFormArray([])\n\n for (let field of formFields) {\n let fieldValue = formValues[field.configName]?.value ? formValues[field.configName].value : formValues[field.configName]\n let fieldControl = this.mapFormValueToFormField(field, fieldValue);\n let subFieldsControls = this.generateSubDynamicFields(formValues, field, fieldControl.value);\n formArray.push(new UntypedFormGroup({\n value: fieldControl,\n subFields: subFieldsControls\n }))\n } \n return new UntypedFormGroup({\n dynamicFields: formArray\n })\n }\n \n getDynamicFieldsControls(): UntypedFormArray {\n return this.dynamicForm.get(\"dynamicFields\") as UntypedFormArray;\n }\n updateSubDynamicFields(\n field: NsDynamicForm.IDynamicField,\n formGroup: UntypedFormGroup,\n value: any\n ): void {\n if (field.subFields?.length > 0) {\n let subFieldsControls = this.generateSubDynamicFields(this.formValues, field, value);\n formGroup.removeControl('subFields')\n formGroup.addControl('subFields', subFieldsControls)\n }\n }\n updateSelectedValueForSingleSelect(\n field: NsDynamicForm.IDynamicField,\n control: UntypedFormControl,\n formGroup: UntypedFormGroup,\n value: any\n ): void {\n if (control.value?.value !== value.value) {\n control.setValue(value);\n }\n else control.setValue('');\n this.updateSubDynamicFields(field, formGroup, value);\n control.markAsTouched();\n }\n updateSelectedValueForMultiSelect(\n field: NsDynamicForm.IDynamicField,\n control: UntypedFormControl,\n formGroup: UntypedFormGroup,\n values: Array<any>\n ): void {\n let selectedValues: Array<{ label: string; value: any }> = control.value;\n for (let value of values) {\n let itemIndex = selectedValues.findIndex(item => item.label === value.label);\n if (itemIndex > -1) {\n selectedValues.splice(itemIndex, 1);\n } else {\n selectedValues.push({ ...value });\n }\n }\n control.setValue(selectedValues);\n this.updateSubDynamicFields(field, formGroup, values);\n control.markAsTouched();\n }\n isCheckBoxSelected(value: string, selectedValues: Array<{ label: string; value: string }>): boolean {\n return selectedValues.findIndex(item => item.label === value) > -1;\n }\n\n findSelectedIndex(subfields, value) {\n const selectedIndex = subfields.findIndex(item => item.parentConfigValue === value);\n return selectedIndex !== -1 ? selectedIndex : 0;\n }\n\n matchParentConfig(subfields, value) {\n if (!subfields || subfields.length === 0) {\n return false;\n }\n return subfields.some(item => item.parentConfigValue === value);\n }\n\n generateSubDynamicFields(\n formValues: any,\n parentField: NsDynamicForm.IDynamicField,\n parentValue: Array<{ label: string, value: string | number }> | {label: string, value: string } | string | number | boolean\n ): UntypedFormArray {\n let controls = new UntypedFormArray([])\n let subFields = parentField.subFields\n let subFieldsValues = formValues[parentField.configName]?.subFields ? formValues[parentField.configName].subFields : {}\n if(!subFields) return controls;\n if (parentField.fieldType === 'singleSelect') {\n subFields = subFields.filter((subField) => subField.parentConfigValue === (<{label: string, value: string }>parentValue)?.value);\n }\n else if (parentField.fieldType === 'multiSelect') {\n let parentValues = new Set((<Array<{ label: string, value: string | number }>>parentValue).map((value) => value.value));\n subFields = subFields.filter((subField) => parentValues.has(subField.parentConfigValue));\n }\n\n if (subFields?.length > 0) {\n for (let subField of subFields) {\n controls.push(this.mapFormValueToFormField(subField, subFieldsValues[subField.configName]))\n }\n }\n return controls;\n }\n mapFormValueToFormField(formField: NsDynamicForm.IDynamicField, formValue: any): any {\n let validators = formField.validators ? [dynamicFieldValidator(formField.validators)]: []\n let control = new UntypedFormControl(null, validators);\n\n if (formField.fieldType === \"input\") {\n if (formField.fieldInputType === \"text\" || formField.fieldInputType === \"textarea\") control.setValue(formValue ? formValue : \"\");\n else if (formField.fieldInputType === \"number\") control.setValue(formValue ? formValue : 0);\n else if (formField.fieldInputType === \"date\") {\n if (formValue && typeof formValue === \"number\") {\n control.setValue(moment(formValue).tz(formField.fieldConfig.timezone).format(formField.fieldConfig.format));\n } else {\n control.setValue(moment().tz(formField.fieldConfig.timezone).format(formField.fieldConfig.format));\n }\n }\n } else if (formField.fieldType === \"singleSelect\") {\n const findSelectedValue = () => {\n let index = formField.itemsList.findIndex(item => item.value === formValue)\n return index >= 0 ? formField.itemsList[index]: \"\";\n }\n if (formField.fieldInputType === \"dropdown\") {\n if (!formValue) control.setValue(formField.itemsList[0]);\n else control.setValue(findSelectedValue())\n }\n else if (formField.fieldInputType === \"radio\") {\n control.setValue(findSelectedValue())\n }\n } else if (formField.fieldType === \"multiSelect\") {\n if (formValue && Array.isArray(formValue)) {\n let selectedValues = [];\n for (let value of formValue) {\n let index = formField.itemsList.findIndex(item => item.value === value);\n if (index > -1) selectedValues.push({ ...formField.itemsList[index] });\n }\n control.setValue(selectedValues);\n } else {\n control.setValue([]);\n }\n } else if (formField.fieldType === \"boolean\") {\n control.setValue(!!formValue);\n } else control.setValue(null);\n return control;\n }\n mapFormFieldToFormValue(formField: NsDynamicForm.IDynamicField, formValue: any): any {\n if (formField.fieldType === \"input\") {\n if (formField.fieldInputType === \"text\" || formField.fieldInputType === \"textarea\") return formValue;\n else if (formField.fieldInputType === \"number\") return +formValue;\n else if (formField.fieldInputType === \"date\") {\n return moment.tz(formValue, formField.fieldConfig.format, formField.fieldConfig.timezone).valueOf();\n }\n } else if (formField.fieldType === \"singleSelect\") {\n return formValue?.value ?? '';\n } else if (formField.fieldType === \"multiSelect\") {\n return formValue?.map(item => item.value);\n } else if (formField.fieldType === \"boolean\") {\n return formValue;\n } else return formValue;\n }\n}\n\nexport const dynamicFieldValidator = (validators: Array<NsDynamicForm.IDynamicFieldValidator>): ValidatorFn => {\n return (control: AbstractControl): ValidationErrors | null => {\n let value = control.value\n if (Array.isArray(value)) {\n return null;\n }\n else if (typeof value === 'object') {\n value = value?.value ? value.value : ''\n }\n let errors = null\n\n validators.forEach((validator) => {\n let error = null\n let message = validator.message\n switch (validator.type) {\n case \"Required\":\n error = Validators.required(control)\n if(error) error = {Required: message}\n break;\n case \"MinLength\":\n error = Validators.minLength(+validator.value)(control)\n message = message.replace('${0}', error?.minlength.requiredLength)\n if(error) error = { MinLength: message }\n break;\n case \"MaxLength\":\n error = Validators.maxLength(+validator.value)(control)\n message = message.replace('${0}', error?.actualLength)\n if(error) error = { MaxLength: message }\n break;\n case \"Email\":\n error = Validators.email(control)\n if(error) error = {Email: message}\n break;\n case \"Custom\":\n error = Validators.pattern(`${validator.value}`)(control)\n if(error) error = {Custom: message}\n break;\n default:\n break;\n }\n if (error) errors = { ...errors, ...error }\n })\n return errors\n }\n}","<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 {{\" • \" + error.value}}\n </p>\n <div style=\"flex-basis: 100%; height: 0\"></div>\n </ng-container>\n </div>\n</ng-template>","import { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { ScrollingModule } from \"@angular/cdk-experimental/scrolling\";\nimport { DropdownModule } from \"mis-crystal-design-system/dropdown\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { DynamicFormComponent } from \"./dynamic-form.component\";\nimport { SwitchModule } from \"mis-crystal-design-system/switch\";\nimport { MultiSelectDropdownModule } from \"mis-crystal-design-system/multi-select-dropdown\";\nimport { DatepickerModuleV2 } from \"mis-crystal-design-system/datepicker_v2\";\n\n@NgModule({\n declarations: [DynamicFormComponent],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n OverlayModule,\n ScrollingModule,\n DropdownModule,\n SwitchModule,\n MultiSelectDropdownModule,\n DatepickerModuleV2\n ],\n exports: [DynamicFormComponent]\n})\nexport class DynamicFormModule {\n static forRoot(): ModuleWithProviders<DynamicFormModule> {\n return { ngModule: DynamicFormModule, providers: [] };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|