@wavemaker-ai/app-ng-runtime 12.0.0-rc.335 → 12.0.1-rc.338
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/build-task/bundles/index.umd.js +15 -16
- package/build-task/fesm2022/index.mjs +15 -16
- package/build-task/fesm2022/index.mjs.map +1 -1
- package/components/advanced/carousel/bundles/index.umd.js +9 -9
- package/components/advanced/carousel/fesm2022/index.mjs +9 -9
- package/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
- package/components/advanced/carousel/types/index.d.ts +7 -7
- package/components/advanced/custom/bundles/index.umd.js +9 -10
- package/components/advanced/custom/fesm2022/index.mjs +9 -10
- package/components/advanced/custom/fesm2022/index.mjs.map +1 -1
- package/components/advanced/custom/types/index.d.ts +3 -3
- package/components/advanced/login/bundles/index.umd.js +3 -3
- package/components/advanced/login/fesm2022/index.mjs +3 -3
- package/components/advanced/login/fesm2022/index.mjs.map +1 -1
- package/components/advanced/login/types/index.d.ts +1 -1
- package/components/advanced/marquee/bundles/index.umd.js +3 -3
- package/components/advanced/marquee/fesm2022/index.mjs +3 -3
- package/components/advanced/marquee/fesm2022/index.mjs.map +1 -1
- package/components/advanced/marquee/types/index.d.ts +1 -1
- package/components/base/bundles/index.umd.js +40 -46
- package/components/base/fesm2022/index.mjs +40 -46
- package/components/base/fesm2022/index.mjs.map +1 -1
- package/components/base/types/index.d.ts +47 -46
- package/components/basic/anchor/bundles/index.umd.js +3 -3
- package/components/basic/anchor/fesm2022/index.mjs +3 -3
- package/components/basic/anchor/fesm2022/index.mjs.map +1 -1
- package/components/basic/anchor/types/index.d.ts +3 -3
- package/components/basic/audio/bundles/index.umd.js +3 -3
- package/components/basic/audio/fesm2022/index.mjs +3 -3
- package/components/basic/audio/fesm2022/index.mjs.map +1 -1
- package/components/basic/audio/types/index.d.ts +1 -1
- package/components/basic/html/bundles/index.umd.js +10 -11
- package/components/basic/html/fesm2022/index.mjs +10 -11
- package/components/basic/html/fesm2022/index.mjs.map +1 -1
- package/components/basic/html/types/index.d.ts +3 -3
- package/components/basic/icon/bundles/index.umd.js +3 -3
- package/components/basic/icon/fesm2022/index.mjs +3 -3
- package/components/basic/icon/fesm2022/index.mjs.map +1 -1
- package/components/basic/icon/types/index.d.ts +1 -1
- package/components/basic/iframe/bundles/index.umd.js +5 -5
- package/components/basic/iframe/fesm2022/index.mjs +5 -5
- package/components/basic/iframe/fesm2022/index.mjs.map +1 -1
- package/components/basic/iframe/types/index.d.ts +3 -3
- package/components/basic/label/bundles/index.umd.js +10 -11
- package/components/basic/label/fesm2022/index.mjs +10 -11
- package/components/basic/label/fesm2022/index.mjs.map +1 -1
- package/components/basic/label/types/index.d.ts +1 -1
- package/components/basic/picture/bundles/index.umd.js +3 -3
- package/components/basic/picture/fesm2022/index.mjs +3 -3
- package/components/basic/picture/fesm2022/index.mjs.map +1 -1
- package/components/basic/picture/types/index.d.ts +2 -2
- package/components/basic/progress/progress-bar/bundles/index.umd.js +8 -10
- package/components/basic/progress/progress-bar/fesm2022/index.mjs +8 -10
- package/components/basic/progress/progress-bar/fesm2022/index.mjs.map +1 -1
- package/components/basic/progress/progress-bar/types/index.d.ts +2 -2
- package/components/basic/progress/progress-circle/bundles/index.umd.js +3 -3
- package/components/basic/progress/progress-circle/fesm2022/index.mjs +3 -3
- package/components/basic/progress/progress-circle/fesm2022/index.mjs.map +1 -1
- package/components/basic/progress/progress-circle/types/index.d.ts +2 -2
- package/components/basic/rich-text-editor/bundles/index.umd.js +3 -3
- package/components/basic/rich-text-editor/fesm2022/index.mjs +3 -3
- package/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
- package/components/basic/rich-text-editor/types/index.d.ts +3 -3
- package/components/basic/search/bundles/index.umd.js +40 -42
- package/components/basic/search/fesm2022/index.mjs +40 -42
- package/components/basic/search/fesm2022/index.mjs.map +1 -1
- package/components/basic/search/types/index.d.ts +13 -13
- package/components/basic/spinner/bundles/index.umd.js +3 -3
- package/components/basic/spinner/fesm2022/index.mjs +3 -3
- package/components/basic/spinner/fesm2022/index.mjs.map +1 -1
- package/components/basic/spinner/types/index.d.ts +3 -3
- package/components/basic/tree/bundles/index.umd.js +9 -9
- package/components/basic/tree/fesm2022/index.mjs +9 -9
- package/components/basic/tree/fesm2022/index.mjs.map +1 -1
- package/components/basic/tree/types/index.d.ts +7 -7
- package/components/basic/video/bundles/index.umd.js +3 -3
- package/components/basic/video/fesm2022/index.mjs +3 -3
- package/components/basic/video/fesm2022/index.mjs.map +1 -1
- package/components/basic/video/types/index.d.ts +2 -2
- package/components/chart/bundles/index.umd.js +19 -22
- package/components/chart/fesm2022/index.mjs +20 -23
- package/components/chart/fesm2022/index.mjs.map +1 -1
- package/components/chart/types/index.d.ts +9 -9
- package/components/containers/accordion/bundles/index.umd.js +10 -12
- package/components/containers/accordion/fesm2022/index.mjs +10 -12
- package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
- package/components/containers/accordion/types/index.d.ts +9 -9
- package/components/containers/layout-grid/bundles/index.umd.js +9 -9
- package/components/containers/layout-grid/fesm2022/index.mjs +9 -9
- package/components/containers/layout-grid/fesm2022/index.mjs.map +1 -1
- package/components/containers/layout-grid/types/index.d.ts +4 -4
- package/components/containers/linear-layout/bundles/index.umd.js +6 -6
- package/components/containers/linear-layout/fesm2022/index.mjs +6 -6
- package/components/containers/linear-layout/fesm2022/index.mjs.map +1 -1
- package/components/containers/linear-layout/types/index.d.ts +2 -2
- package/components/containers/panel/bundles/index.umd.js +3 -3
- package/components/containers/panel/fesm2022/index.mjs +3 -3
- package/components/containers/panel/fesm2022/index.mjs.map +1 -1
- package/components/containers/panel/types/index.d.ts +3 -3
- package/components/containers/tabs/bundles/index.umd.js +9 -9
- package/components/containers/tabs/fesm2022/index.mjs +9 -9
- package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- package/components/containers/tabs/types/index.d.ts +8 -8
- package/components/containers/tile/bundles/index.umd.js +3 -3
- package/components/containers/tile/fesm2022/index.mjs +3 -3
- package/components/containers/tile/fesm2022/index.mjs.map +1 -1
- package/components/containers/tile/types/index.d.ts +1 -1
- package/components/containers/wizard/bundles/index.umd.js +18 -18
- package/components/containers/wizard/fesm2022/index.mjs +18 -18
- package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- package/components/containers/wizard/types/index.d.ts +8 -8
- package/components/data/card/bundles/index.umd.js +12 -12
- package/components/data/card/fesm2022/index.mjs +12 -12
- package/components/data/card/fesm2022/index.mjs.map +1 -1
- package/components/data/card/types/index.d.ts +6 -6
- package/components/data/form/bundles/index.umd.js +72 -75
- package/components/data/form/fesm2022/index.mjs +72 -77
- package/components/data/form/fesm2022/index.mjs.map +1 -1
- package/components/data/form/types/index.d.ts +29 -29
- package/components/data/list/bundles/index.umd.js +22 -27
- package/components/data/list/fesm2022/index.mjs +22 -27
- package/components/data/list/fesm2022/index.mjs.map +1 -1
- package/components/data/list/types/index.d.ts +23 -23
- package/components/data/live-table/bundles/index.umd.js +3 -3
- package/components/data/live-table/fesm2022/index.mjs +3 -3
- package/components/data/live-table/fesm2022/index.mjs.map +1 -1
- package/components/data/live-table/types/index.d.ts +5 -5
- package/components/data/pagination/bundles/index.umd.js +27 -28
- package/components/data/pagination/fesm2022/index.mjs +27 -28
- package/components/data/pagination/fesm2022/index.mjs.map +1 -1
- package/components/data/pagination/types/index.d.ts +1 -1
- package/components/data/table/bundles/index.umd.js +131 -142
- package/components/data/table/fesm2022/index.mjs +131 -143
- package/components/data/table/fesm2022/index.mjs.map +1 -1
- package/components/data/table/types/index.d.ts +20 -20
- package/components/dialogs/alert-dialog/bundles/index.umd.js +3 -3
- package/components/dialogs/alert-dialog/fesm2022/index.mjs +3 -3
- package/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/alert-dialog/types/index.d.ts +1 -1
- package/components/dialogs/confirm-dialog/bundles/index.umd.js +3 -3
- package/components/dialogs/confirm-dialog/fesm2022/index.mjs +3 -3
- package/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/confirm-dialog/types/index.d.ts +1 -1
- package/components/dialogs/default/bundles/index.umd.js +12 -12
- package/components/dialogs/default/fesm2022/index.mjs +12 -12
- package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/default/types/index.d.ts +3 -3
- package/components/dialogs/design-dialog/bundles/index.umd.js +3 -3
- package/components/dialogs/design-dialog/fesm2022/index.mjs +3 -3
- package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/design-dialog/types/index.d.ts +1 -1
- package/components/dialogs/iframe-dialog/bundles/index.umd.js +3 -3
- package/components/dialogs/iframe-dialog/fesm2022/index.mjs +3 -3
- package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/iframe-dialog/types/index.d.ts +1 -1
- package/components/dialogs/login-dialog/bundles/index.umd.js +3 -3
- package/components/dialogs/login-dialog/fesm2022/index.mjs +3 -3
- package/components/dialogs/login-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/login-dialog/types/index.d.ts +2 -2
- package/components/dialogs/partial-dialog/bundles/index.umd.js +3 -3
- package/components/dialogs/partial-dialog/fesm2022/index.mjs +3 -3
- package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/partial-dialog/types/index.d.ts +1 -1
- package/components/input/base-form/bundles/index.umd.js +4 -4
- package/components/input/base-form/fesm2022/index.mjs +4 -4
- package/components/input/base-form/fesm2022/index.mjs.map +1 -1
- package/components/input/base-form-custom/bundles/index.umd.js +3 -3
- package/components/input/base-form-custom/fesm2022/index.mjs +3 -3
- package/components/input/button/bundles/index.umd.js +3 -3
- package/components/input/button/fesm2022/index.mjs +3 -3
- package/components/input/button/fesm2022/index.mjs.map +1 -1
- package/components/input/button/types/index.d.ts +1 -1
- package/components/input/button-group/bundles/index.umd.js +3 -3
- package/components/input/button-group/fesm2022/index.mjs +3 -3
- package/components/input/button-group/fesm2022/index.mjs.map +1 -1
- package/components/input/button-group/types/index.d.ts +1 -1
- package/components/input/calendar/bundles/index.umd.js +4 -4
- package/components/input/calendar/fesm2022/index.mjs +4 -5
- package/components/input/calendar/fesm2022/index.mjs.map +1 -1
- package/components/input/calendar/types/index.d.ts +9 -9
- package/components/input/caption-position/bundles/index.umd.js +5 -5
- package/components/input/caption-position/fesm2022/index.mjs +5 -5
- package/components/input/caption-position/fesm2022/index.mjs.map +1 -1
- package/components/input/caption-position/types/index.d.ts +4 -4
- package/components/input/checkbox/bundles/index.umd.js +3 -3
- package/components/input/checkbox/fesm2022/index.mjs +3 -3
- package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
- package/components/input/checkbox/types/index.d.ts +2 -2
- package/components/input/checkboxset/bundles/index.umd.js +4 -4
- package/components/input/checkboxset/fesm2022/index.mjs +4 -4
- package/components/input/checkboxset/fesm2022/index.mjs.map +1 -1
- package/components/input/checkboxset/types/index.d.ts +2 -2
- package/components/input/chips/bundles/index.umd.js +5 -5
- package/components/input/chips/fesm2022/index.mjs +5 -5
- package/components/input/chips/fesm2022/index.mjs.map +1 -1
- package/components/input/chips/types/index.d.ts +14 -14
- package/components/input/color-picker/bundles/index.umd.js +3 -3
- package/components/input/color-picker/fesm2022/index.mjs +3 -3
- package/components/input/color-picker/fesm2022/index.mjs.map +1 -1
- package/components/input/color-picker/types/index.d.ts +2 -2
- package/components/input/composite/bundles/index.umd.js +3 -3
- package/components/input/composite/fesm2022/index.mjs +3 -3
- package/components/input/composite/fesm2022/index.mjs.map +1 -1
- package/components/input/composite/types/index.d.ts +1 -1
- package/components/input/currency/bundles/index.umd.js +3 -3
- package/components/input/currency/fesm2022/index.mjs +3 -3
- package/components/input/currency/fesm2022/index.mjs.map +1 -1
- package/components/input/currency/types/index.d.ts +3 -3
- package/components/input/dataset-aware-form/bundles/index.umd.js +7 -7
- package/components/input/dataset-aware-form/fesm2022/index.mjs +7 -7
- package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -1
- package/components/input/dataset-aware-form/types/index.d.ts +1 -1
- package/components/input/epoch/base-date-time/bundles/index.umd.js +10 -15
- package/components/input/epoch/base-date-time/fesm2022/index.mjs +10 -15
- package/components/input/epoch/base-date-time/fesm2022/index.mjs.map +1 -1
- package/components/input/epoch/base-date-time/types/index.d.ts +2 -2
- package/components/input/epoch/date/bundles/index.umd.js +5 -5
- package/components/input/epoch/date/fesm2022/index.mjs +5 -5
- package/components/input/epoch/date/fesm2022/index.mjs.map +1 -1
- package/components/input/epoch/date/types/index.d.ts +4 -4
- package/components/input/epoch/date-time/bundles/index.umd.js +3 -3
- package/components/input/epoch/date-time/fesm2022/index.mjs +3 -3
- package/components/input/epoch/date-time/fesm2022/index.mjs.map +1 -1
- package/components/input/epoch/date-time/types/index.d.ts +8 -8
- package/components/input/epoch/date-time-picker/bundles/index.umd.js +8 -8
- package/components/input/epoch/date-time-picker/fesm2022/index.mjs +8 -8
- package/components/input/epoch/date-time-picker/fesm2022/index.mjs.map +1 -1
- package/components/input/epoch/date-time-picker/types/index.d.ts +6 -7
- package/components/input/epoch/picker/bundles/index.umd.js +6 -6
- package/components/input/epoch/picker/fesm2022/index.mjs +6 -6
- package/components/input/epoch/picker/fesm2022/index.mjs.map +1 -1
- package/components/input/epoch/time/bundles/index.umd.js +4 -5
- package/components/input/epoch/time/fesm2022/index.mjs +5 -6
- package/components/input/epoch/time/fesm2022/index.mjs.map +1 -1
- package/components/input/epoch/time/types/index.d.ts +4 -4
- package/components/input/file-upload/bundles/index.umd.js +4 -4
- package/components/input/file-upload/fesm2022/index.mjs +4 -4
- package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- package/components/input/file-upload/types/index.d.ts +5 -5
- package/components/input/number/bundles/index.umd.js +3 -3
- package/components/input/number/fesm2022/index.mjs +3 -3
- package/components/input/number/fesm2022/index.mjs.map +1 -1
- package/components/input/number/types/index.d.ts +1 -1
- package/components/input/radioset/bundles/index.umd.js +4 -4
- package/components/input/radioset/fesm2022/index.mjs +4 -4
- package/components/input/radioset/fesm2022/index.mjs.map +1 -1
- package/components/input/radioset/types/index.d.ts +2 -2
- package/components/input/rating/bundles/index.umd.js +9 -11
- package/components/input/rating/fesm2022/index.mjs +9 -11
- package/components/input/rating/fesm2022/index.mjs.map +1 -1
- package/components/input/rating/types/index.d.ts +2 -2
- package/components/input/select/bundles/index.umd.js +4 -4
- package/components/input/select/fesm2022/index.mjs +4 -4
- package/components/input/select/fesm2022/index.mjs.map +1 -1
- package/components/input/select/types/index.d.ts +1 -1
- package/components/input/slider/bundles/index.umd.js +3 -3
- package/components/input/slider/fesm2022/index.mjs +3 -3
- package/components/input/slider/fesm2022/index.mjs.map +1 -1
- package/components/input/slider/types/index.d.ts +1 -1
- package/components/input/switch/bundles/index.umd.js +3 -3
- package/components/input/switch/fesm2022/index.mjs +3 -3
- package/components/input/switch/fesm2022/index.mjs.map +1 -1
- package/components/input/switch/types/index.d.ts +1 -1
- package/components/input/text/bundles/index.umd.js +31 -35
- package/components/input/text/fesm2022/index.mjs +31 -35
- package/components/input/text/fesm2022/index.mjs.map +1 -1
- package/components/input/text/types/index.d.ts +12 -12
- package/components/input/textarea/bundles/index.umd.js +3 -3
- package/components/input/textarea/fesm2022/index.mjs +3 -3
- package/components/input/textarea/fesm2022/index.mjs.map +1 -1
- package/components/input/textarea/types/index.d.ts +2 -2
- package/components/navigation/breadcrumb/bundles/index.umd.js +3 -3
- package/components/navigation/breadcrumb/fesm2022/index.mjs +3 -3
- package/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
- package/components/navigation/breadcrumb/types/index.d.ts +4 -4
- package/components/navigation/menu/bundles/index.umd.js +25 -33
- package/components/navigation/menu/fesm2022/index.mjs +25 -33
- package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- package/components/navigation/menu/types/index.d.ts +21 -21
- package/components/navigation/navbar/bundles/index.umd.js +3 -3
- package/components/navigation/navbar/fesm2022/index.mjs +3 -3
- package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
- package/components/navigation/navbar/types/index.d.ts +1 -1
- package/components/navigation/popover/bundles/index.umd.js +4 -4
- package/components/navigation/popover/fesm2022/index.mjs +4 -4
- package/components/navigation/popover/fesm2022/index.mjs.map +1 -1
- package/components/navigation/popover/types/index.d.ts +4 -4
- package/components/page/default/bundles/index.umd.js +23 -23
- package/components/page/default/fesm2022/index.mjs +23 -23
- package/components/page/default/fesm2022/index.mjs.map +1 -1
- package/components/page/default/types/index.d.ts +14 -14
- package/components/page/footer/bundles/index.umd.js +3 -3
- package/components/page/footer/fesm2022/index.mjs +3 -3
- package/components/page/footer/fesm2022/index.mjs.map +1 -1
- package/components/page/footer/types/index.d.ts +1 -1
- package/components/page/header/bundles/index.umd.js +3 -3
- package/components/page/header/fesm2022/index.mjs +3 -3
- package/components/page/header/fesm2022/index.mjs.map +1 -1
- package/components/page/header/types/index.d.ts +1 -1
- package/components/page/left-panel/bundles/index.umd.js +5 -5
- package/components/page/left-panel/fesm2022/index.mjs +5 -5
- package/components/page/left-panel/fesm2022/index.mjs.map +1 -1
- package/components/page/left-panel/types/index.d.ts +3 -3
- package/components/page/right-panel/bundles/index.umd.js +3 -3
- package/components/page/right-panel/fesm2022/index.mjs +3 -3
- package/components/page/right-panel/fesm2022/index.mjs.map +1 -1
- package/components/page/right-panel/types/index.d.ts +1 -1
- package/components/page/top-nav/bundles/index.umd.js +3 -3
- package/components/page/top-nav/fesm2022/index.mjs +3 -3
- package/components/page/top-nav/fesm2022/index.mjs.map +1 -1
- package/components/page/top-nav/types/index.d.ts +1 -1
- package/components/prefab/bundles/index.umd.js +7 -7
- package/components/prefab/fesm2022/index.mjs +7 -7
- package/components/prefab/fesm2022/index.mjs.map +1 -1
- package/components/prefab/types/index.d.ts +3 -3
- package/core/bundles/index.umd.js +84 -89
- package/core/fesm2022/index.mjs +84 -89
- package/core/fesm2022/index.mjs.map +1 -1
- package/core/types/index.d.ts +11 -11
- package/http/bundles/index.umd.js +6 -6
- package/http/fesm2022/index.mjs +6 -6
- package/http/fesm2022/index.mjs.map +1 -1
- package/http/types/index.d.ts +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/oAuth/bundles/index.umd.js +17 -21
- package/oAuth/fesm2022/index.mjs +17 -21
- package/oAuth/fesm2022/index.mjs.map +1 -1
- package/oAuth/types/index.d.ts +1 -1
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/runtime/base/bundles/index.umd.js +253 -275
- package/runtime/base/fesm2022/index.mjs +253 -275
- package/runtime/base/fesm2022/index.mjs.map +1 -1
- package/runtime/base/types/index.d.ts +90 -96
- package/runtime/dynamic/bundles/index.umd.js +28 -28
- package/runtime/dynamic/fesm2022/index.mjs +28 -28
- package/runtime/dynamic/fesm2022/index.mjs.map +1 -1
- package/runtime/dynamic/types/index.d.ts +22 -22
- package/scripts/datatable/datatable.js +293 -271
- package/scripts/tree-keyboard-navigation/keyboard-navigation.js +68 -56
- package/security/bundles/index.umd.js +6 -6
- package/security/fesm2022/index.mjs +6 -6
- package/security/fesm2022/index.mjs.map +1 -1
- package/security/types/index.d.ts +5 -5
- package/transpiler/bundles/index.umd.js +3 -5
- package/transpiler/fesm2022/index.mjs +3 -5
- package/transpiler/fesm2022/index.mjs.map +1 -1
- package/variables/bundles/index.umd.js +69 -71
- package/variables/fesm2022/index.mjs +69 -72
- package/variables/fesm2022/index.mjs.map +1 -1
- package/variables/types/index.d.ts +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/chips/src/chips.props.ts","../../../../../projects/components/widgets/input/chips/src/chips.component.ts","../../../../../projects/components/widgets/input/chips/src/chips.component.html","../../../../../projects/components/widgets/input/chips/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const chipsProps = new Map(\n [\n ['allowonlyselect', PROP_BOOLEAN],\n ['autofocus', PROP_BOOLEAN],\n ['chipclass', PROP_STRING],\n ['class', PROP_STRING],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataoptions', PROP_ANY],\n ['dataset', {value: 'Option 1, Option 2, Option 3', ...PROP_ANY}],\n ['datasource', PROP_ANY],\n ['datavalue', PROP_ANY],\n ['datavaluesource', PROP_ANY],\n ['dateformat', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['displayimagesrc', PROP_STRING],\n ['enablereorder', PROP_BOOLEAN],\n ['groupby', PROP_STRING],\n ['inputposition', {value: 'last', ...PROP_STRING}],\n ['inputwidth', {value: 'default', ...PROP_STRING}],\n ['limit', PROP_NUMBER],\n ['loadingdatamsg', {value: 'Loading items...', ...PROP_STRING}],\n ['match', PROP_STRING],\n ['matchmode', PROP_STRING],\n ['maxsize', PROP_NUMBER],\n ['minchars', {value: 1 , ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['navsearchbar', {value: false, ...PROP_BOOLEAN}],\n ['orderby', PROP_STRING],\n ['placeholder', {value: 'Type here..', ...PROP_STRING}],\n ['query', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['searchkey', PROP_STRING],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showsearchicon', PROP_BOOLEAN],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'search', ...PROP_STRING}],\n ['debouncetime', {value: 250, ...PROP_NUMBER}],\n ['datacompletemsg', { value: 'No more data to load', ...PROP_STRING }],\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-chips',\n chipsProps\n );\n registerFormWidget(\n FormWidgetType.CHIPS,\n new Map(chipsProps)\n );\n};\n\n","import {CommonModule} from '@angular/common';\nimport {AfterViewInit, Attribute, Component, Inject, Injector, OnDestroy, OnInit, Optional, ViewChild} from '@angular/core';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\n\nimport {$appDigest, $unwatch, $watch, debounce, isAppleProduct, isDefined, toBoolean} from '@wm/core';\nimport {\n ALLFIELDS,\n configureDnD,\n DataSetItem,\n getConditionalClasses,\n getUniqObjsByDataField,\n IWidgetConfig,\n provideAs,\n provideAsWidgetRef,\n styler,\n TextContentDirective\n} from '@wm/components/base';\nimport {DatasetAwareFormComponent} from '@wm/components/input/dataset-aware-form';\nimport {SearchComponent} from '@wm/components/basic/search';\n\nimport {registerProps} from './chips.props';\nimport {\n clone,\n filter,\n find,\n findIndex,\n forEach,\n isArray,\n isEqual,\n isObject,\n max,\n pullAt,\n reduce,\n slice,\n toString,\n trim\n} from \"lodash-es\";\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-chips',\n hostClass: 'app-chips nav nav-pills list-inline'\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, TextContentDirective, SearchComponent],\n selector: '[wmChips]',\n templateUrl: './chips.component.html',\n providers: [\n provideAs(ChipsComponent, NG_VALUE_ACCESSOR, true),\n provideAsWidgetRef(ChipsComponent)\n ]\n})\nexport class ChipsComponent extends DatasetAwareFormComponent implements OnInit, AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n public allowonlyselect: boolean;\n public enablereorder: boolean;\n public maxsize: number;\n public inputwidth: any;\n private debouncetime: number;\n\n public chipsList: Array<any> = [];\n private readonly maxSizeReached = 'Max size reached';\n private saturate: boolean;\n private nextItemIndex: number;\n private getTransformedData: (data, itemIndex?) => DataSetItem[];\n private inputposition: string;\n private showsearchicon: boolean;\n\n @ViewChild(SearchComponent, /* TODO: add static flag */ {static: true}) searchComponent: SearchComponent;\n private _datasource: any;\n private _unsubscribeDv = false;\n private searchkey: string;\n private _debounceUpdateQueryModel: any = null;\n private limit: number;\n private _classExpr: any;\n private minchars: number;\n private matchmode: string;\n\n // getter setter is added to pass the datasource to searchcomponent.\n get datasource () {\n return this._datasource;\n }\n\n set datasource(nv) {\n this._datasource = nv;\n this.searchComponent.datasource = nv;\n if (this._debounceUpdateQueryModel) {\n this._debounceUpdateQueryModel(this.datavalue || this.toBeProcessedDatavalue);\n }\n }\n\n constructor(\n inj: Injector,\n @Attribute('displayfield.bind') private bindDisplayField,\n @Attribute('displayexpression.bind') private bindDisplayExpr,\n @Attribute('displayimagesrc.bind') private bindDisplayImgSrc,\n @Attribute('datafield.bind') private bindDataField,\n @Attribute('dataset.bind') private bindDataSet,\n @Attribute('chipclass.bind') private bindChipclass,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n\n // set the showsearchicon as false by default.\n if (!isDefined(this.showsearchicon)) {\n this.showsearchicon = false;\n }\n\n this.multiple = true;\n this.nextItemIndex = 0; // default chip index\n\n this._debounceUpdateQueryModel = debounce((val) => {\n this.updateQueryModel(val).then(() => {\n if (this.bindChipclass) {\n forEach(this.chipsList, (item, index) => {\n this.registerChipItemClass(item, index);\n });\n }\n });\n }, 150);\n\n const datasetSubscription = this.dataset$.subscribe(() => {\n this.searchComponent.dataset = this.dataset;\n // clearing the last results when dataset is reassigned\n (this.searchComponent as any)._lastResult = undefined;\n this.nextItemIndex = this.datasetItems.length;\n if (this._debounceUpdateQueryModel) {\n this._debounceUpdateQueryModel(this.datavalue || this.toBeProcessedDatavalue);\n }\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n const datavalueSubscription = this.datavalue$.subscribe((val: Array<string> | string) => {\n // update queryModel only when parentRef is available.\n if (!this._unsubscribeDv) {\n this.chipsList = [];\n // if the datafield is ALLFILEDS do not fetch the records\n // update the query model with the values we have\n if (this._debounceUpdateQueryModel) {\n this._debounceUpdateQueryModel(val);\n }\n }\n });\n this.registerDestroyListener(() => datavalueSubscription.unsubscribe());\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.searchComponent.multiple = true;\n this.searchComponent.binddisplayimagesrc = this.bindDisplayImgSrc;\n this.searchComponent.displayimagesrc = this.displayimagesrc;\n this.searchComponent.binddisplaylabel = this.bindDisplayExpr;\n this.searchComponent.displaylabel = this.displayfield;\n this.searchComponent.datafield = this.bindDataField || this.datafield;\n this.searchComponent.binddataset = this.bindDataSet;\n this.searchComponent.dataset = this.dataset;\n this.searchComponent.searchkey = this.searchkey;\n this.searchComponent.limit = this.limit;\n this.searchComponent.debouncetime = this.debouncetime;\n this.searchComponent.matchmode = this.matchmode;\n\n this.getTransformedData = (val, isCustom) => {\n return this.searchComponent.getTransformedData([val], this.nextItemIndex++, isCustom);\n };\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (this.enablereorder) {\n this.configureDnD();\n }\n }\n\n /**\n * This method returns the evaluated class expression.\n * @param $index index of the chip\n * @param item chip object containing the key, value, label\n * @returns {any} evaluated class expression value\n */\n private registerChipItemClass(item, $index) {\n if (this.bindChipclass) {\n const watchName = `${this.widgetId}_chipItemClass_${$index}`;\n $unwatch(watchName);\n //[Todo-CSP]: same as list item class\n this.registerDestroyListener($watch(this.bindChipclass, this.viewParent, {item, $index}, (nv, ov) => {\n this.applyItemClass(getConditionalClasses(nv, ov), $index);\n }, watchName));\n }\n }\n\n private applyItemClass(val, index) {\n const chipItems = this.nativeElement.querySelectorAll('.chip-item');\n const chipItem = chipItems.item(index);\n if (chipItem) {\n $(chipItem).removeClass(val.toRemove).addClass(val.toAdd);\n return;\n }\n setTimeout(() => {\n const retryChip = this.nativeElement.querySelectorAll('.chip-item').item(index);\n if (retryChip) {\n $(retryChip).removeClass(val.toRemove).addClass(val.toAdd);\n }\n }, 50);\n }\n\n private removeDuplicates() {\n this.chipsList = getUniqObjsByDataField(this.chipsList, this.datafield, this.displayfield || this.displaylabel);\n }\n\n // This method updates the queryModel.\n // default call to get the default data can be done only when defaultQuery is true.\n private updateQueryModel(data: any): Promise<void> {\n const promises = [];\n if (!data) {\n this.chipsList = [];\n return Promise.resolve();\n }\n\n // clone the data as the updations on data will change the datavalue.\n let dataValue = clone(data);\n const prevChipsList = this.chipsList;\n this.chipsList = [];\n\n // update the model when model has items more than maxsize\n if (this.maxsize && dataValue.length > this.maxsize) {\n this._modelByValue = dataValue = slice(dataValue, 0, this.maxsize);\n data = dataValue;\n }\n\n const searchQuery: Array<string> = [];\n\n /**\n * For each value in datavalue,\n * 1. check whether value is in datasetItems, if item is found, addd to the chipsList.\n * 2. else make a default query to the filter and get the record.\n * 3. In step 2, if datavalue is not ALLFIELDS, then make a query. Extract the chipsList from the query response.\n * 4. If there is no response for the value and allowonlyselect is true, remove the value from the datavalue. So that datavalue just contains the valid values.\n * 5. In step 2, if datavalue is ALLFIELDS and value is object, then just prepare the datasetItem from the value.\n * 6. If value is not object and allowonlyselect is false, then create a customModel and replace this value with customModel and prepare datasetItem from this value\n */\n dataValue.forEach((val: any, i: number) => {\n const itemFound = find(this.datasetItems, item => {\n return isObject(item.value) ? isEqual(item.value, val) : toString(item.value) === toString(val);\n });\n\n if (itemFound) {\n this.chipsList.push(itemFound);\n } else if (this.datafield !== ALLFIELDS) {\n searchQuery.push(val);\n } else if (this.datafield === ALLFIELDS) {\n let dataObj, isCustom = false;\n if (!isObject(val)) {\n dataObj = this.createCustomDataModel(val);\n isCustom = true;\n if (dataObj) {\n data.splice(i, 1, dataObj);\n }\n } else {\n // if custom chips is already generated, val will be object as {'dataField_val': 'entered_val'}\n // Hence check this val in previous chipList and assign the iscustom flag\n const prevChipObj = prevChipsList.find(obj => {\n return isEqual(obj.value, val);\n });\n if (prevChipObj) {\n isCustom = prevChipObj.iscustom;\n }\n }\n dataObj = dataObj || val;\n\n const transformedData = this.getTransformedData(dataObj, isCustom);\n const chipObj = transformedData[0];\n if (isCustom) {\n (chipObj as any).iscustom = isCustom;\n }\n this.chipsList.push(chipObj);\n }\n });\n\n // make default query with all the values and if response for the value is not in datavalue then add a custom chip object.\n if (searchQuery.length) {\n promises.push(this.getDefaultModel(searchQuery, this.nextItemIndex)\n .then(response => {\n this.chipsList = this.chipsList.concat(response || []);\n dataValue.forEach((val: any, i: number) => {\n const isExists = find(this.chipsList, (obj) => {\n return obj.value.toString() === val.toString();\n });\n\n if (!isExists) {\n if (this.allowonlyselect) {\n const index = data.indexOf(val);\n if (index > -1) {\n data.splice(index, 1);\n }\n return;\n }\n const transformedData = this.getTransformedData(val, true);\n const chipObj = transformedData[0];\n (chipObj as any).iscustom = true;\n this.chipsList.push(chipObj);\n }\n });\n }));\n }\n\n // default chip data is adding focus on to the search input. Hence this flag helps not to focus.\n this.resetSearchModel(true);\n\n return Promise.all(promises).then(() => {\n this._modelByValue = data;\n this.removeDuplicates();\n this.updateMaxSize();\n $appDigest();\n });\n }\n\n private resetSearchModel(defaultQuery?: boolean) {\n this._unsubscribeDv = true;\n // clear search will empty the query model and gets the data when minchars is 0 (i.e. autocomplete) on focus\n // defaultQuery flag is set when widget is not active. This will only load the autocomplete dropup with minchars as 0 when widget is focused/active\n (this.searchComponent as any).clearSearch(undefined, !this.minchars && !defaultQuery);\n this._unsubscribeDv = false;\n }\n\n // Add the newItem to the list\n private addItem($event: Event, widget?: SearchComponent) {\n const searchComponent = widget;\n let allowAdd;\n let chipObj;\n\n if (searchComponent && isDefined(searchComponent.datavalue) && searchComponent.queryModel !== '') {\n if (!searchComponent.query || !trim(searchComponent.query)) {\n return;\n }\n chipObj = searchComponent.queryModel;\n } else {\n if (this.allowonlyselect) {\n return;\n }\n let dataObj;\n if (this.datafield === ALLFIELDS) {\n if (!isObject(this.searchComponent.query) && trim(this.searchComponent.query)) {\n dataObj = this.createCustomDataModel(this.searchComponent.query);\n // return if the custom chip is empty\n if (!dataObj) {\n this.resetSearchModel();\n return;\n }\n }\n }\n\n const data = dataObj || trim(this.searchComponent.query);\n if (data) {\n const transformedData = this.getTransformedData(data, true);\n chipObj = transformedData[0];\n chipObj.iscustom = true;\n }\n }\n\n if (!isDefined(chipObj) || chipObj === '') {\n return;\n }\n\n allowAdd = this.invokeEventCallback('beforeadd', {$event, newItem: chipObj});\n\n if (isDefined(allowAdd) && !toBoolean(allowAdd)) {\n return;\n }\n\n if (this.isDuplicate(chipObj)) {\n this.resetSearchModel();\n return;\n }\n this.registerChipItemClass(chipObj, this.chipsList.length);\n this.chipsList.push(chipObj);\n\n if (!this.datavalue) {\n this._modelByValue = [chipObj.value];\n } else {\n this._modelByValue = [...this._modelByValue, chipObj.value];\n }\n\n this._unsubscribeDv = true;\n this.invokeOnTouched();\n this.invokeOnChange(this._modelByValue, $event || {}, true);\n\n this.invokeEventCallback('add', {$event, $item: chipObj});\n\n this.updateMaxSize();\n\n // reset input box when item is added.\n this.resetSearchModel();\n\n // stop the event to not to call the submit event on enter press.\n if ($event && (($event as any).key === 'Enter' || ($event as any).keyCode === 13)) {\n this.stopEvent($event);\n }\n }\n\n // Prepare datavalue object from a string(junk) value when datafield is allFields.\n private createCustomDataModel(val: string) {\n const key = this.displayfield || (this.datafield !== ALLFIELDS ? this.datafield : undefined);\n\n if (key) {\n const customObj = {};\n customObj[key] = val;\n return customObj;\n }\n }\n\n // Check if newItem already exists\n private isDuplicate(item: DataSetItem) {\n if (this.datafield === ALLFIELDS) {\n return findIndex(this.chipsList, {value: item.value}) > -1;\n }\n return findIndex(this.chipsList, {key: item.key}) > -1;\n }\n\n // Check if max size is reached\n private updateMaxSize() {\n this.saturate = this.maxsize > 0 && this.chipsList.length === this.maxsize;\n }\n\n // Makes call to searchComponent to filter the dataSource based on the query.\n protected getDefaultModel(query: Array<string> | string, index?: number) {\n this.nextItemIndex++;\n return this.searchComponent.getDataSource(query, true, index)\n .then((response) => {\n // @ts-ignore\n return filter(query, queryVal => {\n find(response, {value: queryVal});\n });\n });\n }\n\n private handleChipClick($event: Event, chip: DataSetItem) {\n if (this.readonly) {\n return;\n }\n ($event.currentTarget as any).focus();\n this.invokeEventCallback('chipclick', {$event, $item: chip});\n }\n\n private handleChipFocus($event: Event, chip: DataSetItem) {\n if (this.readonly) {\n return;\n }\n (chip as any).active = true;\n this.invokeEventCallback('chipselect', {$event, $item: chip});\n }\n\n // To avoid form submit on pressing enter key\n public stopEvent($event: Event) {\n const inputValue = ($event.target as HTMLInputElement)?.value ?? '';\n if(inputValue.trim()){\n $event.stopPropagation();\n $event.preventDefault();\n }\n }\n\n public onTextDelete($event: Event) {\n if (isAppleProduct) {\n this.onInputClear($event);\n }\n }\n\n public onInputClear($event: Event) {\n if (!this.chipsList || !this.chipsList.length || this.searchComponent.query) {\n return;\n }\n this.$element.find('li.chip-item > a.app-chip').last().focus();\n this.stopEvent($event);\n }\n\n private onBackspace($event: Event, $item: DataSetItem, $index: number) {\n if (this.readonly) {\n return;\n }\n this.removeItem($event, $item, $index, true);\n }\n\n private onDelete($event: Event, $item: DataSetItem, $index: number) {\n if (this.readonly) {\n return;\n }\n this.removeItem($event, $item, $index);\n }\n\n public onArrowLeft($item?: DataSetItem, $index?: number) {\n if (this.readonly) {\n return;\n }\n\n // On left arrow click when search input query is empty.\n if (!this.searchComponent.query && !isDefined($index) && !isDefined($item)) {\n this.$element.find('li.chip-item > a.app-chip').last().focus();\n return;\n }\n\n if ($index > 0) {\n this.$element.find('li.chip-item > a.app-chip').get($index - 1).focus();\n } else {\n this.focusSearchBox();\n }\n }\n\n public onArrowRight($item?: DataSetItem, $index?: number) {\n if (this.readonly) {\n return;\n }\n // On right arrow click when search input query is empty.\n if (!this.searchComponent.query && !isDefined($index) && !isDefined($item)) {\n this.$element.find('li.chip-item > a.app-chip').first().focus();\n return;\n }\n\n if ($index < (this.chipsList.length - 1)) {\n this.$element.find('li.chip-item > a.app-chip').get($index + 1).focus();\n } else {\n this.focusSearchBox();\n }\n }\n\n // focus search box.\n private focusSearchBox() {\n this.$element.find('.app-chip-input > input.app-textbox').focus();\n }\n\n // Remove the item from list\n private removeItem($event: Event, item: DataSetItem, index: number, canFocus?: boolean) {\n $event.stopPropagation();\n\n const indexes = isArray(index) ? index : [index];\n const focusIndex = max(indexes);\n\n const items = reduce(indexes, (result, i) => {\n result.push(this.chipsList[i]);\n return result;\n }, []);\n\n // prevent deletion if the before-remove event callback returns false\n const allowRemove = this.invokeEventCallback('beforeremove', {$event, $item: items.length === 1 ? items[0] : items});\n if (isDefined(allowRemove) && !toBoolean(allowRemove)) {\n return;\n }\n\n const prevDatavalue = clone(this.datavalue);\n\n // focus next chip after deletion.\n // if there are no chips in the list focus search box\n setTimeout(() => {\n const chipsLength = this.chipsList.length;\n const $chipsList = this.$element.find('li.chip-item > a.app-chip');\n\n if (!chipsLength || !canFocus) {\n this.focusSearchBox();\n } else if ((chipsLength - 1) < focusIndex) {\n // if focus index is greater than chips length select last chip\n $chipsList.get(chipsLength - 1).focus();\n } else {\n // manually set the succeeding chip as active if there is a chip next to the current chip.\n this.chipsList[focusIndex].active = true;\n $chipsList.get(focusIndex).focus();\n }\n });\n\n const pulledItems = pullAt(this.chipsList, indexes);\n\n pulledItems.forEach(datasetItem => {\n this._modelByValue = filter(this._modelByValue, val => {\n return !(isObject(val) ? isEqual(val, datasetItem.value) : toString(val) === toString(datasetItem.value));\n });\n });\n\n this._unsubscribeDv = false;\n\n this.invokeOnChange(this._modelByValue, $event, true);\n this.invokeEventCallback('change', {$event, newVal: this.datavalue, oldVal: prevDatavalue});\n\n this.updateMaxSize();\n\n this.invokeEventCallback('remove', {$event, $item: items.length === 1 ? items[0] : items});\n }\n\n /**\n * Swaps items in an array if provided with indexes.\n * @param data :- array to be swapped\n * @param newIndex :- new index for the element to be placed\n * @param currentIndex :- the current index of the element.\n */\n private swapElementsInArray(data: Array<any>, newIndex: number, currentIndex: number) {\n const draggedItem = pullAt(data, currentIndex)[0];\n data.splice(newIndex, 0, draggedItem);\n }\n\n /**\n * Cancels the reorder by reseting the elements to the original position.\n */\n private resetReorder() {\n this.$element.removeData('oldIndex');\n }\n\n private invokeOnBeforeServiceCall(inputData) {\n this.invokeEventCallback('beforeservicecall', {inputData});\n }\n\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n if (eventName === 'remove' || eventName === 'beforeremove' || eventName === 'chipselect'\n || eventName === 'chipclick' || eventName === 'add' || eventName === 'reorder' || eventName === 'change') {\n return;\n }\n\n super.handleEvent(node, eventName, eventCallback, locals);\n }\n\n // Configures the reordable feature in chips widgets.\n private configureDnD() {\n const options = {\n items: '> li:not(.app-chip-search)',\n placeholder: 'chip-placeholder'\n };\n\n configureDnD(this.$element, options, this.onReorderStart.bind(this), this.update.bind(this));\n }\n\n // Triggered on drag start while reordering.\n private onReorderStart(evt: Event, ui: Object) {\n const helper = (ui as any).helper;\n // increasing the width of the dragged item by 1\n helper.width(helper.width() + 1);\n this.$element.data('oldIndex', (ui as any).item.index() - (this.inputposition === 'first' ? 1 : 0));\n }\n\n // updates the chipsList and datavalue on reorder.\n private update($event: Event, ui: Object) {\n let changedItem,\n newIndex,\n oldIndex;\n\n // Get the index of the item at position before drag and after the reorder.\n newIndex = (ui as any).item.index() - (this.inputposition === 'first' ? 1 : 0);\n oldIndex = this.$element.data('oldIndex');\n\n newIndex = this.chipsList.length === newIndex ? newIndex - 1 : newIndex;\n changedItem = {\n oldIndex: oldIndex,\n newIndex: newIndex,\n item: this.chipsList[oldIndex]\n };\n\n if (newIndex === oldIndex) {\n this.resetReorder();\n return;\n }\n changedItem.item = this.chipsList[oldIndex];\n\n const allowReorder = this.invokeEventCallback('beforereorder', {$event, $data: this.chipsList, $changedItem: changedItem});\n\n if (isDefined(allowReorder) && toBoolean(allowReorder) === false) {\n this.resetReorder();\n return;\n }\n\n // modify the chipsList and datavalue after the reorder.\n this.swapElementsInArray(this.chipsList, newIndex, oldIndex);\n this.swapElementsInArray(this._modelByValue, newIndex, oldIndex);\n\n changedItem.item = this.chipsList[newIndex];\n\n this.chipsList = [...this.chipsList];\n\n this.resetReorder();\n this.invokeEventCallback('reorder', {$event, $data: this.chipsList, $changedItem: changedItem});\n }\n\n onPropertyChange(key: string, nv: any, ov: any) {\n if (key === 'tabindex') {\n return;\n }\n if (key === 'dataoptions') {\n (this.searchComponent as any).dataoptions = nv;\n }\n if (key === 'datafield') {\n this.searchComponent.datafield = this.datafield;\n }\n if (key === 'displayfield') {\n this.searchComponent.displaylabel = this.displayfield;\n }\n if (key === 'displayexpression') {\n this.searchComponent.binddisplaylabel = this.binddisplayexpression ? this.binddisplayexpression : this.displayexpression;\n }\n if (key === 'displayimagesrc') {\n this.searchComponent.binddisplayimagesrc = this.binddisplayimagesrc ? this.binddisplayimagesrc : this.displayimagesrc;\n }\n if (key === 'limit') {\n this.searchComponent.limit = this.limit;\n }\n if (key === 'matchmode') {\n this.searchComponent.matchmode = this.matchmode;\n }\n if (key === 'groupby') {\n this.searchComponent.groupby = this.groupby;\n }\n if (key === 'enablereorder') {\n if (this.$element.hasClass('ui-sortable')) {\n this.$element.sortable('option', 'disabled', !nv);\n } else if (nv) {\n this.configureDnD();\n }\n\n // Add this block to handle drag prevention\n const chipElements = this.$element.find('.chip-item a.app-chip');\n if (!nv) {\n chipElements.addClass('no-drag');\n // Prevent default drag behavior\n chipElements.on('dragstart', (e) => {\n e.preventDefault();\n return false;\n });\n } else {\n chipElements.removeClass('no-drag');\n chipElements.off('dragstart');\n }\n }\n if (key === 'readonly') {\n if (nv) {\n this.$element.addClass('readonly');\n } else {\n this.$element.removeClass('readonly');\n }\n }\n if (key === 'inputposition') {\n const $inputEl = this.$element.find('li.app-chip-search');\n if (nv === 'first') {\n this.$element.prepend($inputEl);\n } else {\n this.$element.append($inputEl);\n }\n }\n if (key === 'autofocus' && nv) {\n // setting the autofocus on the input once after dom is updated\n setTimeout(() => {\n const $chipsList = this.$element.find('.app-chip-input > input.app-textbox');\n if ($chipsList && $chipsList.length) {\n this.focusSearchBox();\n }\n });\n }\n super.onPropertyChange(key, nv, ov);\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear chips list array\n this.chipsList = [];\n\n // MEMORY LEAK FIX: Nullify debounced function closure\n this._debounceUpdateQueryModel = null;\n\n // MEMORY LEAK FIX: Clear search component reference\n this.searchComponent = null;\n\n // MEMORY LEAK FIX: Destroy jQuery sortable if enabled\n if (this.enablereorder && this.$element) {\n try {\n this.$element.sortable('destroy');\n } catch (e) {\n // Ignore errors during destroy\n }\n }\n\n // MEMORY LEAK FIX: Clear transform function reference\n this.getTransformedData = null;\n\n // MEMORY LEAK FIX: Clear class expression\n this._classExpr = null;\n\n // Call parent ngOnDestroy (DatasetAwareFormComponent has cleanup)\n super.ngOnDestroy();\n }\n}\n","@for (item of chipsList; track item) {\n <li class=\"chip-item {{chipclass && !bindChipclass ? chipclass : ''}}\"\n [ngClass]=\"{'active': item.active, 'disabled': disabled}\">\n <a href=\"javascript:void(0)\" class=\"app-chip\"\n (click)=\"handleChipClick($event, item)\"\n (keydown.delete)=\"onDelete($event, item, $index)\"\n (keydown.backspace)=\"onBackspace($event, item, $index)\"\n (keydown.arrowleft)=\"onArrowLeft(item, $index)\"\n (keydown.arrowright)=\"onArrowRight(item, $index)\"\n (focus)=\"handleChipFocus($event, item)\"\n (blur)=\"readonly ? 0 : item.active = false\"\n [ngClass]=\"{'no-drag': !enablereorder,'chip-duplicate bg-danger': item.isDuplicate, 'chip-picture': item.imgSrc}\">\n @if (item.imgSrc) {\n <img data-identifier=\"img\" alt=\"Chip Image\" class=\"button-image-icon\" [src]=\"item.imgSrc\"/>\n }\n <span class=\"app-chip-title\" [textContent]=\"item.label\" [title]=\"item.label\"></span>\n @if (!readonly) {\n <button type=\"button\" [attr.aria-label]=\"'Clear ' + item.label\" class=\"btn btn-transparent\"\n (click)=\"removeItem($event, item, $index);\">\n <i class=\"app-icon wi wi-close\"></i>\n </button>\n }\n </a>\n </li>\n}\n<li class=\"app-chip-search\" [ngClass]=\"{'full-width': inputwidth === 'full'}\">\n <div #search wmSearch class=\"app-chip-input\"\n name=\"app-chip-search\"\n submit.event=\"addItem($event, widget)\"\n beforeservicecall.event=\"invokeOnBeforeServiceCall(inputData)\"\n disabled.bind=\"disabled || readonly || saturate\"\n datafield.bind=\"datafield\"\n allowonlyselect.bind=\"allowonlyselect\"\n searchkey.bind=\"searchkey\"\n orderby.bind=\"orderby\"\n placeholder.bind=\"saturate ? maxSizeReached : placeholder\"\n showsearchicon.bind=\"showsearchicon\"\n tabindex.bind=\"tabindex\"\n minchars.bind=\"minchars\"\n debouncetime.bind=\"debouncetime\"\n matchmode.bind=\"matchmode\"\n datacompletemsg.bind = \"datacompletemsg\"\n groupby.bind=\"groupby\"\n match.bind=\"match\"\n dateformat.bind=\"dateformat\"\n (keydown.enter)=\"stopEvent($event)\"\n (keydown.delete)=\"onTextDelete($event)\"\n (keydown.backspace)=\"onInputClear($event)\"\n (keydown.arrowleft)=\"onArrowLeft()\"\n (keydown.arrowright)=\"onArrowRight()\">\n </div>\n</li>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/chips/src/chips.props.ts","../../../../../projects/components/widgets/input/chips/src/chips.component.ts","../../../../../projects/components/widgets/input/chips/src/chips.component.html","../../../../../projects/components/widgets/input/chips/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const chipsProps = new Map(\n [\n ['allowonlyselect', PROP_BOOLEAN],\n ['autofocus', PROP_BOOLEAN],\n ['chipclass', PROP_STRING],\n ['class', PROP_STRING],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataoptions', PROP_ANY],\n ['dataset', {value: 'Option 1, Option 2, Option 3', ...PROP_ANY}],\n ['datasource', PROP_ANY],\n ['datavalue', PROP_ANY],\n ['datavaluesource', PROP_ANY],\n ['dateformat', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['displayimagesrc', PROP_STRING],\n ['enablereorder', PROP_BOOLEAN],\n ['groupby', PROP_STRING],\n ['inputposition', {value: 'last', ...PROP_STRING}],\n ['inputwidth', {value: 'default', ...PROP_STRING}],\n ['limit', PROP_NUMBER],\n ['loadingdatamsg', {value: 'Loading items...', ...PROP_STRING}],\n ['match', PROP_STRING],\n ['matchmode', PROP_STRING],\n ['maxsize', PROP_NUMBER],\n ['minchars', {value: 1 , ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['navsearchbar', {value: false, ...PROP_BOOLEAN}],\n ['orderby', PROP_STRING],\n ['placeholder', {value: 'Type here..', ...PROP_STRING}],\n ['query', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['searchkey', PROP_STRING],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showsearchicon', PROP_BOOLEAN],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'search', ...PROP_STRING}],\n ['debouncetime', {value: 250, ...PROP_NUMBER}],\n ['datacompletemsg', { value: 'No more data to load', ...PROP_STRING }],\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-chips',\n chipsProps\n );\n registerFormWidget(\n FormWidgetType.CHIPS,\n new Map(chipsProps)\n );\n};\n\n","import {CommonModule} from '@angular/common';\nimport {AfterViewInit, Attribute, Component, Inject, Injector, OnDestroy, OnInit, Optional, ViewChild} from '@angular/core';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\n\nimport {$appDigest, $unwatch, $watch, debounce, isAppleProduct, isDefined, toBoolean} from '@wm/core';\nimport {\n ALLFIELDS,\n configureDnD,\n DataSetItem,\n getConditionalClasses,\n getUniqObjsByDataField,\n IWidgetConfig,\n provideAs,\n provideAsWidgetRef,\n styler,\n TextContentDirective\n} from '@wm/components/base';\nimport {DatasetAwareFormComponent} from '@wm/components/input/dataset-aware-form';\nimport {SearchComponent} from '@wm/components/basic/search';\n\nimport {registerProps} from './chips.props';\nimport {\n clone,\n filter,\n find,\n findIndex,\n forEach,\n isArray,\n isEqual,\n isObject,\n max,\n pullAt,\n reduce,\n slice,\n toString,\n trim\n} from \"lodash-es\";\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-chips',\n hostClass: 'app-chips nav nav-pills list-inline'\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, TextContentDirective, SearchComponent],\n selector: '[wmChips]',\n templateUrl: './chips.component.html',\n providers: [\n provideAs(ChipsComponent, NG_VALUE_ACCESSOR, true),\n provideAsWidgetRef(ChipsComponent)\n ]\n})\nexport class ChipsComponent extends DatasetAwareFormComponent implements OnInit, AfterViewInit, OnDestroy {\n static readonly initializeProps = registerProps();\n public allowonlyselect: boolean;\n public enablereorder: boolean;\n public maxsize: number;\n public inputwidth: any;\n private readonly debouncetime: number;\n\n public chipsList: Array<any> = [];\n private readonly maxSizeReached = 'Max size reached';\n private saturate: boolean;\n private nextItemIndex: number;\n private getTransformedData: (data, itemIndex?) => DataSetItem[];\n private readonly inputposition: string;\n private readonly showsearchicon: boolean;\n\n @ViewChild(SearchComponent, /* TODO: add static flag */ {static: true}) searchComponent: SearchComponent;\n private _datasource: any;\n private _unsubscribeDv = false;\n private readonly searchkey: string;\n private _debounceUpdateQueryModel: any = null;\n private readonly limit: number;\n private _classExpr: any;\n private readonly minchars: number;\n private readonly matchmode: string;\n\n // getter setter is added to pass the datasource to searchcomponent.\n get datasource () {\n return this._datasource;\n }\n\n set datasource(nv) {\n this._datasource = nv;\n this.searchComponent.datasource = nv;\n if (this._debounceUpdateQueryModel) {\n this._debounceUpdateQueryModel(this.datavalue || this.toBeProcessedDatavalue);\n }\n }\n\n constructor(\n inj: Injector,\n @Attribute('displayfield.bind') private readonly bindDisplayField,\n @Attribute('displayexpression.bind') private readonly bindDisplayExpr,\n @Attribute('displayimagesrc.bind') private readonly bindDisplayImgSrc,\n @Attribute('datafield.bind') private readonly bindDataField,\n @Attribute('dataset.bind') private readonly bindDataSet,\n @Attribute('chipclass.bind') private readonly bindChipclass,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n\n // set the showsearchicon as false by default.\n if (!isDefined(this.showsearchicon)) {\n this.showsearchicon = false;\n }\n\n this.multiple = true;\n this.nextItemIndex = 0; // default chip index\n\n this._debounceUpdateQueryModel = debounce((val) => {\n this.updateQueryModel(val).then(() => {\n if (this.bindChipclass) {\n forEach(this.chipsList, (item, index) => {\n this.registerChipItemClass(item, index);\n });\n }\n });\n }, 150);\n\n const datasetSubscription = this.dataset$.subscribe(() => {\n this.searchComponent.dataset = this.dataset;\n // clearing the last results when dataset is reassigned\n (this.searchComponent as any)._lastResult = undefined;\n this.nextItemIndex = this.datasetItems.length;\n if (this._debounceUpdateQueryModel) {\n this._debounceUpdateQueryModel(this.datavalue || this.toBeProcessedDatavalue);\n }\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n const datavalueSubscription = this.datavalue$.subscribe((val: Array<string> | string) => {\n // update queryModel only when parentRef is available.\n if (!this._unsubscribeDv) {\n this.chipsList = [];\n // if the datafield is ALLFILEDS do not fetch the records\n // update the query model with the values we have\n if (this._debounceUpdateQueryModel) {\n this._debounceUpdateQueryModel(val);\n }\n }\n });\n this.registerDestroyListener(() => datavalueSubscription.unsubscribe());\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.searchComponent.multiple = true;\n this.searchComponent.binddisplayimagesrc = this.bindDisplayImgSrc;\n this.searchComponent.displayimagesrc = this.displayimagesrc;\n this.searchComponent.binddisplaylabel = this.bindDisplayExpr;\n this.searchComponent.displaylabel = this.displayfield;\n this.searchComponent.datafield = this.bindDataField || this.datafield;\n this.searchComponent.binddataset = this.bindDataSet;\n this.searchComponent.dataset = this.dataset;\n this.searchComponent.searchkey = this.searchkey;\n this.searchComponent.limit = this.limit;\n this.searchComponent.debouncetime = this.debouncetime;\n this.searchComponent.matchmode = this.matchmode;\n\n this.getTransformedData = (val, isCustom) => {\n return this.searchComponent.getTransformedData([val], this.nextItemIndex++, isCustom);\n };\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (this.enablereorder) {\n this.configureDnD();\n }\n }\n\n /**\n * This method returns the evaluated class expression.\n * @param $index index of the chip\n * @param item chip object containing the key, value, label\n * @returns {any} evaluated class expression value\n */\n private registerChipItemClass(item, $index) {\n if (this.bindChipclass) {\n const watchName = `${this.widgetId}_chipItemClass_${$index}`;\n $unwatch(watchName);\n //[Todo-CSP]: same as list item class\n this.registerDestroyListener($watch(this.bindChipclass, this.viewParent, {item, $index}, (nv, ov) => {\n this.applyItemClass(getConditionalClasses(nv, ov), $index);\n }, watchName));\n }\n }\n\n private applyItemClass(val, index) {\n const chipItems = this.nativeElement.querySelectorAll('.chip-item');\n const chipItem = chipItems.item(index);\n if (chipItem) {\n $(chipItem).removeClass(val.toRemove).addClass(val.toAdd);\n return;\n }\n setTimeout(() => {\n const retryChip = this.nativeElement.querySelectorAll('.chip-item').item(index);\n if (retryChip) {\n $(retryChip).removeClass(val.toRemove).addClass(val.toAdd);\n }\n }, 50);\n }\n\n private removeDuplicates() {\n this.chipsList = getUniqObjsByDataField(this.chipsList, this.datafield, this.displayfield || this.displaylabel);\n }\n\n // This method updates the queryModel.\n // default call to get the default data can be done only when defaultQuery is true.\n private updateQueryModel(data: any): Promise<void> {\n const promises = [];\n if (!data) {\n this.chipsList = [];\n return Promise.resolve();\n }\n\n // clone the data as the updations on data will change the datavalue.\n let dataValue = clone(data);\n const prevChipsList = this.chipsList;\n this.chipsList = [];\n\n // update the model when model has items more than maxsize\n if (this.maxsize && dataValue.length > this.maxsize) {\n this._modelByValue = dataValue = slice(dataValue, 0, this.maxsize);\n data = dataValue;\n }\n\n const searchQuery: Array<string> = [];\n\n /**\n * For each value in datavalue,\n * 1. check whether value is in datasetItems, if item is found, addd to the chipsList.\n * 2. else make a default query to the filter and get the record.\n * 3. In step 2, if datavalue is not ALLFIELDS, then make a query. Extract the chipsList from the query response.\n * 4. If there is no response for the value and allowonlyselect is true, remove the value from the datavalue. So that datavalue just contains the valid values.\n * 5. In step 2, if datavalue is ALLFIELDS and value is object, then just prepare the datasetItem from the value.\n * 6. If value is not object and allowonlyselect is false, then create a customModel and replace this value with customModel and prepare datasetItem from this value\n */\n dataValue.forEach((val: any, i: number) => {\n const itemFound = find(this.datasetItems, item => {\n return isObject(item.value) ? isEqual(item.value, val) : toString(item.value) === toString(val);\n });\n\n if (itemFound) {\n this.chipsList.push(itemFound);\n } else if (this.datafield !== ALLFIELDS) {\n searchQuery.push(val);\n } else if (this.datafield === ALLFIELDS) {\n let dataObj, isCustom = false;\n if (!isObject(val)) {\n dataObj = this.createCustomDataModel(val);\n isCustom = true;\n if (dataObj) {\n data.splice(i, 1, dataObj);\n }\n } else {\n // if custom chips is already generated, val will be object as {'dataField_val': 'entered_val'}\n // Hence check this val in previous chipList and assign the iscustom flag\n const prevChipObj = prevChipsList.find(obj => {\n return isEqual(obj.value, val);\n });\n if (prevChipObj) {\n isCustom = prevChipObj.iscustom;\n }\n }\n dataObj = dataObj || val;\n\n const transformedData = this.getTransformedData(dataObj, isCustom);\n const chipObj = transformedData[0];\n if (isCustom) {\n (chipObj as any).iscustom = isCustom;\n }\n this.chipsList.push(chipObj);\n }\n });\n\n // make default query with all the values and if response for the value is not in datavalue then add a custom chip object.\n if (searchQuery.length) {\n promises.push(this.getDefaultModel(searchQuery, this.nextItemIndex)\n .then(response => {\n this.chipsList = this.chipsList.concat(response || []);\n dataValue.forEach((val: any, i: number) => {\n const isExists = find(this.chipsList, (obj) => {\n return obj.value.toString() === val.toString();\n });\n\n if (!isExists) {\n if (this.allowonlyselect) {\n const index = data.indexOf(val);\n if (index > -1) {\n data.splice(index, 1);\n }\n return;\n }\n const transformedData = this.getTransformedData(val, true);\n const chipObj = transformedData[0];\n (chipObj as any).iscustom = true;\n this.chipsList.push(chipObj);\n }\n });\n }));\n }\n\n // default chip data is adding focus on to the search input. Hence this flag helps not to focus.\n this.resetSearchModel(true);\n\n return Promise.all(promises).then(() => {\n this._modelByValue = data;\n this.removeDuplicates();\n this.updateMaxSize();\n $appDigest();\n });\n }\n\n private resetSearchModel(defaultQuery?: boolean) {\n this._unsubscribeDv = true;\n // clear search will empty the query model and gets the data when minchars is 0 (i.e. autocomplete) on focus\n // defaultQuery flag is set when widget is not active. This will only load the autocomplete dropup with minchars as 0 when widget is focused/active\n (this.searchComponent as any).clearSearch(undefined, !this.minchars && !defaultQuery);\n this._unsubscribeDv = false;\n }\n\n // Add the newItem to the list\n private addItem($event: Event, widget?: SearchComponent) {\n const searchComponent = widget;\n let allowAdd;\n let chipObj;\n\n if (searchComponent && isDefined(searchComponent.datavalue) && searchComponent.queryModel !== '') {\n if (!searchComponent.query || !trim(searchComponent.query)) {\n return;\n }\n chipObj = searchComponent.queryModel;\n } else {\n if (this.allowonlyselect) {\n return;\n }\n let dataObj;\n if (this.datafield === ALLFIELDS) {\n if (!isObject(this.searchComponent.query) && trim(this.searchComponent.query)) {\n dataObj = this.createCustomDataModel(this.searchComponent.query);\n // return if the custom chip is empty\n if (!dataObj) {\n this.resetSearchModel();\n return;\n }\n }\n }\n\n const data = dataObj || trim(this.searchComponent.query);\n if (data) {\n const transformedData = this.getTransformedData(data, true);\n chipObj = transformedData[0];\n chipObj.iscustom = true;\n }\n }\n\n if (!isDefined(chipObj) || chipObj === '') {\n return;\n }\n\n allowAdd = this.invokeEventCallback('beforeadd', {$event, newItem: chipObj});\n\n if (isDefined(allowAdd) && !toBoolean(allowAdd)) {\n return;\n }\n\n if (this.isDuplicate(chipObj)) {\n this.resetSearchModel();\n return;\n }\n this.registerChipItemClass(chipObj, this.chipsList.length);\n this.chipsList.push(chipObj);\n\n if (!this.datavalue) {\n this._modelByValue = [chipObj.value];\n } else {\n this._modelByValue = [...this._modelByValue, chipObj.value];\n }\n\n this._unsubscribeDv = true;\n this.invokeOnTouched();\n this.invokeOnChange(this._modelByValue, $event || {}, true);\n\n this.invokeEventCallback('add', {$event, $item: chipObj});\n\n this.updateMaxSize();\n\n // reset input box when item is added.\n this.resetSearchModel();\n\n // stop the event to not to call the submit event on enter press.\n if ($event && (($event as any).key === 'Enter' || ($event as any).keyCode === 13)) {\n this.stopEvent($event);\n }\n }\n\n // Prepare datavalue object from a string(junk) value when datafield is allFields.\n private createCustomDataModel(val: string) {\n const key = this.displayfield || (this.datafield !== ALLFIELDS ? this.datafield : undefined);\n\n if (key) {\n const customObj = {};\n customObj[key] = val;\n return customObj;\n }\n }\n\n // Check if newItem already exists\n private isDuplicate(item: DataSetItem) {\n if (this.datafield === ALLFIELDS) {\n return findIndex(this.chipsList, {value: item.value}) > -1;\n }\n return findIndex(this.chipsList, {key: item.key}) > -1;\n }\n\n // Check if max size is reached\n private updateMaxSize() {\n this.saturate = this.maxsize > 0 && this.chipsList.length === this.maxsize;\n }\n\n // Makes call to searchComponent to filter the dataSource based on the query.\n protected getDefaultModel(query: Array<string> | string, index?: number) {\n this.nextItemIndex++;\n return this.searchComponent.getDataSource(query, true, index)\n .then((response) => {\n // @ts-ignore\n return filter(query, queryVal => {\n find(response, {value: queryVal});\n });\n });\n }\n\n private handleChipClick($event: Event, chip: DataSetItem) {\n if (this.readonly) {\n return;\n }\n ($event.currentTarget as any).focus();\n this.invokeEventCallback('chipclick', {$event, $item: chip});\n }\n\n private handleChipFocus($event: Event, chip: DataSetItem) {\n if (this.readonly) {\n return;\n }\n (chip as any).active = true;\n this.invokeEventCallback('chipselect', {$event, $item: chip});\n }\n\n // To avoid form submit on pressing enter key\n public stopEvent($event: Event) {\n const inputValue = ($event.target as HTMLInputElement)?.value ?? '';\n if(inputValue.trim()){\n $event.stopPropagation();\n $event.preventDefault();\n }\n }\n\n public onTextDelete($event: Event) {\n if (isAppleProduct) {\n this.onInputClear($event);\n }\n }\n\n public onInputClear($event: Event) {\n if (!this.chipsList?.length || this.searchComponent.query) {\n return;\n }\n this.$element.find('li.chip-item > a.app-chip').last().focus();\n this.stopEvent($event);\n }\n\n private onBackspace($event: Event, $item: DataSetItem, $index: number) {\n if (this.readonly) {\n return;\n }\n this.removeItem($event, $item, $index, true);\n }\n\n private onDelete($event: Event, $item: DataSetItem, $index: number) {\n if (this.readonly) {\n return;\n }\n this.removeItem($event, $item, $index);\n }\n\n public onArrowLeft($item?: DataSetItem, $index?: number) {\n if (this.readonly) {\n return;\n }\n\n // On left arrow click when search input query is empty.\n if (!this.searchComponent.query && !isDefined($index) && !isDefined($item)) {\n this.$element.find('li.chip-item > a.app-chip').last().focus();\n return;\n }\n\n if ($index > 0) {\n this.$element.find('li.chip-item > a.app-chip').get($index - 1).focus();\n } else {\n this.focusSearchBox();\n }\n }\n\n public onArrowRight($item?: DataSetItem, $index?: number) {\n if (this.readonly) {\n return;\n }\n // On right arrow click when search input query is empty.\n if (!this.searchComponent.query && !isDefined($index) && !isDefined($item)) {\n this.$element.find('li.chip-item > a.app-chip').first().focus();\n return;\n }\n\n if ($index < (this.chipsList.length - 1)) {\n this.$element.find('li.chip-item > a.app-chip').get($index + 1).focus();\n } else {\n this.focusSearchBox();\n }\n }\n\n // focus search box.\n private focusSearchBox() {\n this.$element.find('.app-chip-input > input.app-textbox').focus();\n }\n\n // Remove the item from list\n private removeItem($event: Event, item: DataSetItem, index: number, canFocus?: boolean) {\n $event.stopPropagation();\n\n const indexes = isArray(index) ? index : [index];\n const focusIndex = max(indexes);\n\n const items = reduce(indexes, (result, i) => {\n result.push(this.chipsList[i]);\n return result;\n }, []);\n\n // prevent deletion if the before-remove event callback returns false\n const allowRemove = this.invokeEventCallback('beforeremove', {$event, $item: items.length === 1 ? items[0] : items});\n if (isDefined(allowRemove) && !toBoolean(allowRemove)) {\n return;\n }\n\n const prevDatavalue = clone(this.datavalue);\n\n // focus next chip after deletion.\n // if there are no chips in the list focus search box\n setTimeout(() => {\n const chipsLength = this.chipsList.length;\n const $chipsList = this.$element.find('li.chip-item > a.app-chip');\n\n if (!chipsLength || !canFocus) {\n this.focusSearchBox();\n } else if ((chipsLength - 1) < focusIndex) {\n // if focus index is greater than chips length select last chip\n $chipsList.get(chipsLength - 1).focus();\n } else {\n // manually set the succeeding chip as active if there is a chip next to the current chip.\n this.chipsList[focusIndex].active = true;\n $chipsList.get(focusIndex).focus();\n }\n });\n\n const pulledItems = pullAt(this.chipsList, indexes);\n\n pulledItems.forEach(datasetItem => {\n this._modelByValue = filter(this._modelByValue, val => {\n return !(isObject(val) ? isEqual(val, datasetItem.value) : toString(val) === toString(datasetItem.value));\n });\n });\n\n this._unsubscribeDv = false;\n\n this.invokeOnChange(this._modelByValue, $event, true);\n this.invokeEventCallback('change', {$event, newVal: this.datavalue, oldVal: prevDatavalue});\n\n this.updateMaxSize();\n\n this.invokeEventCallback('remove', {$event, $item: items.length === 1 ? items[0] : items});\n }\n\n /**\n * Swaps items in an array if provided with indexes.\n * @param data :- array to be swapped\n * @param newIndex :- new index for the element to be placed\n * @param currentIndex :- the current index of the element.\n */\n private swapElementsInArray(data: Array<any>, newIndex: number, currentIndex: number) {\n const draggedItem = pullAt(data, currentIndex)[0];\n data.splice(newIndex, 0, draggedItem);\n }\n\n /**\n * Cancels the reorder by reseting the elements to the original position.\n */\n private resetReorder() {\n this.$element.removeData('oldIndex');\n }\n\n private invokeOnBeforeServiceCall(inputData) {\n this.invokeEventCallback('beforeservicecall', {inputData});\n }\n\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n if (eventName === 'remove' || eventName === 'beforeremove' || eventName === 'chipselect'\n || eventName === 'chipclick' || eventName === 'add' || eventName === 'reorder' || eventName === 'change') {\n return;\n }\n\n super.handleEvent(node, eventName, eventCallback, locals);\n }\n\n // Configures the reordable feature in chips widgets.\n private configureDnD() {\n const options = {\n items: '> li:not(.app-chip-search)',\n placeholder: 'chip-placeholder'\n };\n\n configureDnD(this.$element, options, this.onReorderStart.bind(this), this.update.bind(this));\n }\n\n // Triggered on drag start while reordering.\n private onReorderStart(evt: Event, ui: Object) {\n const helper = (ui as any).helper;\n // increasing the width of the dragged item by 1\n helper.width(helper.width() + 1);\n this.$element.data('oldIndex', (ui as any).item.index() - (this.inputposition === 'first' ? 1 : 0));\n }\n\n // updates the chipsList and datavalue on reorder.\n private update($event: Event, ui: Object) {\n let changedItem,\n newIndex,\n oldIndex;\n\n // Get the index of the item at position before drag and after the reorder.\n newIndex = (ui as any).item.index() - (this.inputposition === 'first' ? 1 : 0);\n oldIndex = this.$element.data('oldIndex');\n\n newIndex = this.chipsList.length === newIndex ? newIndex - 1 : newIndex;\n changedItem = {\n oldIndex: oldIndex,\n newIndex: newIndex,\n item: this.chipsList[oldIndex]\n };\n\n if (newIndex === oldIndex) {\n this.resetReorder();\n return;\n }\n changedItem.item = this.chipsList[oldIndex];\n\n const allowReorder = this.invokeEventCallback('beforereorder', {$event, $data: this.chipsList, $changedItem: changedItem});\n\n if (isDefined(allowReorder) && toBoolean(allowReorder) === false) {\n this.resetReorder();\n return;\n }\n\n // modify the chipsList and datavalue after the reorder.\n this.swapElementsInArray(this.chipsList, newIndex, oldIndex);\n this.swapElementsInArray(this._modelByValue, newIndex, oldIndex);\n\n changedItem.item = this.chipsList[newIndex];\n\n this.chipsList = [...this.chipsList];\n\n this.resetReorder();\n this.invokeEventCallback('reorder', {$event, $data: this.chipsList, $changedItem: changedItem});\n }\n\n onPropertyChange(key: string, nv: any, ov: any) {\n if (key === 'tabindex') {\n return;\n }\n if (key === 'dataoptions') {\n (this.searchComponent as any).dataoptions = nv;\n }\n if (key === 'datafield') {\n this.searchComponent.datafield = this.datafield;\n }\n if (key === 'displayfield') {\n this.searchComponent.displaylabel = this.displayfield;\n }\n if (key === 'displayexpression') {\n this.searchComponent.binddisplaylabel = this.binddisplayexpression ? this.binddisplayexpression : this.displayexpression;\n }\n if (key === 'displayimagesrc') {\n this.searchComponent.binddisplayimagesrc = this.binddisplayimagesrc ? this.binddisplayimagesrc : this.displayimagesrc;\n }\n if (key === 'limit') {\n this.searchComponent.limit = this.limit;\n }\n if (key === 'matchmode') {\n this.searchComponent.matchmode = this.matchmode;\n }\n if (key === 'groupby') {\n this.searchComponent.groupby = this.groupby;\n }\n if (key === 'enablereorder') {\n if (this.$element.hasClass('ui-sortable')) {\n this.$element.sortable('option', 'disabled', !nv);\n } else if (nv) {\n this.configureDnD();\n }\n\n // Add this block to handle drag prevention\n const chipElements = this.$element.find('.chip-item a.app-chip');\n if (!nv) {\n chipElements.addClass('no-drag');\n // Prevent default drag behavior\n chipElements.on('dragstart', (e) => {\n e.preventDefault();\n return false;\n });\n } else {\n chipElements.removeClass('no-drag');\n chipElements.off('dragstart');\n }\n }\n if (key === 'readonly') {\n if (nv) {\n this.$element.addClass('readonly');\n } else {\n this.$element.removeClass('readonly');\n }\n }\n if (key === 'inputposition') {\n const $inputEl = this.$element.find('li.app-chip-search');\n if (nv === 'first') {\n this.$element.prepend($inputEl);\n } else {\n this.$element.append($inputEl);\n }\n }\n if (key === 'autofocus' && nv) {\n // setting the autofocus on the input once after dom is updated\n setTimeout(() => {\n const $chipsList = this.$element.find('.app-chip-input > input.app-textbox');\n if ($chipsList?.length) {\n this.focusSearchBox();\n }\n });\n }\n super.onPropertyChange(key, nv, ov);\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear chips list array\n this.chipsList = [];\n\n // MEMORY LEAK FIX: Nullify debounced function closure\n this._debounceUpdateQueryModel = null;\n\n // MEMORY LEAK FIX: Clear search component reference\n this.searchComponent = null;\n\n // MEMORY LEAK FIX: Destroy jQuery sortable if enabled\n if (this.enablereorder && this.$element) {\n try {\n this.$element.sortable('destroy');\n } catch (e) {\n // Ignore errors during destroy\n }\n }\n\n // MEMORY LEAK FIX: Clear transform function reference\n this.getTransformedData = null;\n\n // MEMORY LEAK FIX: Clear class expression\n this._classExpr = null;\n\n // Call parent ngOnDestroy (DatasetAwareFormComponent has cleanup)\n super.ngOnDestroy();\n }\n}\n","@for (item of chipsList; track item) {\n <li class=\"chip-item {{chipclass && !bindChipclass ? chipclass : ''}}\"\n [ngClass]=\"{'active': item.active, 'disabled': disabled}\">\n <a href=\"javascript:void(0)\" class=\"app-chip\"\n (click)=\"handleChipClick($event, item)\"\n (keydown.delete)=\"onDelete($event, item, $index)\"\n (keydown.backspace)=\"onBackspace($event, item, $index)\"\n (keydown.arrowleft)=\"onArrowLeft(item, $index)\"\n (keydown.arrowright)=\"onArrowRight(item, $index)\"\n (focus)=\"handleChipFocus($event, item)\"\n (blur)=\"readonly ? 0 : item.active = false\"\n [ngClass]=\"{'no-drag': !enablereorder,'chip-duplicate bg-danger': item.isDuplicate, 'chip-picture': item.imgSrc}\">\n @if (item.imgSrc) {\n <img data-identifier=\"img\" alt=\"Chip Image\" class=\"button-image-icon\" [src]=\"item.imgSrc\"/>\n }\n <span class=\"app-chip-title\" [textContent]=\"item.label\" [title]=\"item.label\"></span>\n @if (!readonly) {\n <button type=\"button\" [attr.aria-label]=\"'Clear ' + item.label\" class=\"btn btn-transparent\"\n (click)=\"removeItem($event, item, $index);\">\n <i class=\"app-icon wi wi-close\"></i>\n </button>\n }\n </a>\n </li>\n}\n<li class=\"app-chip-search\" [ngClass]=\"{'full-width': inputwidth === 'full'}\">\n <div #search wmSearch class=\"app-chip-input\"\n name=\"app-chip-search\"\n submit.event=\"addItem($event, widget)\"\n beforeservicecall.event=\"invokeOnBeforeServiceCall(inputData)\"\n disabled.bind=\"disabled || readonly || saturate\"\n datafield.bind=\"datafield\"\n allowonlyselect.bind=\"allowonlyselect\"\n searchkey.bind=\"searchkey\"\n orderby.bind=\"orderby\"\n placeholder.bind=\"saturate ? maxSizeReached : placeholder\"\n showsearchicon.bind=\"showsearchicon\"\n tabindex.bind=\"tabindex\"\n minchars.bind=\"minchars\"\n debouncetime.bind=\"debouncetime\"\n matchmode.bind=\"matchmode\"\n datacompletemsg.bind = \"datacompletemsg\"\n groupby.bind=\"groupby\"\n match.bind=\"match\"\n dateformat.bind=\"dateformat\"\n (keydown.enter)=\"stopEvent($event)\"\n (keydown.delete)=\"onTextDelete($event)\"\n (keydown.backspace)=\"onInputClear($event)\"\n (keydown.arrowleft)=\"onArrowLeft()\"\n (keydown.arrowright)=\"onArrowRight()\">\n </div>\n</li>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -5,34 +5,34 @@ import { DatasetAwareFormComponent } from '@wm/components/input/dataset-aware-fo
|
|
|
5
5
|
import { SearchComponent } from '@wm/components/basic/search';
|
|
6
6
|
|
|
7
7
|
declare class ChipsComponent extends DatasetAwareFormComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
8
|
-
private bindDisplayField;
|
|
9
|
-
private bindDisplayExpr;
|
|
10
|
-
private bindDisplayImgSrc;
|
|
11
|
-
private bindDataField;
|
|
12
|
-
private bindDataSet;
|
|
13
|
-
private bindChipclass;
|
|
14
|
-
static initializeProps: void;
|
|
8
|
+
private readonly bindDisplayField;
|
|
9
|
+
private readonly bindDisplayExpr;
|
|
10
|
+
private readonly bindDisplayImgSrc;
|
|
11
|
+
private readonly bindDataField;
|
|
12
|
+
private readonly bindDataSet;
|
|
13
|
+
private readonly bindChipclass;
|
|
14
|
+
static readonly initializeProps: void;
|
|
15
15
|
allowonlyselect: boolean;
|
|
16
16
|
enablereorder: boolean;
|
|
17
17
|
maxsize: number;
|
|
18
18
|
inputwidth: any;
|
|
19
|
-
private debouncetime;
|
|
19
|
+
private readonly debouncetime;
|
|
20
20
|
chipsList: Array<any>;
|
|
21
21
|
private readonly maxSizeReached;
|
|
22
22
|
private saturate;
|
|
23
23
|
private nextItemIndex;
|
|
24
24
|
private getTransformedData;
|
|
25
|
-
private inputposition;
|
|
26
|
-
private showsearchicon;
|
|
25
|
+
private readonly inputposition;
|
|
26
|
+
private readonly showsearchicon;
|
|
27
27
|
searchComponent: SearchComponent;
|
|
28
28
|
private _datasource;
|
|
29
29
|
private _unsubscribeDv;
|
|
30
|
-
private searchkey;
|
|
30
|
+
private readonly searchkey;
|
|
31
31
|
private _debounceUpdateQueryModel;
|
|
32
|
-
private limit;
|
|
32
|
+
private readonly limit;
|
|
33
33
|
private _classExpr;
|
|
34
|
-
private minchars;
|
|
35
|
-
private matchmode;
|
|
34
|
+
private readonly minchars;
|
|
35
|
+
private readonly matchmode;
|
|
36
36
|
get datasource(): any;
|
|
37
37
|
set datasource(nv: any);
|
|
38
38
|
constructor(inj: Injector, bindDisplayField: any, bindDisplayExpr: any, bindDisplayImgSrc: any, bindDataField: any, bindDataSet: any, bindChipclass: any, explicitContext: any);
|
|
@@ -108,15 +108,15 @@
|
|
|
108
108
|
// Call parent ngOnDestroy
|
|
109
109
|
super.ngOnDestroy();
|
|
110
110
|
}
|
|
111
|
-
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
112
|
-
static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
111
|
+
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0__namespace, type: ColorPickerComponent, deps: [{ token: i0__namespace.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component }); }
|
|
112
|
+
static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.21", type: ColorPickerComponent, isStandalone: true, selector: "[wmColorPicker]", providers: [
|
|
113
113
|
base.provideAs(ColorPickerComponent, i1.NG_VALUE_ACCESSOR, true),
|
|
114
114
|
base.provideAs(ColorPickerComponent, i1.NG_VALIDATORS, true),
|
|
115
115
|
base.provideAsWidgetRef(ColorPickerComponent),
|
|
116
116
|
ngxColorPicker.ColorPickerService
|
|
117
117
|
], viewQueries: [{ propertyName: "ngModel", first: true, predicate: i1.NgModel, descendants: true }, { propertyName: "inputEl", first: true, predicate: ["input"], descendants: true, read: i0.ElementRef, static: true }, { propertyName: "cpDirective", first: true, predicate: ngxColorPicker.ColorPickerDirective, descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<input aria-haspopup=\"true\" class=\"form-control app-textbox\"\n #input\n focus-target\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(colorPicker)]=\"datavalue\"\n (colorPickerChange)=\"handleChange($event);\"\n (cpToggleChange)=\"colorPickerToggleChange($event)\"\n [cpPosition]=\"'bottom'\"\n [cpCloseClickOutside]=\"outsideclick\"\n (colorPickerOpen)=\"colorPickerOpen($event)\"\n [attr.placeholder]=\"placeholder\"\n [disabled]=\"readonly || disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [(ngModel)]=\"datavalue\"\n (ngModelChange)=\"handleChange($event);\"\n [ngModelOptions]=\"{updateOn: 'change', standalone: true}\"\n (blur)=\"invokeOnTouched($event)\"\n [attr.accesskey]=\"shortcutkey\">\n<span class=\"input-group-addon colorpicker-container\">\n <i class=\"colored-box\" [style.backgroundColor]=\"datavalue\"> </i>\n</span>\n", dependencies: [{ kind: "ngmodule", type: common.CommonModule }, { kind: "ngmodule", type: i1.FormsModule }, { kind: "directive", type: i1__namespace.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: i1__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1__namespace.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ngxColorPicker.ColorPickerDirective, selector: "[colorPicker]", inputs: ["colorPicker", "cpWidth", "cpHeight", "cpToggle", "cpDisabled", "cpIgnoredElements", "cpFallbackColor", "cpColorMode", "cpCmykEnabled", "cpOutputFormat", "cpAlphaChannel", "cpDisableInput", "cpDialogDisplay", "cpSaveClickOutside", "cpCloseClickOutside", "cpUseRootViewContainer", "cpPosition", "cpPositionOffset", "cpPositionRelativeToArrow", "cpOKButton", "cpOKButtonText", "cpOKButtonClass", "cpCancelButton", "cpCancelButtonText", "cpCancelButtonClass", "cpEyeDropper", "cpPresetLabel", "cpPresetColors", "cpPresetColorsClass", "cpMaxPresetColorsLength", "cpPresetEmptyMessage", "cpPresetEmptyMessageClass", "cpAddColorButton", "cpAddColorButtonText", "cpAddColorButtonClass", "cpRemoveColorButtonClass", "cpArrowPosition", "cpExtraTemplate"], outputs: ["cpInputChange", "cpToggleChange", "cpSliderChange", "cpSliderDragEnd", "cpSliderDragStart", "colorPickerOpen", "colorPickerClose", "colorPickerCancel", "colorPickerSelect", "colorPickerChange", "cpCmykColorChange", "cpPresetColorsChange"], exportAs: ["ngxColorPicker"] }] }); }
|
|
118
118
|
}
|
|
119
|
-
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
119
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0__namespace, type: ColorPickerComponent, decorators: [{
|
|
120
120
|
type: i0.Component,
|
|
121
121
|
args: [{ standalone: true, imports: [common.CommonModule, i1.FormsModule, ngxColorPicker.ColorPickerDirective], selector: '[wmColorPicker]', providers: [
|
|
122
122
|
base.provideAs(ColorPickerComponent, i1.NG_VALUE_ACCESSOR, true),
|
|
@@ -92,15 +92,15 @@ class ColorPickerComponent extends BaseFormCustomComponent {
|
|
|
92
92
|
// Call parent ngOnDestroy
|
|
93
93
|
super.ngOnDestroy();
|
|
94
94
|
}
|
|
95
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
96
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
95
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: ColorPickerComponent, deps: [{ token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
96
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.21", type: ColorPickerComponent, isStandalone: true, selector: "[wmColorPicker]", providers: [
|
|
97
97
|
provideAs(ColorPickerComponent, NG_VALUE_ACCESSOR, true),
|
|
98
98
|
provideAs(ColorPickerComponent, NG_VALIDATORS, true),
|
|
99
99
|
provideAsWidgetRef(ColorPickerComponent),
|
|
100
100
|
ColorPickerService
|
|
101
101
|
], viewQueries: [{ propertyName: "ngModel", first: true, predicate: NgModel, descendants: true }, { propertyName: "inputEl", first: true, predicate: ["input"], descendants: true, read: ElementRef, static: true }, { propertyName: "cpDirective", first: true, predicate: ColorPickerDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<input aria-haspopup=\"true\" class=\"form-control app-textbox\"\n #input\n focus-target\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(colorPicker)]=\"datavalue\"\n (colorPickerChange)=\"handleChange($event);\"\n (cpToggleChange)=\"colorPickerToggleChange($event)\"\n [cpPosition]=\"'bottom'\"\n [cpCloseClickOutside]=\"outsideclick\"\n (colorPickerOpen)=\"colorPickerOpen($event)\"\n [attr.placeholder]=\"placeholder\"\n [disabled]=\"readonly || disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [(ngModel)]=\"datavalue\"\n (ngModelChange)=\"handleChange($event);\"\n [ngModelOptions]=\"{updateOn: 'change', standalone: true}\"\n (blur)=\"invokeOnTouched($event)\"\n [attr.accesskey]=\"shortcutkey\">\n<span class=\"input-group-addon colorpicker-container\">\n <i class=\"colored-box\" [style.backgroundColor]=\"datavalue\"> </i>\n</span>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ColorPickerDirective, selector: "[colorPicker]", inputs: ["colorPicker", "cpWidth", "cpHeight", "cpToggle", "cpDisabled", "cpIgnoredElements", "cpFallbackColor", "cpColorMode", "cpCmykEnabled", "cpOutputFormat", "cpAlphaChannel", "cpDisableInput", "cpDialogDisplay", "cpSaveClickOutside", "cpCloseClickOutside", "cpUseRootViewContainer", "cpPosition", "cpPositionOffset", "cpPositionRelativeToArrow", "cpOKButton", "cpOKButtonText", "cpOKButtonClass", "cpCancelButton", "cpCancelButtonText", "cpCancelButtonClass", "cpEyeDropper", "cpPresetLabel", "cpPresetColors", "cpPresetColorsClass", "cpMaxPresetColorsLength", "cpPresetEmptyMessage", "cpPresetEmptyMessageClass", "cpAddColorButton", "cpAddColorButtonText", "cpAddColorButtonClass", "cpRemoveColorButtonClass", "cpArrowPosition", "cpExtraTemplate"], outputs: ["cpInputChange", "cpToggleChange", "cpSliderChange", "cpSliderDragEnd", "cpSliderDragStart", "colorPickerOpen", "colorPickerClose", "colorPickerCancel", "colorPickerSelect", "colorPickerChange", "cpCmykColorChange", "cpPresetColorsChange"], exportAs: ["ngxColorPicker"] }] }); }
|
|
102
102
|
}
|
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: ColorPickerComponent, decorators: [{
|
|
104
104
|
type: Component,
|
|
105
105
|
args: [{ standalone: true, imports: [CommonModule, FormsModule, ColorPickerDirective], selector: '[wmColorPicker]', providers: [
|
|
106
106
|
provideAs(ColorPickerComponent, NG_VALUE_ACCESSOR, true),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/color-picker/src/color-picker.props.ts","../../../../../projects/components/widgets/input/color-picker/src/color-picker.component.ts","../../../../../projects/components/widgets/input/color-picker/src/color-picker.component.html","../../../../../projects/components/widgets/input/color-picker/src/index.ts"],"sourcesContent":["import {PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget} from '@wm/components/base';\nimport {FormWidgetType} from '@wm/core';\n\nexport const colorPickerProps = new Map(\n [\n ['autoclose', {value: 'outsideClick', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Select Color', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-colorpicker',\n colorPickerProps\n );\n registerFormWidget(\n FormWidgetType.COLORPICKER,\n new Map(colorPickerProps)\n );\n};\n","import { FormsModule } from '@angular/forms';\nimport { ColorPickerService, ColorPickerDirective } from 'ngx-color-picker';\nimport { Component, ElementRef, Inject, Injector, OnDestroy, Optional, ViewChild } from '@angular/core';\nimport { CommonModule } from \"@angular/common\";\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR, NgModel } from '@angular/forms';\n\nimport { addClass, removeClass } from '@wm/core';\nimport { AUTOCLOSE_TYPE, IWidgetConfig, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { BaseFormCustomComponent } from '@wm/components/input/base-form-custom';\nimport { registerProps } from './color-picker.props';\n\nconst DEFAULT_CLS = 'input-group app-colorpicker';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-colorpicker',\n hostClass: DEFAULT_CLS,\n displayType: 'inline-block'\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, FormsModule, ColorPickerDirective],\n selector: '[wmColorPicker]',\n templateUrl: './color-picker.component.html',\n providers: [\n provideAs(ColorPickerComponent, NG_VALUE_ACCESSOR, true),\n provideAs(ColorPickerComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(ColorPickerComponent),\n ColorPickerService\n ]\n})\nexport class ColorPickerComponent extends BaseFormCustomComponent implements OnDestroy {\n static initializeProps = registerProps();\n\n public required: boolean;\n public readonly: boolean;\n public disabled: boolean;\n public name: string;\n public placeholder: any;\n public tabindex: any;\n public shortcutkey: string;\n public outsideclick: boolean;\n public autoclose: string;\n public hint: string;\n public arialabel: string;\n\n @ViewChild(NgModel) ngModel: NgModel;\n @ViewChild('input', { static: true, read: ElementRef }) inputEl: ElementRef;\n @ViewChild(ColorPickerDirective) cpDirective: ColorPickerDirective;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n\n public colorPickerToggleChange(isOpen: boolean) {\n const colorPickerContainer = this.nativeElement.querySelector(`.color-picker`) as HTMLElement;\n if (colorPickerContainer) {\n (!isOpen) ? addClass(colorPickerContainer, 'hidden') : removeClass(colorPickerContainer, 'hidden');\n }\n }\n\n colorPickerOpen(value: string) {\n $('.hex-text input').attr('placeholder', 'Enter hex color code');\n if (this.autoclose === AUTOCLOSE_TYPE.ALWAYS) {\n const colorPickerContainer = this.nativeElement.querySelector(`.color-picker`) as HTMLElement;\n colorPickerContainer.onclick = () => this.cpDirective.closeDialog();\n }\n }\n\n open() {\n this.cpDirective.openDialog();\n }\n\n close() {\n this.cpDirective.closeDialog();\n }\n\n protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any) {\n if (eventName !== 'change' && eventName !== 'blur') {\n super.handleEvent(this.inputEl.nativeElement, eventName, callback, locals);\n }\n }\n\n public handleChange(newVal: boolean) {\n this.invokeOnChange(this.datavalue, { type: 'change' }, this.ngModel.valid);\n }\n\n protected onPropertyChange(key: string, nv: any, ov: any) {\n if (key === 'tabindex') {\n return;\n }\n if (key === 'required') {\n this._onChange(this.datavalue);\n return;\n }\n if (key === 'datavalue') {\n this._onChange(nv);\n return;\n }\n if (key === 'autoclose') {\n this.outsideclick = (nv === AUTOCLOSE_TYPE.OUTSIDECLICK || nv === AUTOCLOSE_TYPE.ALWAYS) ? true : false;\n }\n super.onPropertyChange(key, nv, ov);\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear all ViewChild references\n this.ngModel = null;\n this.inputEl = null;\n this.cpDirective = null;\n\n // Call parent ngOnDestroy\n super.ngOnDestroy();\n }\n}\n","<input aria-haspopup=\"true\" class=\"form-control app-textbox\"\n #input\n focus-target\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(colorPicker)]=\"datavalue\"\n (colorPickerChange)=\"handleChange($event);\"\n (cpToggleChange)=\"colorPickerToggleChange($event)\"\n [cpPosition]=\"'bottom'\"\n [cpCloseClickOutside]=\"outsideclick\"\n (colorPickerOpen)=\"colorPickerOpen($event)\"\n [attr.placeholder]=\"placeholder\"\n [disabled]=\"readonly || disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [(ngModel)]=\"datavalue\"\n (ngModelChange)=\"handleChange($event);\"\n [ngModelOptions]=\"{updateOn: 'change', standalone: true}\"\n (blur)=\"invokeOnTouched($event)\"\n [attr.accesskey]=\"shortcutkey\">\n<span class=\"input-group-addon colorpicker-container\">\n <i class=\"colored-box\" [style.backgroundColor]=\"datavalue\"> </i>\n</span>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/color-picker/src/color-picker.props.ts","../../../../../projects/components/widgets/input/color-picker/src/color-picker.component.ts","../../../../../projects/components/widgets/input/color-picker/src/color-picker.component.html","../../../../../projects/components/widgets/input/color-picker/src/index.ts"],"sourcesContent":["import {PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget} from '@wm/components/base';\nimport {FormWidgetType} from '@wm/core';\n\nexport const colorPickerProps = new Map(\n [\n ['autoclose', {value: 'outsideClick', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['datavalue', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['name', PROP_STRING],\n ['placeholder', {value: 'Select Color', ...PROP_STRING}],\n ['readonly', PROP_BOOLEAN],\n ['required', PROP_BOOLEAN],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-colorpicker',\n colorPickerProps\n );\n registerFormWidget(\n FormWidgetType.COLORPICKER,\n new Map(colorPickerProps)\n );\n};\n","import { FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, NgModel } from '@angular/forms';\nimport { ColorPickerService, ColorPickerDirective } from 'ngx-color-picker';\nimport { Component, ElementRef, Inject, Injector, OnDestroy, Optional, ViewChild } from '@angular/core';\nimport { CommonModule } from \"@angular/common\";\n\nimport { addClass, removeClass } from '@wm/core';\nimport { AUTOCLOSE_TYPE, IWidgetConfig, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { BaseFormCustomComponent } from '@wm/components/input/base-form-custom';\nimport { registerProps } from './color-picker.props';\n\nconst DEFAULT_CLS = 'input-group app-colorpicker';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-colorpicker',\n hostClass: DEFAULT_CLS,\n displayType: 'inline-block'\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, FormsModule, ColorPickerDirective],\n selector: '[wmColorPicker]',\n templateUrl: './color-picker.component.html',\n providers: [\n provideAs(ColorPickerComponent, NG_VALUE_ACCESSOR, true),\n provideAs(ColorPickerComponent, NG_VALIDATORS, true),\n provideAsWidgetRef(ColorPickerComponent),\n ColorPickerService\n ]\n})\nexport class ColorPickerComponent extends BaseFormCustomComponent implements OnDestroy {\n static readonly initializeProps = registerProps();\n\n public required: boolean;\n public readonly: boolean;\n public disabled: boolean;\n public name: string;\n public placeholder: any;\n public tabindex: any;\n public shortcutkey: string;\n public outsideclick: boolean;\n public autoclose: string;\n public hint: string;\n public arialabel: string;\n\n @ViewChild(NgModel) ngModel: NgModel;\n @ViewChild('input', { static: true, read: ElementRef }) inputEl: ElementRef;\n @ViewChild(ColorPickerDirective) cpDirective: ColorPickerDirective;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n\n public colorPickerToggleChange(isOpen: boolean) {\n const colorPickerContainer = this.nativeElement.querySelector(`.color-picker`) as HTMLElement;\n if (colorPickerContainer) {\n (!isOpen) ? addClass(colorPickerContainer, 'hidden') : removeClass(colorPickerContainer, 'hidden');\n }\n }\n\n colorPickerOpen(value: string) {\n $('.hex-text input').attr('placeholder', 'Enter hex color code');\n if (this.autoclose === AUTOCLOSE_TYPE.ALWAYS) {\n const colorPickerContainer = this.nativeElement.querySelector(`.color-picker`) as HTMLElement;\n colorPickerContainer.onclick = () => this.cpDirective.closeDialog();\n }\n }\n\n open() {\n this.cpDirective.openDialog();\n }\n\n close() {\n this.cpDirective.closeDialog();\n }\n\n protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any) {\n if (eventName !== 'change' && eventName !== 'blur') {\n super.handleEvent(this.inputEl.nativeElement, eventName, callback, locals);\n }\n }\n\n public handleChange(newVal: boolean) {\n this.invokeOnChange(this.datavalue, { type: 'change' }, this.ngModel.valid);\n }\n\n protected onPropertyChange(key: string, nv: any, ov: any) {\n if (key === 'tabindex') {\n return;\n }\n if (key === 'required') {\n this._onChange(this.datavalue);\n return;\n }\n if (key === 'datavalue') {\n this._onChange(nv);\n return;\n }\n if (key === 'autoclose') {\n this.outsideclick = (nv === AUTOCLOSE_TYPE.OUTSIDECLICK || nv === AUTOCLOSE_TYPE.ALWAYS) ? true : false;\n }\n super.onPropertyChange(key, nv, ov);\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear all ViewChild references\n this.ngModel = null;\n this.inputEl = null;\n this.cpDirective = null;\n\n // Call parent ngOnDestroy\n super.ngOnDestroy();\n }\n}\n","<input aria-haspopup=\"true\" class=\"form-control app-textbox\"\n #input\n focus-target\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(colorPicker)]=\"datavalue\"\n (colorPickerChange)=\"handleChange($event);\"\n (cpToggleChange)=\"colorPickerToggleChange($event)\"\n [cpPosition]=\"'bottom'\"\n [cpCloseClickOutside]=\"outsideclick\"\n (colorPickerOpen)=\"colorPickerOpen($event)\"\n [attr.placeholder]=\"placeholder\"\n [disabled]=\"readonly || disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [(ngModel)]=\"datavalue\"\n (ngModelChange)=\"handleChange($event);\"\n [ngModelOptions]=\"{updateOn: 'change', standalone: true}\"\n (blur)=\"invokeOnTouched($event)\"\n [attr.accesskey]=\"shortcutkey\">\n<span class=\"input-group-addon colorpicker-container\">\n <i class=\"colored-box\" [style.backgroundColor]=\"datavalue\"> </i>\n</span>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import { NgModel } from '@angular/forms';
|
|
1
2
|
import { ColorPickerDirective } from 'ngx-color-picker';
|
|
2
3
|
import * as i0 from '@angular/core';
|
|
3
4
|
import { OnDestroy, ElementRef, Injector } from '@angular/core';
|
|
4
|
-
import { NgModel } from '@angular/forms';
|
|
5
5
|
import { BaseFormCustomComponent } from '@wm/components/input/base-form-custom';
|
|
6
6
|
|
|
7
7
|
declare class ColorPickerComponent extends BaseFormCustomComponent implements OnDestroy {
|
|
8
|
-
static initializeProps: void;
|
|
8
|
+
static readonly initializeProps: void;
|
|
9
9
|
required: boolean;
|
|
10
10
|
readonly: boolean;
|
|
11
11
|
disabled: boolean;
|
|
@@ -91,12 +91,12 @@
|
|
|
91
91
|
}
|
|
92
92
|
super.ngOnDestroy();
|
|
93
93
|
}
|
|
94
|
-
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
95
|
-
static { this.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
94
|
+
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0__namespace, type: CompositeDirective, deps: [{ token: i0__namespace.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Directive }); }
|
|
95
|
+
static { this.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.21", type: CompositeDirective, isStandalone: true, selector: "div[wmComposite]", providers: [
|
|
96
96
|
base.provideAsWidgetRef(CompositeDirective)
|
|
97
97
|
], queries: [{ propertyName: "componentRefs", predicate: base.WidgetRef, descendants: true }], usesInheritance: true, ngImport: i0__namespace }); }
|
|
98
98
|
}
|
|
99
|
-
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
99
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0__namespace, type: CompositeDirective, decorators: [{
|
|
100
100
|
type: i0.Directive,
|
|
101
101
|
args: [{
|
|
102
102
|
standalone: true,
|
|
@@ -71,12 +71,12 @@ class CompositeDirective extends StylableComponent {
|
|
|
71
71
|
}
|
|
72
72
|
super.ngOnDestroy();
|
|
73
73
|
}
|
|
74
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
75
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
74
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: CompositeDirective, deps: [{ token: i0.Injector }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
75
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.21", type: CompositeDirective, isStandalone: true, selector: "div[wmComposite]", providers: [
|
|
76
76
|
provideAsWidgetRef(CompositeDirective)
|
|
77
77
|
], queries: [{ propertyName: "componentRefs", predicate: WidgetRef, descendants: true }], usesInheritance: true, ngImport: i0 }); }
|
|
78
78
|
}
|
|
79
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0, type: CompositeDirective, decorators: [{
|
|
80
80
|
type: Directive,
|
|
81
81
|
args: [{
|
|
82
82
|
standalone: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/composite/src/composite.props.ts","../../../../../projects/components/widgets/input/composite/src/composite.directive.ts","../../../../../projects/components/widgets/input/composite/src/index.ts"],"sourcesContent":["import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-form-group',\n new Map(\n [\n ['captionposition', PROP_STRING],\n ['name', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ]\n )\n );\n};\n","import {AfterViewInit, ContentChildren, Directive, Inject, Injector, OnDestroy, Optional} from '@angular/core';\n\nimport {addForIdAttributes, switchClass} from '@wm/core';\n\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler, WidgetRef } from '@wm/components/base';\n\nimport { registerProps } from './composite.props';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'form-group app-composite-widget clearfix';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-form-group',\n hostClass: DEFAULT_CLS\n};\n\nconst CAPTION_POSITION = {\n left: 'caption-left',\n right: 'caption-right',\n top: 'caption-top',\n floating: 'caption-floating'\n};\n\n@Directive({\n standalone: true,\n selector: 'div[wmComposite]',\n providers: [\n provideAsWidgetRef(CompositeDirective)\n ]\n})\nexport class CompositeDirective extends StylableComponent implements AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n\n // this is the reference to the component refs inside the form-group\n @ContentChildren(WidgetRef, {descendants: true}) componentRefs;\n\n public required: boolean;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n }\n\n /**\n * this is onPropertyChange handler for the form-group component\n * @param key\n * @param nv\n * @param ov\n */\n onPropertyChange(key, nv, ov) {\n if (key === 'captionposition') {\n switchClass(this.nativeElement, CAPTION_POSITION[nv], CAPTION_POSITION[ov]);\n } else if (key === 'required') {\n this.required = nv;\n this.assignRequiredToSubComponents();\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n /**\n * this method assigns the required on the component/directive based on the required attribute of the form-group\n */\n protected assignRequiredToSubComponents() {\n if (this.required && this.componentRefs) {\n setTimeout(() => {\n if (this.componentRefs) {\n this.componentRefs.forEach(componentRef => componentRef.widget.required = true);\n }\n }, 50);\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n addForIdAttributes(this.nativeElement);\n\n this.assignRequiredToSubComponents();\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear ContentChildren QueryList reference\n if (this.componentRefs) {\n this.componentRefs = null;\n }\n\n super.ngOnDestroy();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;AAEO,MAAM,aAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,eAAe,EACf,IAAI,GAAG,CACH;QACI,CAAC,iBAAiB,EAAE,WAAW,CAAC;QAChC,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,UAAU,EAAE,YAAY,CAAC;QAC1B,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC;AAC1C,KAAA,CACJ,CACJ;AACL,CAAC;;ACJD,MAAM,WAAW,GAAG,0CAA0C;AAC9D,MAAM,aAAa,GAAkB;AACjC,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,SAAS,EAAE;CACd;AAED,MAAM,gBAAgB,GAAG;AACrB,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,KAAK,EAAE,eAAe;AACtB,IAAA,GAAG,EAAE,aAAa;AAClB,IAAA,QAAQ,EAAE;CACb;AASK,MAAO,kBAAmB,SAAQ,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/composite/src/composite.props.ts","../../../../../projects/components/widgets/input/composite/src/composite.directive.ts","../../../../../projects/components/widgets/input/composite/src/index.ts"],"sourcesContent":["import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-form-group',\n new Map(\n [\n ['captionposition', PROP_STRING],\n ['name', PROP_STRING],\n ['required', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ]\n )\n );\n};\n","import {AfterViewInit, ContentChildren, Directive, Inject, Injector, OnDestroy, Optional} from '@angular/core';\n\nimport {addForIdAttributes, switchClass} from '@wm/core';\n\nimport { APPLY_STYLES_TYPE, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler, WidgetRef } from '@wm/components/base';\n\nimport { registerProps } from './composite.props';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'form-group app-composite-widget clearfix';\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-form-group',\n hostClass: DEFAULT_CLS\n};\n\nconst CAPTION_POSITION = {\n left: 'caption-left',\n right: 'caption-right',\n top: 'caption-top',\n floating: 'caption-floating'\n};\n\n@Directive({\n standalone: true,\n selector: 'div[wmComposite]',\n providers: [\n provideAsWidgetRef(CompositeDirective)\n ]\n})\nexport class CompositeDirective extends StylableComponent implements AfterViewInit, OnDestroy {\n static readonly initializeProps = registerProps();\n\n // this is the reference to the component refs inside the form-group\n @ContentChildren(WidgetRef, {descendants: true}) componentRefs;\n\n public required: boolean;\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n }\n\n /**\n * this is onPropertyChange handler for the form-group component\n * @param key\n * @param nv\n * @param ov\n */\n onPropertyChange(key, nv, ov) {\n if (key === 'captionposition') {\n switchClass(this.nativeElement, CAPTION_POSITION[nv], CAPTION_POSITION[ov]);\n } else if (key === 'required') {\n this.required = nv;\n this.assignRequiredToSubComponents();\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n /**\n * this method assigns the required on the component/directive based on the required attribute of the form-group\n */\n protected assignRequiredToSubComponents() {\n if (this.required && this.componentRefs) {\n setTimeout(() => {\n if (this.componentRefs) {\n this.componentRefs.forEach(componentRef => componentRef.widget.required = true);\n }\n }, 50);\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n addForIdAttributes(this.nativeElement);\n\n this.assignRequiredToSubComponents();\n }\n\n ngOnDestroy() {\n // MEMORY LEAK FIX: Clear ContentChildren QueryList reference\n if (this.componentRefs) {\n this.componentRefs = null;\n }\n\n super.ngOnDestroy();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { AfterViewInit, OnDestroy, Injector } from '@angular/core';
|
|
|
3
3
|
import { StylableComponent } from '@wm/components/base';
|
|
4
4
|
|
|
5
5
|
declare class CompositeDirective extends StylableComponent implements AfterViewInit, OnDestroy {
|
|
6
|
-
static initializeProps: void;
|
|
6
|
+
static readonly initializeProps: void;
|
|
7
7
|
componentRefs: any;
|
|
8
8
|
required: boolean;
|
|
9
9
|
constructor(inj: Injector, explicitContext: any);
|
|
@@ -80,14 +80,14 @@
|
|
|
80
80
|
// Call parent ngOnDestroy (NumberLocale → StylableComponent → BaseComponent)
|
|
81
81
|
super.ngOnDestroy();
|
|
82
82
|
}
|
|
83
|
-
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
84
|
-
static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
83
|
+
static { this.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0__namespace, type: CurrencyComponent, deps: [{ token: i0__namespace.Injector }, { token: i1__namespace.AppDefaults }, { token: i1__namespace.AbstractI18nService }, { token: i2__namespace.TrailingZeroDecimalPipe }, { token: 'EXPLICIT_CONTEXT', optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component }); }
|
|
84
|
+
static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.21", type: CurrencyComponent, isStandalone: true, selector: "[wmCurrency]", providers: [
|
|
85
85
|
i2.provideAs(CurrencyComponent, i3.NG_VALUE_ACCESSOR, true),
|
|
86
86
|
i2.provideAs(CurrencyComponent, i3.NG_VALIDATORS, true),
|
|
87
87
|
i2.provideAsWidgetRef(CurrencyComponent)
|
|
88
88
|
], viewQueries: [{ propertyName: "ngModel", first: true, predicate: i3.NgModel, descendants: true, static: true }, { propertyName: "inputEl", first: true, predicate: ["input"], descendants: true, read: i0.ElementRef, static: true }], usesInheritance: true, ngImport: i0__namespace, template: "<span class=\"input-group-addon\" [textContent]=\"currencySymbol\"></span>\n<input class=\"form-control app-textbox app-currency-input\"\n #input\n role=\"textbox\"\n type=\"text\"\n inputmode=\"decimal\"\n focus-target\n [autofocus]=\"autofocus\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [pattern]=\"regexp\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel || currencyCode\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [ngModel]=\"displayValue\"\n [ngModelOptions]=\"ngModelOptions\"\n\n (focus)=\"checkForTrailingZeros($event)\"\n (input)=\"onInputChange($event.target.value)\"\n (paste)=\"onPaste($event)\"\n (blur)=\"handleBlur($event); checkForTrailingZeros($event);\"\n (ngModelChange)=\"onModelChange($event)\"\n (keydown)=\"validateInputEntry($event);\"\n (keydown.enter)=\"onEnter($event)\"\n (keydown.ArrowUp)=\"onArrowPress($event, 'UP')\"\n (keydown.ArrowDown)=\"onArrowPress($event, 'DOWN')\">\n", dependencies: [{ kind: "directive", type: i2.TextContentDirective, selector: "[textContent]", inputs: ["textContent"] }, { kind: "ngmodule", type: i3.FormsModule }, { kind: "directive", type: i3__namespace.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: i3__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3__namespace.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3__namespace.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
89
89
|
}
|
|
90
|
-
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
90
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.21", ngImport: i0__namespace, type: CurrencyComponent, decorators: [{
|
|
91
91
|
type: i0.Component,
|
|
92
92
|
args: [{ standalone: true, imports: [i2.TextContentDirective, i3.FormsModule], selector: '[wmCurrency]', providers: [
|
|
93
93
|
i2.provideAs(CurrencyComponent, i3.NG_VALUE_ACCESSOR, true),
|