@3ddv/software-division-components 2.0.0 → 2.0.2
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/fesm2022/3ddv-software-division-components-generic-carousel.mjs +354 -0
- package/fesm2022/3ddv-software-division-components-generic-carousel.mjs.map +1 -0
- package/package.json +47 -67
- package/styles.css +2 -46
- package/types/3ddv-software-division-components-generic-carousel.d.ts +53 -0
- package/.postcssrc.json +0 -5
- package/.storybook/main.ts +0 -78
- package/.storybook/manager-head.html +0 -1
- package/.storybook/preview.ts +0 -30
- package/.storybook/tsconfig.json +0 -25
- package/.storybook/typings.d.ts +0 -4
- package/CHANGELOG.md +0 -8
- package/LICENSE.md +0 -21
- package/backoffice/checkbox/checkbox.component.css +0 -193
- package/backoffice/checkbox/checkbox.component.html +0 -23
- package/backoffice/checkbox/checkbox.component.ts +0 -252
- package/backoffice/checkbox/index.ts +0 -1
- package/backoffice/checkbox/ng-package.json +0 -1
- package/backoffice/checkbox/public-api.ts +0 -1
- package/backoffice/checkbox/story/checkbox.stories.ts +0 -304
- package/backoffice/datepicker/datepicker.component.css +0 -262
- package/backoffice/datepicker/datepicker.component.html +0 -40
- package/backoffice/datepicker/datepicker.component.ts +0 -366
- package/backoffice/datepicker/index.ts +0 -1
- package/backoffice/datepicker/ng-package.json +0 -1
- package/backoffice/datepicker/public-api.ts +0 -2
- package/backoffice/datepicker/story/datepicker.stories.ts +0 -32
- package/backoffice/datepicker/ui/ui-calendar-helm/src/index.ts +0 -14
- package/backoffice/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar-multi.ts +0 -183
- package/backoffice/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar.ts +0 -171
- package/backoffice/datepicker/ui/ui-date-picker-helm/src/index.ts +0 -16
- package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker-multi.token.ts +0 -43
- package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker-multi.ts +0 -177
- package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker.token.ts +0 -43
- package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker.ts +0 -167
- package/backoffice/datepicker/ui/ui-icon-helm/src/index.ts +0 -11
- package/backoffice/datepicker/ui/ui-icon-helm/src/lib/hlm-icon.token.ts +0 -20
- package/backoffice/datepicker/ui/ui-icon-helm/src/lib/hlm-icon.ts +0 -35
- package/backoffice/datepicker/ui/ui-popover-helm/src/index.ts +0 -15
- package/backoffice/datepicker/ui/ui-popover-helm/src/lib/hlm-popover-close.ts +0 -19
- package/backoffice/datepicker/ui/ui-popover-helm/src/lib/hlm-popover-content.ts +0 -30
- package/backoffice/index.ts +0 -1
- package/backoffice/input/index.ts +0 -1
- package/backoffice/input/input.component.css +0 -319
- package/backoffice/input/input.component.html +0 -51
- package/backoffice/input/input.component.ts +0 -497
- package/backoffice/input/ng-package.json +0 -1
- package/backoffice/input/public-api.ts +0 -2
- package/backoffice/input/story/input.stories.ts +0 -243
- package/backoffice/radio/index.ts +0 -1
- package/backoffice/radio/ng-package.json +0 -1
- package/backoffice/radio/public-api.ts +0 -1
- package/backoffice/radio/radio.component.css +0 -143
- package/backoffice/radio/radio.component.html +0 -15
- package/backoffice/radio/radio.component.ts +0 -154
- package/backoffice/radio/story/radio.stories.ts +0 -287
- package/backoffice/table/_components/pagination/pagination.component.css +0 -117
- package/backoffice/table/_components/pagination/pagination.component.html +0 -55
- package/backoffice/table/_components/pagination/pagination.component.ts +0 -79
- package/backoffice/table/_components/selection-table-head/selection-table-head.component.css +0 -0
- package/backoffice/table/_components/selection-table-head/selection-table-head.component.html +0 -6
- package/backoffice/table/_components/selection-table-head/selection-table-head.component.ts +0 -36
- package/backoffice/table/_components/selection-table-row/selection-table-row.component.css +0 -0
- package/backoffice/table/_components/selection-table-row/selection-table-row.component.html +0 -5
- package/backoffice/table/_components/selection-table-row/selection-table-row.component.ts +0 -12
- package/backoffice/table/_components/sort-header-button/sort-header-button.component.css +0 -14
- package/backoffice/table/_components/sort-header-button/sort-header-button.component.html +0 -11
- package/backoffice/table/_components/sort-header-button/sort-header-button.component.ts +0 -55
- package/backoffice/table/index.ts +0 -1
- package/backoffice/table/ng-package.json +0 -1
- package/backoffice/table/public-api.ts +0 -6
- package/backoffice/table/story/table.stories.ts +0 -364
- package/backoffice/table/table.component.css +0 -172
- package/backoffice/table/table.component.html +0 -53
- package/backoffice/table/table.component.ts +0 -347
- package/backoffice/table/ui/ui-icon-helm/src/index.ts +0 -11
- package/backoffice/table/ui/ui-icon-helm/src/lib/hlm-icon.token.ts +0 -20
- package/backoffice/table/ui/ui-icon-helm/src/lib/hlm-icon.ts +0 -35
- package/backoffice/table/ui/ui-table-helm/src/index.ts +0 -13
- package/backoffice/table/ui/ui-table-helm/src/lib/hlm-table.ts +0 -220
- package/components.json +0 -3
- package/dist/styles.css +0 -2
- package/documentation.json +0 -30473
- package/dvm/cart/cart.component.css +0 -103
- package/dvm/cart/cart.component.html +0 -31
- package/dvm/cart/cart.component.ts +0 -49
- package/dvm/cart/cart.stories.ts +0 -370
- package/dvm/cart/cart.types.ts +0 -8
- package/dvm/cart/index.ts +0 -2
- package/dvm/cart/ng-package.json +0 -1
- package/dvm/cart/public-api.ts +0 -8
- package/dvm/cart/seat-list.component.css +0 -281
- package/dvm/cart/seat-list.component.html +0 -85
- package/dvm/cart/seat-list.component.ts +0 -76
- package/dvm/cart/seat-list.stories.ts +0 -337
- package/dvm/cart-item/cart-item.component.html +0 -1
- package/dvm/cart-item/cart-item.component.ts +0 -8
- package/dvm/cart-item/cart-item.service.ts +0 -8
- package/dvm/cart-item/cart.stories.ts +0 -31
- package/dvm/cart-item/index.ts +0 -1
- package/dvm/cart-item/ng-package.json +0 -1
- package/dvm/cart-item/public-api.ts +0 -6
- package/dvm/index.ts +0 -1
- package/dvm/legend/index.ts +0 -1
- package/dvm/legend/legend.component.css +0 -49
- package/dvm/legend/legend.component.html +0 -8
- package/dvm/legend/legend.component.ts +0 -41
- package/dvm/legend/legend.stories.ts +0 -16
- package/dvm/legend/ng-package.json +0 -1
- package/dvm/legend/public-api.ts +0 -7
- package/dvm/legend/types.ts +0 -6
- package/dvm/legend/ui/legend-elements/index.ts +0 -1
- package/dvm/legend/ui/legend-elements/legend-elements.component.css +0 -49
- package/dvm/legend/ui/legend-elements/legend-elements.component.html +0 -8
- package/dvm/legend/ui/legend-elements/legend-elements.component.ts +0 -41
- package/dvm/loader/index.ts +0 -1
- package/dvm/loader/loader.component.html +0 -1
- package/dvm/loader/loader.component.ts +0 -8
- package/dvm/loader/loader.service.ts +0 -8
- package/dvm/loader/loader.stories.ts +0 -31
- package/dvm/loader/ng-package.json +0 -1
- package/dvm/loader/public-api.ts +0 -6
- package/dvm/map-loader/index.ts +0 -1
- package/dvm/map-loader/map-loader.component.css +0 -91
- package/dvm/map-loader/map-loader.component.html +0 -23
- package/dvm/map-loader/map-loader.component.ts +0 -187
- package/dvm/map-loader/map-loader.stories.ts +0 -16
- package/dvm/map-loader/ng-package.json +0 -1
- package/dvm/map-loader/public-api.ts +0 -5
- package/dvm/neighbors/index.ts +0 -1
- package/dvm/neighbors/neighbors.component.css +0 -158
- package/dvm/neighbors/neighbors.component.html +0 -45
- package/dvm/neighbors/neighbors.component.ts +0 -218
- package/dvm/neighbors/ng-package.json +0 -1
- package/dvm/neighbors/public-api.ts +0 -2
- package/dvm/neighbors/story/arrow-left-black-icon.svg +0 -3
- package/dvm/neighbors/story/mock-data.ts +0 -15
- package/dvm/neighbors/story/neighbours.stories.css +0 -12
- package/dvm/neighbors/story/neighbours.stories.ts +0 -117
- package/dvm/neighbors/types.ts +0 -14
- package/dvm/popover/base-popover.component.ts +0 -70
- package/dvm/popover/index.ts +0 -1
- package/dvm/popover/ng-package.json +0 -1
- package/dvm/popover/popover.component.css +0 -227
- package/dvm/popover/popover.component.html +0 -27
- package/dvm/popover/popover.component.ts +0 -236
- package/dvm/popover/popover.config.ts +0 -30
- package/dvm/popover/popover.service.ts +0 -627
- package/dvm/popover/popover.stories.ts +0 -873
- package/dvm/popover/public-api.ts +0 -14
- package/dvm/popover/seat-popover/seat-popover.component.css +0 -89
- package/dvm/popover/seat-popover/seat-popover.component.html +0 -40
- package/dvm/popover/seat-popover/seat-popover.component.ts +0 -74
- package/dvm/popover/section-popover/section-popover.component.css +0 -157
- package/dvm/popover/section-popover/section-popover.component.html +0 -58
- package/dvm/popover/section-popover/section-popover.component.ts +0 -106
- package/dvm/popover/services/dvm-popover-positioner.service.ts +0 -73
- package/dvm/popover/services/popover-manager.service.ts +0 -88
- package/dvm/popover/transformers/base-popover-data-transformer.ts +0 -36
- package/dvm/popover/types.ts +0 -104
- package/dvm/stepper/index.ts +0 -1
- package/dvm/stepper/ng-package.json +0 -1
- package/dvm/stepper/public-api.ts +0 -5
- package/dvm/stepper/stepper.component.css +0 -142
- package/dvm/stepper/stepper.component.html +0 -9
- package/dvm/stepper/stepper.component.ts +0 -101
- package/dvm/stepper/types.ts +0 -6
- package/dvm/ticket-info-item/index.ts +0 -1
- package/dvm/ticket-info-item/ng-package.json +0 -1
- package/dvm/ticket-info-item/public-api.ts +0 -6
- package/dvm/ticket-info-item/ticket-info-item.component.html +0 -1
- package/dvm/ticket-info-item/ticket-info-item.component.ts +0 -8
- package/dvm/ticket-info-item/ticket-info-item.service.ts +0 -8
- package/dvm/ticket-info-item/ticket-info-item.stories.ts +0 -31
- package/generic/add-digital-wallet/add-digital-wallet.component.css +0 -76
- package/generic/add-digital-wallet/add-digital-wallet.component.html +0 -46
- package/generic/add-digital-wallet/add-digital-wallet.component.ts +0 -44
- package/generic/add-digital-wallet/index.ts +0 -1
- package/generic/add-digital-wallet/ng-package.json +0 -1
- package/generic/add-digital-wallet/public-api.ts +0 -1
- package/generic/braintree/braintree.component.css +0 -7
- package/generic/braintree/braintree.component.ts +0 -134
- package/generic/braintree/index.ts +0 -1
- package/generic/braintree/ng-package.json +0 -1
- package/generic/braintree/public-api.ts +0 -6
- package/generic/braintree/story/braintree.stories.css +0 -3
- package/generic/braintree/story/braintree.stories.ts +0 -27
- package/generic/braintree/types.ts +0 -28
- package/generic/button/button.component.css +0 -305
- package/generic/button/button.component.html +0 -10
- package/generic/button/button.component.ts +0 -353
- package/generic/button/index.ts +0 -1
- package/generic/button/ng-package.json +0 -1
- package/generic/button/public-api.ts +0 -6
- package/generic/button/story/button.stories.ts +0 -384
- package/generic/button/ui/ui-button-helm/src/index.ts +0 -10
- package/generic/button/ui/ui-button-helm/src/lib/hlm-button.token.ts +0 -22
- package/generic/button/ui/ui-button-helm/src/lib/hlm-button.ts +0 -62
- package/generic/carousel/carousel-item.component.ts +0 -15
- package/generic/carousel/carousel-item.directive.ts +0 -14
- package/generic/carousel/carousel.component.css +0 -90
- package/generic/carousel/carousel.component.html +0 -13
- package/generic/carousel/carousel.component.ts +0 -44
- package/generic/carousel/index.ts +0 -1
- package/generic/carousel/public-api.ts +0 -2
- package/generic/carousel/ui/ui-carousel-helm/src/index.ts +0 -29
- package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-content.ts +0 -23
- package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-item.ts +0 -25
- package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-next.ts +0 -58
- package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-previous.ts +0 -61
- package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-slide-display.ts +0 -36
- package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel.ts +0 -105
- package/generic/dialog/dialog.component.css +0 -5
- package/generic/dialog/dialog.component.html +0 -3
- package/generic/dialog/dialog.component.ts +0 -20
- package/generic/dialog/dialog.stories.ts +0 -14
- package/generic/dialog/index.ts +0 -1
- package/generic/dialog/libs/ui-dialog-helm/src/index.ts +0 -37
- package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-close.ts +0 -20
- package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-content.ts +0 -56
- package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-description.ts +0 -17
- package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-footer.ts +0 -19
- package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-header.ts +0 -19
- package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-overlay.ts +0 -23
- package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-title.ts +0 -19
- package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.service.ts +0 -59
- package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.ts +0 -31
- package/generic/dialog/ng-package.json +0 -1
- package/generic/dialog/public-api.ts +0 -7
- package/generic/dialog/tsconfig.json +0 -7
- package/generic/dialog/ui/dialog-close-button/dialog-close-button.component.css +0 -0
- package/generic/dialog/ui/dialog-close-button/dialog-close-button.component.html +0 -1
- package/generic/dialog/ui/dialog-close-button/dialog-close-button.component.ts +0 -17
- package/generic/dialog/ui/dialog-footer/dialog-footer.component.css +0 -0
- package/generic/dialog/ui/dialog-footer/dialog-footer.component.html +0 -3
- package/generic/dialog/ui/dialog-footer/dialog-footer.component.ts +0 -11
- package/generic/dialog/ui/dialog-header/dialog-header.component.css +0 -0
- package/generic/dialog/ui/dialog-header/dialog-header.component.html +0 -8
- package/generic/dialog/ui/dialog-header/dialog-header.component.ts +0 -18
- package/generic/drawer/drawer.component.html +0 -1
- package/generic/drawer/drawer.component.ts +0 -8
- package/generic/drawer/drawer.service.ts +0 -8
- package/generic/drawer/drawer.stories.ts +0 -31
- package/generic/drawer/index.ts +0 -1
- package/generic/drawer/ng-package.json +0 -1
- package/generic/drawer/public-api.ts +0 -6
- package/generic/icon/icon.component.css +0 -7
- package/generic/icon/icon.component.html +0 -3
- package/generic/icon/icon.component.ts +0 -86
- package/generic/icon/icon.stories.ts +0 -16
- package/generic/icon/index.ts +0 -1
- package/generic/icon/lib/ui-icon-helm/src/index.ts +0 -11
- package/generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.token.ts +0 -20
- package/generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.ts +0 -36
- package/generic/icon/ng-package.json +0 -1
- package/generic/icon/public-api.ts +0 -6
- package/generic/icon/tsconfig.json +0 -7
- package/generic/index.ts +0 -1
- package/generic/select/index.ts +0 -1
- package/generic/select/lib/hlm-select-content.ts +0 -29
- package/generic/select/lib/hlm-select-group.ts +0 -17
- package/generic/select/lib/hlm-select-label.ts +0 -26
- package/generic/select/lib/hlm-select-option.ts +0 -37
- package/generic/select/lib/hlm-select-scroll-down.ts +0 -24
- package/generic/select/lib/hlm-select-scroll-up.ts +0 -23
- package/generic/select/lib/hlm-select-trigger.ts +0 -53
- package/generic/select/lib/hlm-select-value.ts +0 -17
- package/generic/select/lib/hlm-select.ts +0 -15
- package/generic/select/lib/index.ts +0 -38
- package/generic/select/ng-package.json +0 -1
- package/generic/select/public-api.ts +0 -3
- package/generic/select/select.component.css +0 -65
- package/generic/select/select.component.html +0 -19
- package/generic/select/select.component.ts +0 -25
- package/generic/select/types.ts +0 -4
- package/ng-package.json +0 -10
- package/public/3ddv-logo.jpg +0 -0
- package/public/neighbours-after.png +0 -0
- package/public/neighbours-before.png +0 -0
- package/shared/apply-theme-variables/apply-theme-variables.ts +0 -35
- package/shared/apply-theme-variables/index.ts +0 -1
- package/shared/format-value.pipe.ts +0 -23
- package/shared/index.ts +0 -1
- package/shared/lib-provider/config-token.ts +0 -4
- package/shared/lib-provider/index.ts +0 -1
- package/shared/lib-provider/provide-sdc.ts +0 -24
- package/shared/lib-provider/public-api.ts +0 -1
- package/shared/ng-package.json +0 -1
- package/shared/public-api.ts +0 -6
- package/shared/screen-observer/index.ts +0 -2
- package/shared/screen-observer/provide-screen-observer.ts +0 -17
- package/shared/screen-observer/screen-observer.ts +0 -56
- package/shared/screen-observer/sizable-base.ts +0 -70
- package/shared/theme-provider/generic-theme.ts +0 -1
- package/shared/theme-provider/index.ts +0 -1
- package/shared/theme-provider/public-api.ts +0 -1
- package/shared/theme-provider/theme-provider.directive.ts +0 -17
- package/shared/themes/sdc.css +0 -153
- package/shared/types.ts +0 -18
- package/src/private-exports.ts +0 -1
- package/src/public-api.ts +0 -20
- package/tsconfig.json +0 -50
- package/tsconfig.lib.prod.json +0 -6
- package/tsconfig.spec.json +0 -15
- package/tsconfig.temp.json +0 -1
- package/utils/index.ts +0 -1
- package/utils/ng-package.json +0 -1
- package/utils/public-api.ts +0 -1
- package/utils/validate-styles-for-component.ts +0 -39
- /package/{dist/README.md → README.md} +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-checkbox.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-checkbox.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-datepicker.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-datepicker.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-input.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-input.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-radio.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-radio.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-table.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-table.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-cart-item.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-cart-item.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-cart.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-cart.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-legend.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-legend.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-loader.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-loader.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-map-loader.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-map-loader.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-neighbors.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-neighbors.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-popover.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-popover.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-stepper.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-stepper.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-ticket-info-item.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-ticket-info-item.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-add-digital-wallet.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-add-digital-wallet.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-braintree.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-braintree.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-button.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-button.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-dialog.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-dialog.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-drawer.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-drawer.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-icon.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-icon.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-select.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-select.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-shared.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-shared.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-utils.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-utils.mjs.map +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components.mjs.map +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-backoffice-checkbox.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-backoffice-datepicker.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-backoffice-input.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-backoffice-radio.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-backoffice-table.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-dvm-cart-item.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-dvm-cart.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-dvm-legend.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-dvm-loader.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-dvm-map-loader.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-dvm-neighbors.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-dvm-popover.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-dvm-stepper.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-dvm-ticket-info-item.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-generic-add-digital-wallet.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-generic-braintree.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-generic-button.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-generic-dialog.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-generic-drawer.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-generic-icon.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-generic-select.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-shared.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components-utils.d.ts +0 -0
- /package/{dist/types → types}/3ddv-software-division-components.d.ts +0 -0
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { FormControl, Validators } from '@angular/forms';
|
|
2
|
-
import type { Meta, StoryObj } from '@storybook/angular';
|
|
3
|
-
import { DatePickerComponent } from '../datepicker.component';
|
|
4
|
-
|
|
5
|
-
const meta: Meta<DatePickerComponent> = {
|
|
6
|
-
title: 'Backoffice/DatePicker',
|
|
7
|
-
component: DatePickerComponent,
|
|
8
|
-
parameters: {
|
|
9
|
-
layout: 'centered',
|
|
10
|
-
},
|
|
11
|
-
tags: ['autodocs'],
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export default meta;
|
|
15
|
-
type Story = StoryObj<DatePickerComponent>;
|
|
16
|
-
|
|
17
|
-
// Basic input with default settings
|
|
18
|
-
export const Default: Story = {
|
|
19
|
-
render: () => ({
|
|
20
|
-
props: {
|
|
21
|
-
formControl: new FormControl('', [Validators.required, Validators.email]),
|
|
22
|
-
},
|
|
23
|
-
template: `
|
|
24
|
-
<sdc-datepicker
|
|
25
|
-
label="Email Address"
|
|
26
|
-
placeholder="Enter your email address"
|
|
27
|
-
type="email"
|
|
28
|
-
[formControl]="formControl"
|
|
29
|
-
/>
|
|
30
|
-
`,
|
|
31
|
-
}),
|
|
32
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { HlmCalendar } from './lib/hlm-calendar';
|
|
3
|
-
import { HlmCalendarMulti } from './lib/hlm-calendar-multi';
|
|
4
|
-
|
|
5
|
-
export * from './lib/hlm-calendar';
|
|
6
|
-
export * from './lib/hlm-calendar-multi';
|
|
7
|
-
|
|
8
|
-
export const HlmCalendarImports = [HlmCalendar, HlmCalendarMulti] as const;
|
|
9
|
-
|
|
10
|
-
@NgModule({
|
|
11
|
-
imports: [...HlmCalendarImports],
|
|
12
|
-
exports: [...HlmCalendarImports],
|
|
13
|
-
})
|
|
14
|
-
export class HlmCalendarModule {}
|
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
import { buttonVariants } from '@3ddv/software-division-components/generic/button';
|
|
2
|
-
import { HlmIcon } from '@3ddv/software-division-components/generic/icon';
|
|
3
|
-
import { BooleanInput, NumberInput } from '@angular/cdk/coercion';
|
|
4
|
-
import {
|
|
5
|
-
ChangeDetectionStrategy,
|
|
6
|
-
Component,
|
|
7
|
-
booleanAttribute,
|
|
8
|
-
computed,
|
|
9
|
-
input,
|
|
10
|
-
model,
|
|
11
|
-
numberAttribute,
|
|
12
|
-
viewChild,
|
|
13
|
-
} from '@angular/core';
|
|
14
|
-
import { NgIcon, provideIcons } from '@ng-icons/core';
|
|
15
|
-
import { lucideChevronLeft, lucideChevronRight } from '@ng-icons/lucide';
|
|
16
|
-
import {
|
|
17
|
-
BrnCalendarCell,
|
|
18
|
-
BrnCalendarCellButton,
|
|
19
|
-
BrnCalendarGrid,
|
|
20
|
-
BrnCalendarHeader,
|
|
21
|
-
BrnCalendarMulti,
|
|
22
|
-
BrnCalendarNextButton,
|
|
23
|
-
BrnCalendarPreviousButton,
|
|
24
|
-
BrnCalendarWeek,
|
|
25
|
-
BrnCalendarWeekday,
|
|
26
|
-
Weekday,
|
|
27
|
-
injectBrnCalendarI18n,
|
|
28
|
-
} from '@spartan-ng/brain/calendar';
|
|
29
|
-
import { hlm } from '@spartan-ng/brain/core';
|
|
30
|
-
import { injectDateAdapter } from '@spartan-ng/brain/date-time';
|
|
31
|
-
import type { ClassValue } from 'clsx';
|
|
32
|
-
|
|
33
|
-
@Component({
|
|
34
|
-
selector: 'hlm-calendar-multi',
|
|
35
|
-
imports: [
|
|
36
|
-
BrnCalendarMulti,
|
|
37
|
-
BrnCalendarHeader,
|
|
38
|
-
BrnCalendarNextButton,
|
|
39
|
-
BrnCalendarPreviousButton,
|
|
40
|
-
BrnCalendarWeekday,
|
|
41
|
-
BrnCalendarWeek,
|
|
42
|
-
BrnCalendarCellButton,
|
|
43
|
-
BrnCalendarCell,
|
|
44
|
-
BrnCalendarGrid,
|
|
45
|
-
NgIcon,
|
|
46
|
-
HlmIcon,
|
|
47
|
-
],
|
|
48
|
-
viewProviders: [provideIcons({ lucideChevronLeft, lucideChevronRight })],
|
|
49
|
-
template: `
|
|
50
|
-
<div
|
|
51
|
-
brnCalendarMulti
|
|
52
|
-
[min]="min()"
|
|
53
|
-
[max]="max()"
|
|
54
|
-
[minSelection]="minSelection()"
|
|
55
|
-
[maxSelection]="maxSelection()"
|
|
56
|
-
[disabled]="disabled()"
|
|
57
|
-
[(date)]="date"
|
|
58
|
-
[dateDisabled]="dateDisabled()"
|
|
59
|
-
[weekStartsOn]="weekStartsOn()"
|
|
60
|
-
[defaultFocusedDate]="defaultFocusedDate()"
|
|
61
|
-
[class]="_computedCalenderClass()">
|
|
62
|
-
<div class="inline-flex flex-col space-y-4">
|
|
63
|
-
<!-- Header -->
|
|
64
|
-
<div class="space-y-4">
|
|
65
|
-
<div class="relative flex items-center justify-center pt-1">
|
|
66
|
-
<div brnCalendarHeader class="text-sm font-medium">
|
|
67
|
-
{{ _heading() }}
|
|
68
|
-
</div>
|
|
69
|
-
|
|
70
|
-
<div class="flex items-center space-x-1">
|
|
71
|
-
<button
|
|
72
|
-
brnCalendarPreviousButton
|
|
73
|
-
class="ring-offset-background focus-visible:ring-ring border-input hover:bg-accent hover:text-accent-foreground absolute left-1 inline-flex h-7 w-7 items-center justify-center whitespace-nowrap rounded-md border bg-transparent p-0 text-sm font-medium opacity-50 transition-colors hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50">
|
|
74
|
-
<ng-icon hlm name="lucideChevronLeft" size="sm" />
|
|
75
|
-
</button>
|
|
76
|
-
|
|
77
|
-
<button
|
|
78
|
-
brnCalendarNextButton
|
|
79
|
-
class="ring-offset-background focus-visible:ring-ring border-input hover:bg-accent hover:text-accent-foreground absolute right-1 inline-flex h-7 w-7 items-center justify-center whitespace-nowrap rounded-md border bg-transparent p-0 text-sm font-medium opacity-50 transition-colors hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50">
|
|
80
|
-
<ng-icon hlm name="lucideChevronRight" size="sm" />
|
|
81
|
-
</button>
|
|
82
|
-
</div>
|
|
83
|
-
</div>
|
|
84
|
-
</div>
|
|
85
|
-
|
|
86
|
-
<table class="w-full border-collapse space-y-1" brnCalendarGrid>
|
|
87
|
-
<thead>
|
|
88
|
-
<tr class="flex">
|
|
89
|
-
<th
|
|
90
|
-
*brnCalendarWeekday="let weekday"
|
|
91
|
-
scope="col"
|
|
92
|
-
class="text-muted-foreground w-8 rounded-md text-[0.8rem] font-normal"
|
|
93
|
-
[attr.aria-label]="_i18n.labelWeekday(weekday)">
|
|
94
|
-
{{ _i18n.formatWeekdayName(weekday) }}
|
|
95
|
-
</th>
|
|
96
|
-
</tr>
|
|
97
|
-
</thead>
|
|
98
|
-
|
|
99
|
-
<tbody role="rowgroup">
|
|
100
|
-
<tr *brnCalendarWeek="let week" class="mt-2 flex w-full">
|
|
101
|
-
@for (date of week; track _dateAdapter.getTime(date)) {
|
|
102
|
-
<td
|
|
103
|
-
brnCalendarCell
|
|
104
|
-
class="data-[selected]:data-[outside]:bg-accent/50 data-[selected]:bg-accent relative h-8 w-8 p-0 text-center text-sm focus-within:relative focus-within:z-20 first:data-[selected]:rounded-l-md last:data-[selected]:rounded-r-md [&:has([aria-selected].day-range-end)]:rounded-r-md">
|
|
105
|
-
<button brnCalendarCellButton [date]="date" [class]="_btnClass">
|
|
106
|
-
{{ _dateAdapter.getDate(date) }}
|
|
107
|
-
</button>
|
|
108
|
-
</td>
|
|
109
|
-
}
|
|
110
|
-
</tr>
|
|
111
|
-
</tbody>
|
|
112
|
-
</table>
|
|
113
|
-
</div>
|
|
114
|
-
</div>
|
|
115
|
-
`,
|
|
116
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
117
|
-
})
|
|
118
|
-
export class HlmCalendarMulti<T> {
|
|
119
|
-
public readonly calendarClass = input<ClassValue>('');
|
|
120
|
-
|
|
121
|
-
protected readonly _computedCalenderClass = computed(() => hlm('rounded-md border p-3', this.calendarClass()));
|
|
122
|
-
|
|
123
|
-
/** Access the calendar i18n */
|
|
124
|
-
protected readonly _i18n = injectBrnCalendarI18n();
|
|
125
|
-
|
|
126
|
-
/** Access the date time adapter */
|
|
127
|
-
protected readonly _dateAdapter = injectDateAdapter<T>();
|
|
128
|
-
|
|
129
|
-
/** The minimum date that can be selected.*/
|
|
130
|
-
public readonly min = input<T>();
|
|
131
|
-
|
|
132
|
-
/** The maximum date that can be selected. */
|
|
133
|
-
public readonly max = input<T>();
|
|
134
|
-
|
|
135
|
-
/** The minimum selectable dates. */
|
|
136
|
-
public readonly minSelection = input<number, NumberInput>(undefined, {
|
|
137
|
-
transform: numberAttribute,
|
|
138
|
-
});
|
|
139
|
-
|
|
140
|
-
/** The maximum selectable dates. */
|
|
141
|
-
public readonly maxSelection = input<number, NumberInput>(undefined, {
|
|
142
|
-
transform: numberAttribute,
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
/** Determine if the date picker is disabled. */
|
|
146
|
-
public readonly disabled = input<boolean, BooleanInput>(false, {
|
|
147
|
-
transform: booleanAttribute,
|
|
148
|
-
});
|
|
149
|
-
|
|
150
|
-
/** The selected value. */
|
|
151
|
-
public readonly date = model<T[]>();
|
|
152
|
-
|
|
153
|
-
/** Whether a specific date is disabled. */
|
|
154
|
-
public readonly dateDisabled = input<(date: T) => boolean>(() => false);
|
|
155
|
-
|
|
156
|
-
/** The day the week starts on */
|
|
157
|
-
public readonly weekStartsOn = input<Weekday, NumberInput>(0, {
|
|
158
|
-
transform: (v: unknown) => numberAttribute(v) as Weekday,
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
/** The default focused date. */
|
|
162
|
-
public readonly defaultFocusedDate = input<T>();
|
|
163
|
-
|
|
164
|
-
/** Access the calendar directive */
|
|
165
|
-
private readonly _calendar = viewChild.required(BrnCalendarMulti);
|
|
166
|
-
|
|
167
|
-
/** Get the heading for the current month and year */
|
|
168
|
-
protected readonly _heading = computed(() =>
|
|
169
|
-
this._i18n.formatHeader(
|
|
170
|
-
this._dateAdapter.getMonth(this._calendar().focusedDate()),
|
|
171
|
-
this._dateAdapter.getYear(this._calendar().focusedDate())
|
|
172
|
-
)
|
|
173
|
-
);
|
|
174
|
-
|
|
175
|
-
protected readonly _btnClass = hlm(
|
|
176
|
-
buttonVariants({ variant: 'ghost' }),
|
|
177
|
-
'size-8 p-0 font-normal aria-selected:opacity-100',
|
|
178
|
-
'data-[outside]:text-muted-foreground data-[outside]:opacity-50 data-[outside]:aria-selected:bg-accent/50 data-[outside]:aria-selected:text-muted-foreground data-[outside]:aria-selected:opacity-30',
|
|
179
|
-
'data-[today]:bg-accent data-[today]:text-accent-foreground',
|
|
180
|
-
'data-[selected]:bg-primary data-[selected]:text-primary-foreground data-[selected]:hover:bg-primary data-[selected]:hover:text-primary-foreground data-[selected]:focus:bg-primary data-[selected]:focus:text-primary-foreground',
|
|
181
|
-
'data-[disabled]:text-muted-foreground data-[disabled]:opacity-50'
|
|
182
|
-
);
|
|
183
|
-
}
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
import { buttonVariants } from '@3ddv/software-division-components/generic/button';
|
|
2
|
-
import { HlmIcon } from '@3ddv/software-division-components/generic/icon';
|
|
3
|
-
import { BooleanInput, NumberInput } from '@angular/cdk/coercion';
|
|
4
|
-
import {
|
|
5
|
-
ChangeDetectionStrategy,
|
|
6
|
-
Component,
|
|
7
|
-
booleanAttribute,
|
|
8
|
-
computed,
|
|
9
|
-
input,
|
|
10
|
-
model,
|
|
11
|
-
numberAttribute,
|
|
12
|
-
viewChild,
|
|
13
|
-
} from '@angular/core';
|
|
14
|
-
import { NgIcon, provideIcons } from '@ng-icons/core';
|
|
15
|
-
import { lucideChevronLeft, lucideChevronRight } from '@ng-icons/lucide';
|
|
16
|
-
import {
|
|
17
|
-
BrnCalendar,
|
|
18
|
-
BrnCalendarCell,
|
|
19
|
-
BrnCalendarCellButton,
|
|
20
|
-
BrnCalendarGrid,
|
|
21
|
-
BrnCalendarHeader,
|
|
22
|
-
BrnCalendarNextButton,
|
|
23
|
-
BrnCalendarPreviousButton,
|
|
24
|
-
BrnCalendarWeek,
|
|
25
|
-
BrnCalendarWeekday,
|
|
26
|
-
Weekday,
|
|
27
|
-
injectBrnCalendarI18n,
|
|
28
|
-
} from '@spartan-ng/brain/calendar';
|
|
29
|
-
import { hlm } from '@spartan-ng/brain/core';
|
|
30
|
-
import { injectDateAdapter } from '@spartan-ng/brain/date-time';
|
|
31
|
-
import type { ClassValue } from 'clsx';
|
|
32
|
-
|
|
33
|
-
@Component({
|
|
34
|
-
selector: 'hlm-calendar',
|
|
35
|
-
imports: [
|
|
36
|
-
BrnCalendar,
|
|
37
|
-
BrnCalendarHeader,
|
|
38
|
-
BrnCalendarNextButton,
|
|
39
|
-
BrnCalendarPreviousButton,
|
|
40
|
-
BrnCalendarWeekday,
|
|
41
|
-
BrnCalendarWeek,
|
|
42
|
-
BrnCalendarCellButton,
|
|
43
|
-
BrnCalendarCell,
|
|
44
|
-
BrnCalendarGrid,
|
|
45
|
-
NgIcon,
|
|
46
|
-
HlmIcon,
|
|
47
|
-
],
|
|
48
|
-
viewProviders: [provideIcons({ lucideChevronLeft, lucideChevronRight })],
|
|
49
|
-
template: `
|
|
50
|
-
<div
|
|
51
|
-
brnCalendar
|
|
52
|
-
[min]="min()"
|
|
53
|
-
[max]="max()"
|
|
54
|
-
[disabled]="disabled()"
|
|
55
|
-
[(date)]="date"
|
|
56
|
-
[dateDisabled]="dateDisabled()"
|
|
57
|
-
[weekStartsOn]="weekStartsOn()"
|
|
58
|
-
[defaultFocusedDate]="defaultFocusedDate()"
|
|
59
|
-
[class]="_computedCalenderClass()">
|
|
60
|
-
<div class="inline-flex flex-col space-y-4">
|
|
61
|
-
<!-- Header -->
|
|
62
|
-
<div class="space-y-4">
|
|
63
|
-
<div class="relative flex items-center justify-center pt-1">
|
|
64
|
-
<div brnCalendarHeader class="text-sm font-medium">
|
|
65
|
-
{{ _heading() }}
|
|
66
|
-
</div>
|
|
67
|
-
|
|
68
|
-
<div class="flex items-center space-x-1">
|
|
69
|
-
<button
|
|
70
|
-
brnCalendarPreviousButton
|
|
71
|
-
class="focus-visible:ring-ring hover:bg-accent hover:text-accent-foreground text-popover-foreground absolute left-1 inline-flex size-8 items-center justify-center whitespace-nowrap rounded-md bg-transparent p-0 text-sm font-medium transition-colors hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50">
|
|
72
|
-
<ng-icon hlm name="lucideChevronLeft" size="sm" />
|
|
73
|
-
</button>
|
|
74
|
-
|
|
75
|
-
<button
|
|
76
|
-
brnCalendarNextButton
|
|
77
|
-
class="focus-visible:ring-ring hover:bg-accent hover:text-accent-foreground text-popover-foreground absolute right-1 inline-flex size-8 items-center justify-center whitespace-nowrap rounded-md bg-transparent p-0 text-sm font-medium transition-colors hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50">
|
|
78
|
-
<ng-icon hlm name="lucideChevronRight" size="sm" />
|
|
79
|
-
</button>
|
|
80
|
-
</div>
|
|
81
|
-
</div>
|
|
82
|
-
</div>
|
|
83
|
-
|
|
84
|
-
<table class="w-full border-collapse space-y-1" brnCalendarGrid>
|
|
85
|
-
<thead>
|
|
86
|
-
<tr class="flex">
|
|
87
|
-
<th
|
|
88
|
-
*brnCalendarWeekday="let weekday"
|
|
89
|
-
scope="col"
|
|
90
|
-
class="text-muted-foreground w-8 rounded-md text-[0.8rem] font-normal"
|
|
91
|
-
[attr.aria-label]="_i18n.labelWeekday(weekday)">
|
|
92
|
-
{{ _i18n.formatWeekdayName(weekday) }}
|
|
93
|
-
</th>
|
|
94
|
-
</tr>
|
|
95
|
-
</thead>
|
|
96
|
-
|
|
97
|
-
<tbody role="rowgroup">
|
|
98
|
-
<tr *brnCalendarWeek="let week" class="mt-2 flex w-full">
|
|
99
|
-
@for (date of week; track _dateAdapter.getTime(date)) {
|
|
100
|
-
<td
|
|
101
|
-
brnCalendarCell
|
|
102
|
-
class="data-[selected]:data-[outside]:bg-accent/50 data-[selected]:bg-accent relative size-8 p-0 text-center text-sm focus-within:relative focus-within:z-20 first:data-[selected]:rounded-l-md last:data-[selected]:rounded-r-md [&:has([aria-selected].day-range-end)]:rounded-r-md">
|
|
103
|
-
<button brnCalendarCellButton [date]="date" [class]="_btnClass">
|
|
104
|
-
{{ _dateAdapter.getDate(date) }}
|
|
105
|
-
</button>
|
|
106
|
-
</td>
|
|
107
|
-
}
|
|
108
|
-
</tr>
|
|
109
|
-
</tbody>
|
|
110
|
-
</table>
|
|
111
|
-
</div>
|
|
112
|
-
</div>
|
|
113
|
-
`,
|
|
114
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
115
|
-
})
|
|
116
|
-
export class HlmCalendar<T> {
|
|
117
|
-
public readonly calendarClass = input<ClassValue>('');
|
|
118
|
-
|
|
119
|
-
protected readonly _computedCalenderClass = computed(() => hlm('rounded-md border p-3', this.calendarClass()));
|
|
120
|
-
|
|
121
|
-
/** Access the calendar i18n */
|
|
122
|
-
protected readonly _i18n = injectBrnCalendarI18n();
|
|
123
|
-
|
|
124
|
-
/** Access the date time adapter */
|
|
125
|
-
protected readonly _dateAdapter = injectDateAdapter<T>();
|
|
126
|
-
|
|
127
|
-
/** The minimum date that can be selected.*/
|
|
128
|
-
public readonly min = input<T>();
|
|
129
|
-
|
|
130
|
-
/** The maximum date that can be selected. */
|
|
131
|
-
public readonly max = input<T>();
|
|
132
|
-
|
|
133
|
-
/** Determine if the date picker is disabled. */
|
|
134
|
-
public readonly disabled = input<boolean, BooleanInput>(false, {
|
|
135
|
-
transform: booleanAttribute,
|
|
136
|
-
});
|
|
137
|
-
|
|
138
|
-
/** The selected value. */
|
|
139
|
-
public readonly date = model<T>();
|
|
140
|
-
|
|
141
|
-
/** Whether a specific date is disabled. */
|
|
142
|
-
public readonly dateDisabled = input<(date: T) => boolean>(() => false);
|
|
143
|
-
|
|
144
|
-
/** The day the week starts on */
|
|
145
|
-
public readonly weekStartsOn = input<Weekday, NumberInput>(0, {
|
|
146
|
-
transform: (v: unknown) => numberAttribute(v) as Weekday,
|
|
147
|
-
});
|
|
148
|
-
|
|
149
|
-
/** The default focused date. */
|
|
150
|
-
public readonly defaultFocusedDate = input<T>();
|
|
151
|
-
|
|
152
|
-
/** Access the calendar directive */
|
|
153
|
-
private readonly _calendar = viewChild.required(BrnCalendar);
|
|
154
|
-
|
|
155
|
-
/** Get the heading for the current month and year */
|
|
156
|
-
protected readonly _heading = computed(() =>
|
|
157
|
-
this._i18n.formatHeader(
|
|
158
|
-
this._dateAdapter.getMonth(this._calendar().focusedDate()),
|
|
159
|
-
this._dateAdapter.getYear(this._calendar().focusedDate())
|
|
160
|
-
)
|
|
161
|
-
);
|
|
162
|
-
|
|
163
|
-
protected readonly _btnClass = hlm(
|
|
164
|
-
buttonVariants({ variant: 'ghost' }),
|
|
165
|
-
'size-8 p-0 font-normal aria-selected:opacity-100',
|
|
166
|
-
'data-[outside]:text-muted-foreground data-[outside]:opacity-50 data-[outside]:aria-selected:bg-accent/50 data-[outside]:aria-selected:text-muted-foreground data-[outside]:aria-selected:opacity-30',
|
|
167
|
-
'data-[today]:bg-accent data-[today]:text-accent-foreground',
|
|
168
|
-
'data-[selected]:bg-primary data-[selected]:text-primary-foreground data-[selected]:hover:bg-primary dark:hover:text-accent-foreground data-[selected]:focus:bg-primary data-[selected]:focus:text-primary-foreground',
|
|
169
|
-
'data-[disabled]:text-muted-foreground data-[disabled]:opacity-50'
|
|
170
|
-
);
|
|
171
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { HlmDatePicker } from './lib/hlm-date-picker';
|
|
3
|
-
import { HlmDatePickerMulti } from './lib/hlm-date-picker-multi';
|
|
4
|
-
|
|
5
|
-
export * from './lib/hlm-date-picker.token';
|
|
6
|
-
|
|
7
|
-
export * from './lib/hlm-date-picker';
|
|
8
|
-
export * from './lib/hlm-date-picker-multi';
|
|
9
|
-
|
|
10
|
-
export const HlmDatePickerImports = [HlmDatePicker, HlmDatePickerMulti] as const;
|
|
11
|
-
|
|
12
|
-
@NgModule({
|
|
13
|
-
imports: [...HlmDatePickerImports],
|
|
14
|
-
exports: [...HlmDatePickerImports],
|
|
15
|
-
})
|
|
16
|
-
export class HlmDatePickerModule {}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { inject, InjectionToken, ValueProvider } from '@angular/core';
|
|
2
|
-
|
|
3
|
-
export interface HlmDatePickerMultiConfig<T> {
|
|
4
|
-
/**
|
|
5
|
-
* If true, the date picker will close when the max selection of dates is reached.
|
|
6
|
-
*/
|
|
7
|
-
autoCloseOnMaxSelection: boolean;
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Defines how the date should be displayed in the UI.
|
|
11
|
-
*
|
|
12
|
-
* @param dates
|
|
13
|
-
* @returns formatted date
|
|
14
|
-
*/
|
|
15
|
-
formatDates: (dates: T[]) => string;
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Defines how the date should be transformed before saving to model/form.
|
|
19
|
-
*
|
|
20
|
-
* @param dates
|
|
21
|
-
* @returns transformed date
|
|
22
|
-
*/
|
|
23
|
-
transformDates: (dates: T[]) => T[];
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
function getDefaultConfig<T>(): HlmDatePickerMultiConfig<T> {
|
|
27
|
-
return {
|
|
28
|
-
formatDates: (dates) => dates.map((date) => (date instanceof Date ? date.toDateString() : `${date}`)).join(', '),
|
|
29
|
-
transformDates: (dates) => dates,
|
|
30
|
-
autoCloseOnMaxSelection: false,
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const HlmDatePickerMultiConfigToken = new InjectionToken<HlmDatePickerMultiConfig<unknown>>('HlmDatePickerMultiConfig');
|
|
35
|
-
|
|
36
|
-
export function provideHlmDatePickerConfig<T>(config: Partial<HlmDatePickerMultiConfig<T>>): ValueProvider {
|
|
37
|
-
return { provide: HlmDatePickerMultiConfigToken, useValue: { ...getDefaultConfig(), ...config } };
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export function injectHlmDatePickerMultiConfig<T>(): HlmDatePickerMultiConfig<T> {
|
|
41
|
-
const injectedConfig = inject(HlmDatePickerMultiConfigToken, { optional: true });
|
|
42
|
-
return injectedConfig ? (injectedConfig as HlmDatePickerMultiConfig<T>) : getDefaultConfig();
|
|
43
|
-
}
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
import { HlmIcon } from '@3ddv/software-division-components/generic/icon';
|
|
2
|
-
import { BooleanInput, NumberInput } from '@angular/cdk/coercion';
|
|
3
|
-
import {
|
|
4
|
-
ChangeDetectionStrategy,
|
|
5
|
-
Component,
|
|
6
|
-
booleanAttribute,
|
|
7
|
-
computed,
|
|
8
|
-
forwardRef,
|
|
9
|
-
input,
|
|
10
|
-
model,
|
|
11
|
-
numberAttribute,
|
|
12
|
-
output,
|
|
13
|
-
signal,
|
|
14
|
-
} from '@angular/core';
|
|
15
|
-
import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
16
|
-
import { NgIcon, provideIcons } from '@ng-icons/core';
|
|
17
|
-
import { lucideCalendar } from '@ng-icons/lucide';
|
|
18
|
-
import { hlm } from '@spartan-ng/brain/core';
|
|
19
|
-
import { BrnDialogState } from '@spartan-ng/brain/dialog';
|
|
20
|
-
import { type ChangeFn, type TouchFn } from '@spartan-ng/brain/forms';
|
|
21
|
-
import { BrnPopover, BrnPopoverContent, BrnPopoverTrigger } from '@spartan-ng/brain/popover';
|
|
22
|
-
import type { ClassValue } from 'clsx';
|
|
23
|
-
import { HlmCalendarMulti } from '../../../ui-calendar-helm/src';
|
|
24
|
-
import { HlmPopoverContent } from '../../../ui-popover-helm/src';
|
|
25
|
-
import { injectHlmDatePickerMultiConfig } from './hlm-date-picker-multi.token';
|
|
26
|
-
|
|
27
|
-
export const HLM_DATE_PICKER_MUTLI_VALUE_ACCESSOR = {
|
|
28
|
-
provide: NG_VALUE_ACCESSOR,
|
|
29
|
-
useExisting: forwardRef(() => HlmDatePickerMulti),
|
|
30
|
-
multi: true,
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
@Component({
|
|
34
|
-
selector: 'hlm-date-picker-multi',
|
|
35
|
-
imports: [NgIcon, HlmIcon, BrnPopover, BrnPopoverTrigger, BrnPopoverContent, HlmPopoverContent, HlmCalendarMulti],
|
|
36
|
-
providers: [HLM_DATE_PICKER_MUTLI_VALUE_ACCESSOR, provideIcons({ lucideCalendar })],
|
|
37
|
-
template: `
|
|
38
|
-
<brn-popover sideOffset="5" [state]="_popoverState()" (stateChanged)="_popoverState.set($event)">
|
|
39
|
-
<button type="button" [class]="_computedClass()" [disabled]="_state().disabled()" brnPopoverTrigger>
|
|
40
|
-
<ng-icon hlm size="sm" name="lucideCalendar" />
|
|
41
|
-
|
|
42
|
-
<span class="truncate">
|
|
43
|
-
@if (_formattedDate(); as formattedDate) {
|
|
44
|
-
{{ formattedDate }}
|
|
45
|
-
} @else {
|
|
46
|
-
<ng-content />
|
|
47
|
-
}
|
|
48
|
-
</span>
|
|
49
|
-
</button>
|
|
50
|
-
|
|
51
|
-
<div hlmPopoverContent class="w-auto p-0" *brnPopoverContent="let ctx">
|
|
52
|
-
<hlm-calendar-multi
|
|
53
|
-
calendarClass="border-0 rounded-none"
|
|
54
|
-
[date]="date()"
|
|
55
|
-
[min]="min()"
|
|
56
|
-
[max]="max()"
|
|
57
|
-
[minSelection]="minSelection()"
|
|
58
|
-
[maxSelection]="maxSelection()"
|
|
59
|
-
[disabled]="_state().disabled()"
|
|
60
|
-
(dateChange)="_handleChange($event)" />
|
|
61
|
-
</div>
|
|
62
|
-
</brn-popover>
|
|
63
|
-
`,
|
|
64
|
-
host: {
|
|
65
|
-
class: 'block',
|
|
66
|
-
},
|
|
67
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
68
|
-
})
|
|
69
|
-
export class HlmDatePickerMulti<T> implements ControlValueAccessor {
|
|
70
|
-
private readonly _config = injectHlmDatePickerMultiConfig<T>();
|
|
71
|
-
|
|
72
|
-
public readonly userClass = input<ClassValue>('', { alias: 'class' });
|
|
73
|
-
protected readonly _computedClass = computed(() =>
|
|
74
|
-
hlm(
|
|
75
|
-
'inline-flex items-center gap-2 whitespace-nowrap rounded-md text-sm ring-offset-background transition-colors border border-input bg-background hover:bg-accent hover:text-accent-foreground h-10 px-4 py-2 w-[280px] justify-start text-left font-normal',
|
|
76
|
-
'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',
|
|
77
|
-
'disabled:pointer-events-none disabled:opacity-50',
|
|
78
|
-
'[&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0',
|
|
79
|
-
!this.date() ? 'text-muted-foreground' : '',
|
|
80
|
-
this.userClass()
|
|
81
|
-
)
|
|
82
|
-
);
|
|
83
|
-
|
|
84
|
-
/** The minimum date that can be selected.*/
|
|
85
|
-
public readonly min = input<T>();
|
|
86
|
-
|
|
87
|
-
/** The maximum date that can be selected. */
|
|
88
|
-
public readonly max = input<T>();
|
|
89
|
-
|
|
90
|
-
/** The minimum selectable dates. */
|
|
91
|
-
public readonly minSelection = input<number, NumberInput>(undefined, {
|
|
92
|
-
transform: numberAttribute,
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
/** The maximum selectable dates. */
|
|
96
|
-
public readonly maxSelection = input<number, NumberInput>(undefined, {
|
|
97
|
-
transform: numberAttribute,
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
/** Determine if the date picker is disabled. */
|
|
101
|
-
public readonly disabled = input<boolean, BooleanInput>(false, {
|
|
102
|
-
transform: booleanAttribute,
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
/** The selected value. */
|
|
106
|
-
public readonly date = model<T[]>();
|
|
107
|
-
|
|
108
|
-
/** If true, the date picker will close when the max selection of dates is reached.. */
|
|
109
|
-
public readonly autoCloseOnMaxSelection = input<boolean, BooleanInput>(this._config.autoCloseOnMaxSelection, {
|
|
110
|
-
transform: booleanAttribute,
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
/** Defines how the date should be displayed in the UI. */
|
|
114
|
-
public readonly formatDates = input<(date: T[]) => string>(this._config.formatDates);
|
|
115
|
-
|
|
116
|
-
/** Defines how the date should be transformed before saving to model/form. */
|
|
117
|
-
public readonly transformDates = input<(date: T[]) => T[]>(this._config.transformDates);
|
|
118
|
-
|
|
119
|
-
protected readonly _popoverState = signal<BrnDialogState | null>(null);
|
|
120
|
-
|
|
121
|
-
protected readonly _state = computed(() => ({
|
|
122
|
-
disabled: signal(this.disabled()),
|
|
123
|
-
}));
|
|
124
|
-
|
|
125
|
-
protected readonly _formattedDate = computed(() => {
|
|
126
|
-
const dates = this.date();
|
|
127
|
-
return dates ? this.formatDates()(dates) : undefined;
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
public readonly changed = output<T[]>();
|
|
131
|
-
|
|
132
|
-
protected _onChange?: ChangeFn<T[]>;
|
|
133
|
-
protected _onTouched?: TouchFn;
|
|
134
|
-
|
|
135
|
-
protected _handleChange(value: T[] | undefined) {
|
|
136
|
-
if (value === undefined) return;
|
|
137
|
-
|
|
138
|
-
if (this._state().disabled()) return;
|
|
139
|
-
const transformedDate = this.transformDates()(value);
|
|
140
|
-
|
|
141
|
-
this.date.set(transformedDate);
|
|
142
|
-
this._onChange?.(transformedDate);
|
|
143
|
-
this.changed.emit(transformedDate);
|
|
144
|
-
|
|
145
|
-
if (this.autoCloseOnMaxSelection() && this.date()?.length === this.maxSelection()) {
|
|
146
|
-
this._popoverState.set('closed');
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/** CONROL VALUE ACCESSOR */
|
|
151
|
-
writeValue(value: T[] | null): void {
|
|
152
|
-
// optional FormControl is initialized with null value
|
|
153
|
-
if (value === null) return;
|
|
154
|
-
|
|
155
|
-
this.date.set(this.transformDates()(value));
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
registerOnChange(fn: ChangeFn<T[]>): void {
|
|
159
|
-
this._onChange = fn;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
registerOnTouched(fn: TouchFn): void {
|
|
163
|
-
this._onTouched = fn;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
setDisabledState(isDisabled: boolean): void {
|
|
167
|
-
this._state().disabled.set(isDisabled);
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
open() {
|
|
171
|
-
this._popoverState.set('open');
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
close() {
|
|
175
|
-
this._popoverState.set('closed');
|
|
176
|
-
}
|
|
177
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { inject, InjectionToken, ValueProvider } from '@angular/core';
|
|
2
|
-
|
|
3
|
-
export interface HlmDatePickerConfig<T> {
|
|
4
|
-
/**
|
|
5
|
-
* If true, the date picker will close when a date is selected.
|
|
6
|
-
*/
|
|
7
|
-
autoCloseOnSelect: boolean;
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Defines how the date should be displayed in the UI.
|
|
11
|
-
*
|
|
12
|
-
* @param date
|
|
13
|
-
* @returns formatted date
|
|
14
|
-
*/
|
|
15
|
-
formatDate: (date: T) => string;
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Defines how the date should be transformed before saving to model/form.
|
|
19
|
-
*
|
|
20
|
-
* @param date
|
|
21
|
-
* @returns transformed date
|
|
22
|
-
*/
|
|
23
|
-
transformDate: (date: T) => T;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
function getDefaultConfig<T>(): HlmDatePickerConfig<T> {
|
|
27
|
-
return {
|
|
28
|
-
formatDate: (date) => (date instanceof Date ? date.toDateString() : `${date}`),
|
|
29
|
-
transformDate: (date) => date,
|
|
30
|
-
autoCloseOnSelect: false,
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const HlmDatePickerConfigToken = new InjectionToken<HlmDatePickerConfig<unknown>>('HlmDatePickerConfig');
|
|
35
|
-
|
|
36
|
-
export function provideHlmDatePickerConfig<T>(config: Partial<HlmDatePickerConfig<T>>): ValueProvider {
|
|
37
|
-
return { provide: HlmDatePickerConfigToken, useValue: { ...getDefaultConfig(), ...config } };
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export function injectHlmDatePickerConfig<T>(): HlmDatePickerConfig<T> {
|
|
41
|
-
const injectedConfig = inject(HlmDatePickerConfigToken, { optional: true });
|
|
42
|
-
return injectedConfig ? (injectedConfig as HlmDatePickerConfig<T>) : getDefaultConfig();
|
|
43
|
-
}
|