@3ddv/software-division-components 1.0.2 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dvm/neighbors/neighbors.component.d.ts +41 -0
- package/dvm/neighbors/neighbors.component.d.ts.map +1 -0
- package/dvm/neighbors/public-api.d.ts +3 -0
- package/{dist/dvm → dvm}/neighbors/public-api.d.ts.map +1 -1
- package/{dist/dvm → dvm}/neighbors/types.d.ts +6 -0
- package/{dist/dvm → dvm}/neighbors/types.d.ts.map +1 -1
- package/dvm/popover/base-popover.component.d.ts +28 -0
- package/dvm/popover/base-popover.component.d.ts.map +1 -0
- package/dvm/popover/popover.component.d.ts +69 -0
- package/dvm/popover/popover.component.d.ts.map +1 -0
- package/{dist/dvm → dvm}/popover/popover.config.d.ts +7 -2
- package/dvm/popover/popover.config.d.ts.map +1 -0
- package/{dist/dvm → dvm}/popover/popover.service.d.ts +57 -2
- package/dvm/popover/popover.service.d.ts.map +1 -0
- package/dvm/popover/public-api.d.ts +11 -0
- package/dvm/popover/public-api.d.ts.map +1 -0
- package/dvm/popover/seat-popover/seat-popover.component.d.ts +21 -0
- package/dvm/popover/seat-popover/seat-popover.component.d.ts.map +1 -0
- package/dvm/popover/section-popover/section-popover.component.d.ts +32 -0
- package/dvm/popover/section-popover/section-popover.component.d.ts.map +1 -0
- package/dvm/popover/services/dvm-popover-positioner.service.d.ts +30 -0
- package/dvm/popover/services/dvm-popover-positioner.service.d.ts.map +1 -0
- package/dvm/popover/services/popover-manager.service.d.ts +29 -0
- package/dvm/popover/services/popover-manager.service.d.ts.map +1 -0
- package/dvm/popover/transformers/base-popover-data-transformer.d.ts +29 -0
- package/dvm/popover/transformers/base-popover-data-transformer.d.ts.map +1 -0
- package/dvm/popover/types.d.ts +79 -0
- package/dvm/popover/types.d.ts.map +1 -0
- package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components.mjs +1009 -356
- package/fesm2022/3ddv-software-division-components.mjs.map +1 -0
- package/package.json +180 -130
- package/{dist/styles.css → styles.css} +1 -1
- package/README.backup.md +0 -575
- package/dist/README.md +0 -575
- package/dist/dvm/neighbors/neighbors.component.d.ts +0 -45
- package/dist/dvm/neighbors/neighbors.component.d.ts.map +0 -1
- package/dist/dvm/neighbors/public-api.d.ts +0 -3
- package/dist/dvm/popover/popover.component.d.ts +0 -39
- package/dist/dvm/popover/popover.component.d.ts.map +0 -1
- package/dist/dvm/popover/popover.config.d.ts.map +0 -1
- package/dist/dvm/popover/popover.service.d.ts.map +0 -1
- package/dist/dvm/popover/public-api.d.ts +0 -5
- package/dist/dvm/popover/public-api.d.ts.map +0 -1
- package/dist/dvm/popover/types.d.ts +0 -33
- package/dist/dvm/popover/types.d.ts.map +0 -1
- package/dist/fesm2022/3ddv-software-division-components.mjs.map +0 -1
- /package/{dist/3ddv-software-division-components.d.ts.map → 3ddv-software-division-components.d.ts.map} +0 -0
- /package/{dist/backoffice → backoffice}/checkbox/checkbox.component.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/checkbox/checkbox.component.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/checkbox/index.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/checkbox/index.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/checkbox/public-api.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/checkbox/public-api.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/datepicker.component.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/datepicker.component.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/index.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/index.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/public-api.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/public-api.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-calendar-helm/src/index.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-calendar-helm/src/index.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar-multi.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar-multi.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-date-picker-helm/src/index.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-date-picker-helm/src/index.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker-multi.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker-multi.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker-multi.token.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker-multi.token.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker.token.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker.token.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-icon-helm/src/index.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-icon-helm/src/index.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-icon-helm/src/lib/hlm-icon.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-icon-helm/src/lib/hlm-icon.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-icon-helm/src/lib/hlm-icon.token.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-icon-helm/src/lib/hlm-icon.token.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-popover-helm/src/index.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-popover-helm/src/index.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-popover-helm/src/lib/hlm-popover-close.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-popover-helm/src/lib/hlm-popover-close.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-popover-helm/src/lib/hlm-popover-content.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/datepicker/ui/ui-popover-helm/src/lib/hlm-popover-content.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/index.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/index.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/input/index.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/input/index.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/input/input.component.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/input/input.component.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/input/public-api.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/input/public-api.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/public-api.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/public-api.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/radio/index.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/radio/index.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/radio/public-api.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/radio/public-api.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/radio/radio.component.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/radio/radio.component.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/table/_components/pagination/pagination.component.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/table/_components/pagination/pagination.component.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/table/_components/selection-table-head/selection-table-head.component.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/table/_components/selection-table-head/selection-table-head.component.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/table/_components/selection-table-row/selection-table-row.component.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/table/_components/selection-table-row/selection-table-row.component.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/table/_components/sort-header-button/sort-header-button.component.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/table/_components/sort-header-button/sort-header-button.component.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/table/index.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/table/index.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/table/public-api.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/table/public-api.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/table/table.component.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/table/table.component.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/table/ui/ui-icon-helm/src/index.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/table/ui/ui-icon-helm/src/index.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/table/ui/ui-icon-helm/src/lib/hlm-icon.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/table/ui/ui-icon-helm/src/lib/hlm-icon.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/table/ui/ui-icon-helm/src/lib/hlm-icon.token.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/table/ui/ui-icon-helm/src/lib/hlm-icon.token.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/table/ui/ui-table-helm/src/index.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/table/ui/ui-table-helm/src/index.d.ts.map +0 -0
- /package/{dist/backoffice → backoffice}/table/ui/ui-table-helm/src/lib/hlm-table.d.ts +0 -0
- /package/{dist/backoffice → backoffice}/table/ui/ui-table-helm/src/lib/hlm-table.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/cart/cart.component.d.ts +0 -0
- /package/{dist/dvm → dvm}/cart/cart.component.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/cart/cart.service.d.ts +0 -0
- /package/{dist/dvm → dvm}/cart/cart.service.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/cart/index.d.ts +0 -0
- /package/{dist/dvm → dvm}/cart/index.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/cart/public-api.d.ts +0 -0
- /package/{dist/dvm → dvm}/cart/public-api.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/cart-item/cart-item.component.d.ts +0 -0
- /package/{dist/dvm → dvm}/cart-item/cart-item.component.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/cart-item/cart-item.service.d.ts +0 -0
- /package/{dist/dvm → dvm}/cart-item/cart-item.service.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/cart-item/index.d.ts +0 -0
- /package/{dist/dvm → dvm}/cart-item/index.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/cart-item/public-api.d.ts +0 -0
- /package/{dist/dvm → dvm}/cart-item/public-api.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/index.d.ts +0 -0
- /package/{dist/dvm → dvm}/index.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/legend/index.d.ts +0 -0
- /package/{dist/dvm → dvm}/legend/index.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/legend/legend.component.d.ts +0 -0
- /package/{dist/dvm → dvm}/legend/legend.component.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/legend/public-api.d.ts +0 -0
- /package/{dist/dvm → dvm}/legend/public-api.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/legend/types.d.ts +0 -0
- /package/{dist/dvm → dvm}/legend/types.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/legend/ui/legend-elements/index.d.ts +0 -0
- /package/{dist/dvm → dvm}/legend/ui/legend-elements/index.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/legend/ui/legend-elements/legend-elements.component.d.ts +0 -0
- /package/{dist/dvm → dvm}/legend/ui/legend-elements/legend-elements.component.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/loader/index.d.ts +0 -0
- /package/{dist/dvm → dvm}/loader/index.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/loader/loader.component.d.ts +0 -0
- /package/{dist/dvm → dvm}/loader/loader.component.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/loader/loader.service.d.ts +0 -0
- /package/{dist/dvm → dvm}/loader/loader.service.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/loader/public-api.d.ts +0 -0
- /package/{dist/dvm → dvm}/loader/public-api.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/map-loader/index.d.ts +0 -0
- /package/{dist/dvm → dvm}/map-loader/index.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/map-loader/map-loader.component.d.ts +0 -0
- /package/{dist/dvm → dvm}/map-loader/map-loader.component.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/map-loader/public-api.d.ts +0 -0
- /package/{dist/dvm → dvm}/map-loader/public-api.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/neighbors/index.d.ts +0 -0
- /package/{dist/dvm → dvm}/neighbors/index.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/popover/index.d.ts +0 -0
- /package/{dist/dvm → dvm}/popover/index.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/public-api.d.ts +0 -0
- /package/{dist/dvm → dvm}/public-api.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/stepper/index.d.ts +0 -0
- /package/{dist/dvm → dvm}/stepper/index.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/stepper/public-api.d.ts +0 -0
- /package/{dist/dvm → dvm}/stepper/public-api.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/stepper/stepper.component.d.ts +0 -0
- /package/{dist/dvm → dvm}/stepper/stepper.component.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/stepper/types.d.ts +0 -0
- /package/{dist/dvm → dvm}/stepper/types.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/ticket-info-item/index.d.ts +0 -0
- /package/{dist/dvm → dvm}/ticket-info-item/index.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/ticket-info-item/public-api.d.ts +0 -0
- /package/{dist/dvm → dvm}/ticket-info-item/public-api.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/ticket-info-item/ticket-info-item.component.d.ts +0 -0
- /package/{dist/dvm → dvm}/ticket-info-item/ticket-info-item.component.d.ts.map +0 -0
- /package/{dist/dvm → dvm}/ticket-info-item/ticket-info-item.service.d.ts +0 -0
- /package/{dist/dvm → dvm}/ticket-info-item/ticket-info-item.service.d.ts.map +0 -0
- /package/{dist/generic → generic}/add-digital-wallet/add-digital-wallet.component.d.ts +0 -0
- /package/{dist/generic → generic}/add-digital-wallet/add-digital-wallet.component.d.ts.map +0 -0
- /package/{dist/generic → generic}/add-digital-wallet/index.d.ts +0 -0
- /package/{dist/generic → generic}/add-digital-wallet/index.d.ts.map +0 -0
- /package/{dist/generic → generic}/add-digital-wallet/public-api.d.ts +0 -0
- /package/{dist/generic → generic}/add-digital-wallet/public-api.d.ts.map +0 -0
- /package/{dist/generic → generic}/braintree/braintree.component.d.ts +0 -0
- /package/{dist/generic → generic}/braintree/braintree.component.d.ts.map +0 -0
- /package/{dist/generic → generic}/braintree/index.d.ts +0 -0
- /package/{dist/generic → generic}/braintree/index.d.ts.map +0 -0
- /package/{dist/generic → generic}/braintree/public-api.d.ts +0 -0
- /package/{dist/generic → generic}/braintree/public-api.d.ts.map +0 -0
- /package/{dist/generic → generic}/braintree/types.d.ts +0 -0
- /package/{dist/generic → generic}/braintree/types.d.ts.map +0 -0
- /package/{dist/generic → generic}/button/button.component.d.ts +0 -0
- /package/{dist/generic → generic}/button/button.component.d.ts.map +0 -0
- /package/{dist/generic → generic}/button/index.d.ts +0 -0
- /package/{dist/generic → generic}/button/index.d.ts.map +0 -0
- /package/{dist/generic → generic}/button/public-api.d.ts +0 -0
- /package/{dist/generic → generic}/button/public-api.d.ts.map +0 -0
- /package/{dist/generic → generic}/button/ui/ui-button-helm/src/index.d.ts +0 -0
- /package/{dist/generic → generic}/button/ui/ui-button-helm/src/index.d.ts.map +0 -0
- /package/{dist/generic → generic}/button/ui/ui-button-helm/src/lib/hlm-button.d.ts +0 -0
- /package/{dist/generic → generic}/button/ui/ui-button-helm/src/lib/hlm-button.d.ts.map +0 -0
- /package/{dist/generic → generic}/button/ui/ui-button-helm/src/lib/hlm-button.token.d.ts +0 -0
- /package/{dist/generic → generic}/button/ui/ui-button-helm/src/lib/hlm-button.token.d.ts.map +0 -0
- /package/{dist/generic → generic}/dialog/dialog.component.d.ts +0 -0
- /package/{dist/generic → generic}/dialog/dialog.component.d.ts.map +0 -0
- /package/{dist/generic → generic}/dialog/index.d.ts +0 -0
- /package/{dist/generic → generic}/dialog/index.d.ts.map +0 -0
- /package/{dist/generic → generic}/dialog/libs/ui-dialog-helm/src/index.d.ts +0 -0
- /package/{dist/generic → generic}/dialog/libs/ui-dialog-helm/src/index.d.ts.map +0 -0
- /package/{dist/generic → generic}/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-close.d.ts +0 -0
- /package/{dist/generic → generic}/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-close.d.ts.map +0 -0
- /package/{dist/generic → generic}/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-content.d.ts +0 -0
- /package/{dist/generic → generic}/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-content.d.ts.map +0 -0
- /package/{dist/generic → generic}/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-description.d.ts +0 -0
- /package/{dist/generic → generic}/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-description.d.ts.map +0 -0
- /package/{dist/generic → generic}/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-footer.d.ts +0 -0
- /package/{dist/generic → generic}/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-footer.d.ts.map +0 -0
- /package/{dist/generic → generic}/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-header.d.ts +0 -0
- /package/{dist/generic → generic}/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-header.d.ts.map +0 -0
- /package/{dist/generic → generic}/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-overlay.d.ts +0 -0
- /package/{dist/generic → generic}/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-overlay.d.ts.map +0 -0
- /package/{dist/generic → generic}/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-title.d.ts +0 -0
- /package/{dist/generic → generic}/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-title.d.ts.map +0 -0
- /package/{dist/generic → generic}/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.d.ts +0 -0
- /package/{dist/generic → generic}/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.d.ts.map +0 -0
- /package/{dist/generic → generic}/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.service.d.ts +0 -0
- /package/{dist/generic → generic}/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.service.d.ts.map +0 -0
- /package/{dist/generic → generic}/dialog/public-api.d.ts +0 -0
- /package/{dist/generic → generic}/dialog/public-api.d.ts.map +0 -0
- /package/{dist/generic → generic}/drawer/drawer.component.d.ts +0 -0
- /package/{dist/generic → generic}/drawer/drawer.component.d.ts.map +0 -0
- /package/{dist/generic → generic}/drawer/drawer.service.d.ts +0 -0
- /package/{dist/generic → generic}/drawer/drawer.service.d.ts.map +0 -0
- /package/{dist/generic → generic}/drawer/index.d.ts +0 -0
- /package/{dist/generic → generic}/drawer/index.d.ts.map +0 -0
- /package/{dist/generic → generic}/drawer/public-api.d.ts +0 -0
- /package/{dist/generic → generic}/drawer/public-api.d.ts.map +0 -0
- /package/{dist/generic → generic}/icon/icon.component.d.ts +0 -0
- /package/{dist/generic → generic}/icon/icon.component.d.ts.map +0 -0
- /package/{dist/generic → generic}/icon/index.d.ts +0 -0
- /package/{dist/generic → generic}/icon/index.d.ts.map +0 -0
- /package/{dist/generic → generic}/icon/lib/ui-icon-helm/src/index.d.ts +0 -0
- /package/{dist/generic → generic}/icon/lib/ui-icon-helm/src/index.d.ts.map +0 -0
- /package/{dist/generic → generic}/icon/lib/ui-icon-helm/src/lib/hlm-icon.d.ts +0 -0
- /package/{dist/generic → generic}/icon/lib/ui-icon-helm/src/lib/hlm-icon.d.ts.map +0 -0
- /package/{dist/generic → generic}/icon/lib/ui-icon-helm/src/lib/hlm-icon.token.d.ts +0 -0
- /package/{dist/generic → generic}/icon/lib/ui-icon-helm/src/lib/hlm-icon.token.d.ts.map +0 -0
- /package/{dist/generic → generic}/icon/public-api.d.ts +0 -0
- /package/{dist/generic → generic}/icon/public-api.d.ts.map +0 -0
- /package/{dist/generic → generic}/index.d.ts +0 -0
- /package/{dist/generic → generic}/index.d.ts.map +0 -0
- /package/{dist/generic → generic}/public-api.d.ts +0 -0
- /package/{dist/generic → generic}/public-api.d.ts.map +0 -0
- /package/{dist/generic → generic}/select/index.d.ts +0 -0
- /package/{dist/generic → generic}/select/index.d.ts.map +0 -0
- /package/{dist/generic → generic}/select/lib/hlm-select-content.d.ts +0 -0
- /package/{dist/generic → generic}/select/lib/hlm-select-content.d.ts.map +0 -0
- /package/{dist/generic → generic}/select/lib/hlm-select-group.d.ts +0 -0
- /package/{dist/generic → generic}/select/lib/hlm-select-group.d.ts.map +0 -0
- /package/{dist/generic → generic}/select/lib/hlm-select-label.d.ts +0 -0
- /package/{dist/generic → generic}/select/lib/hlm-select-label.d.ts.map +0 -0
- /package/{dist/generic → generic}/select/lib/hlm-select-option.d.ts +0 -0
- /package/{dist/generic → generic}/select/lib/hlm-select-option.d.ts.map +0 -0
- /package/{dist/generic → generic}/select/lib/hlm-select-scroll-down.d.ts +0 -0
- /package/{dist/generic → generic}/select/lib/hlm-select-scroll-down.d.ts.map +0 -0
- /package/{dist/generic → generic}/select/lib/hlm-select-scroll-up.d.ts +0 -0
- /package/{dist/generic → generic}/select/lib/hlm-select-scroll-up.d.ts.map +0 -0
- /package/{dist/generic → generic}/select/lib/hlm-select-trigger.d.ts +0 -0
- /package/{dist/generic → generic}/select/lib/hlm-select-trigger.d.ts.map +0 -0
- /package/{dist/generic → generic}/select/lib/hlm-select-value.d.ts +0 -0
- /package/{dist/generic → generic}/select/lib/hlm-select-value.d.ts.map +0 -0
- /package/{dist/generic → generic}/select/lib/hlm-select.d.ts +0 -0
- /package/{dist/generic → generic}/select/lib/hlm-select.d.ts.map +0 -0
- /package/{dist/generic → generic}/select/lib/index.d.ts +0 -0
- /package/{dist/generic → generic}/select/lib/index.d.ts.map +0 -0
- /package/{dist/generic → generic}/select/public-api.d.ts +0 -0
- /package/{dist/generic → generic}/select/public-api.d.ts.map +0 -0
- /package/{dist/generic → generic}/select/select.component.d.ts +0 -0
- /package/{dist/generic → generic}/select/select.component.d.ts.map +0 -0
- /package/{dist/generic → generic}/select/types.d.ts +0 -0
- /package/{dist/generic → generic}/select/types.d.ts.map +0 -0
- /package/{dist/index.d.ts → index.d.ts} +0 -0
- /package/{dist/public-api.d.ts → public-api.d.ts} +0 -0
- /package/{dist/public-api.d.ts.map → public-api.d.ts.map} +0 -0
- /package/{dist/shared → shared}/declare-theme-variables/declare-theme-variables.d.ts +0 -0
- /package/{dist/shared → shared}/declare-theme-variables/declare-theme-variables.d.ts.map +0 -0
- /package/{dist/shared → shared}/declare-theme-variables/index.d.ts +0 -0
- /package/{dist/shared → shared}/declare-theme-variables/index.d.ts.map +0 -0
- /package/{dist/shared → shared}/lib-provider/config-token.d.ts +0 -0
- /package/{dist/shared → shared}/lib-provider/config-token.d.ts.map +0 -0
- /package/{dist/shared → shared}/lib-provider/index.d.ts +0 -0
- /package/{dist/shared → shared}/lib-provider/index.d.ts.map +0 -0
- /package/{dist/shared → shared}/lib-provider/provide-sdc.d.ts +0 -0
- /package/{dist/shared → shared}/lib-provider/provide-sdc.d.ts.map +0 -0
- /package/{dist/shared → shared}/lib-provider/public-api.d.ts +0 -0
- /package/{dist/shared → shared}/lib-provider/public-api.d.ts.map +0 -0
- /package/{dist/shared → shared}/screen-observer/index.d.ts +0 -0
- /package/{dist/shared → shared}/screen-observer/index.d.ts.map +0 -0
- /package/{dist/shared → shared}/screen-observer/provide-screen-observer.d.ts +0 -0
- /package/{dist/shared → shared}/screen-observer/provide-screen-observer.d.ts.map +0 -0
- /package/{dist/shared → shared}/screen-observer/screen-observer.d.ts +0 -0
- /package/{dist/shared → shared}/screen-observer/screen-observer.d.ts.map +0 -0
- /package/{dist/shared → shared}/types.d.ts +0 -0
- /package/{dist/shared → shared}/types.d.ts.map +0 -0
- /package/{dist/tailwind.config.js → tailwind.config.js} +0 -0
- /package/{dist/types → types}/sizes.type.d.ts +0 -0
- /package/{dist/types → types}/sizes.type.d.ts.map +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"3ddv-software-division-components.mjs","sources":["../../projects/software-division-components/src/backoffice/checkbox/checkbox.component.html","../../projects/software-division-components/src/backoffice/checkbox/checkbox.component.ts","../../projects/software-division-components/src/generic/button/ui/ui-button-helm/src/lib/hlm-button.token.ts","../../projects/software-division-components/src/generic/button/ui/ui-button-helm/src/lib/hlm-button.ts","../../projects/software-division-components/src/generic/button/ui/ui-button-helm/src/index.ts","../../projects/software-division-components/src/backoffice/datepicker/ui/ui-icon-helm/src/lib/hlm-icon.token.ts","../../projects/software-division-components/src/backoffice/datepicker/ui/ui-icon-helm/src/lib/hlm-icon.ts","../../projects/software-division-components/src/backoffice/datepicker/ui/ui-icon-helm/src/index.ts","../../projects/software-division-components/src/backoffice/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar.ts","../../projects/software-division-components/src/backoffice/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar-multi.ts","../../projects/software-division-components/src/backoffice/datepicker/ui/ui-calendar-helm/src/index.ts","../../projects/software-division-components/src/backoffice/datepicker/ui/ui-popover-helm/src/lib/hlm-popover-close.ts","../../projects/software-division-components/src/backoffice/datepicker/ui/ui-popover-helm/src/lib/hlm-popover-content.ts","../../projects/software-division-components/src/backoffice/datepicker/ui/ui-popover-helm/src/index.ts","../../projects/software-division-components/src/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker.token.ts","../../projects/software-division-components/src/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker.ts","../../projects/software-division-components/src/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker-multi.token.ts","../../projects/software-division-components/src/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker-multi.ts","../../projects/software-division-components/src/backoffice/datepicker/ui/ui-date-picker-helm/src/index.ts","../../projects/software-division-components/src/backoffice/datepicker/datepicker.component.html","../../projects/software-division-components/src/backoffice/datepicker/datepicker.component.ts","../../projects/software-division-components/src/backoffice/datepicker/public-api.ts","../../projects/software-division-components/src/backoffice/input/input.component.html","../../projects/software-division-components/src/backoffice/input/input.component.ts","../../projects/software-division-components/src/backoffice/input/public-api.ts","../../projects/software-division-components/src/backoffice/radio/radio.component.ts","../../projects/software-division-components/src/backoffice/radio/radio.component.html","../../projects/software-division-components/src/shared/types.ts","../../projects/software-division-components/src/generic/button/button.component.ts","../../projects/software-division-components/src/generic/button/button.component.html","../../projects/software-division-components/src/generic/button/public-api.ts","../../projects/software-division-components/src/backoffice/table/ui/ui-icon-helm/src/lib/hlm-icon.token.ts","../../projects/software-division-components/src/backoffice/table/ui/ui-icon-helm/src/lib/hlm-icon.ts","../../projects/software-division-components/src/backoffice/table/ui/ui-icon-helm/src/index.ts","../../projects/software-division-components/src/backoffice/table/_components/pagination/pagination.component.html","../../projects/software-division-components/src/backoffice/table/_components/pagination/pagination.component.ts","../../projects/software-division-components/src/backoffice/table/_components/selection-table-head/selection-table-head.component.ts","../../projects/software-division-components/src/backoffice/table/_components/selection-table-head/selection-table-head.component.html","../../projects/software-division-components/src/backoffice/table/_components/selection-table-row/selection-table-row.component.ts","../../projects/software-division-components/src/backoffice/table/_components/selection-table-row/selection-table-row.component.html","../../projects/software-division-components/src/backoffice/table/_components/sort-header-button/sort-header-button.component.html","../../projects/software-division-components/src/backoffice/table/_components/sort-header-button/sort-header-button.component.ts","../../projects/software-division-components/src/backoffice/table/ui/ui-table-helm/src/lib/hlm-table.ts","../../projects/software-division-components/src/backoffice/table/ui/ui-table-helm/src/index.ts","../../projects/software-division-components/src/backoffice/table/table.component.ts","../../projects/software-division-components/src/backoffice/table/table.component.html","../../projects/software-division-components/src/backoffice/table/public-api.ts","../../projects/software-division-components/src/dvm/cart/cart.component.ts","../../projects/software-division-components/src/dvm/cart/cart.component.html","../../projects/software-division-components/src/dvm/cart/cart.service.ts","../../projects/software-division-components/src/dvm/cart/public-api.ts","../../projects/software-division-components/src/dvm/cart-item/cart-item.component.ts","../../projects/software-division-components/src/dvm/cart-item/cart-item.component.html","../../projects/software-division-components/src/dvm/cart-item/cart-item.service.ts","../../projects/software-division-components/src/dvm/cart-item/public-api.ts","../../projects/software-division-components/src/types/sizes.type.ts","../../projects/software-division-components/src/dvm/legend/ui/legend-elements/legend-elements.component.html","../../projects/software-division-components/src/dvm/legend/ui/legend-elements/legend-elements.component.ts","../../projects/software-division-components/src/dvm/legend/legend.component.html","../../projects/software-division-components/src/dvm/legend/legend.component.ts","../../projects/software-division-components/src/dvm/legend/public-api.ts","../../projects/software-division-components/src/dvm/loader/loader.component.ts","../../projects/software-division-components/src/dvm/loader/loader.component.html","../../projects/software-division-components/src/dvm/loader/loader.service.ts","../../projects/software-division-components/src/dvm/loader/public-api.ts","../../projects/software-division-components/src/dvm/map-loader/map-loader.component.ts","../../projects/software-division-components/src/dvm/map-loader/map-loader.component.html","../../projects/software-division-components/src/dvm/map-loader/public-api.ts","../../projects/software-division-components/src/dvm/neighbors/neighbors.component.html","../../projects/software-division-components/src/dvm/neighbors/neighbors.component.ts","../../projects/software-division-components/src/dvm/popover/popover.config.ts","../../projects/software-division-components/src/dvm/popover/popover.service.ts","../../projects/software-division-components/src/dvm/popover/types.ts","../../projects/software-division-components/src/dvm/popover/base-popover.component.ts","../../projects/software-division-components/src/dvm/popover/seat-popover/seat-popover.component.html","../../projects/software-division-components/src/dvm/popover/seat-popover/seat-popover.component.ts","../../projects/software-division-components/src/dvm/popover/section-popover/section-popover.component.html","../../projects/software-division-components/src/dvm/popover/section-popover/section-popover.component.ts","../../projects/software-division-components/src/dvm/popover/popover.component.html","../../projects/software-division-components/src/dvm/popover/popover.component.ts","../../projects/software-division-components/src/dvm/popover/services/popover-manager.service.ts","../../projects/software-division-components/src/dvm/popover/services/dvm-popover-positioner.service.ts","../../projects/software-division-components/src/dvm/popover/transformers/base-popover-data-transformer.ts","../../projects/software-division-components/src/dvm/popover/public-api.ts","../../projects/software-division-components/src/dvm/stepper/stepper.component.html","../../projects/software-division-components/src/dvm/stepper/stepper.component.ts","../../projects/software-division-components/src/dvm/stepper/public-api.ts","../../projects/software-division-components/src/dvm/ticket-info-item/ticket-info-item.component.ts","../../projects/software-division-components/src/dvm/ticket-info-item/ticket-info-item.component.html","../../projects/software-division-components/src/dvm/ticket-info-item/ticket-info-item.service.ts","../../projects/software-division-components/src/dvm/ticket-info-item/public-api.ts","../../projects/software-division-components/src/generic/braintree/braintree.component.ts","../../projects/software-division-components/src/generic/add-digital-wallet/add-digital-wallet.component.html","../../projects/software-division-components/src/generic/add-digital-wallet/add-digital-wallet.component.ts","../../projects/software-division-components/src/generic/braintree/public-api.ts","../../projects/software-division-components/src/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-overlay.ts","../../projects/software-division-components/src/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.ts","../../projects/software-division-components/src/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-close.ts","../../projects/software-division-components/src/generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.token.ts","../../projects/software-division-components/src/generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.ts","../../projects/software-division-components/src/generic/icon/lib/ui-icon-helm/src/index.ts","../../projects/software-division-components/src/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-content.ts","../../projects/software-division-components/src/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-description.ts","../../projects/software-division-components/src/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-footer.ts","../../projects/software-division-components/src/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-header.ts","../../projects/software-division-components/src/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-title.ts","../../projects/software-division-components/src/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.service.ts","../../projects/software-division-components/src/generic/dialog/libs/ui-dialog-helm/src/index.ts","../../projects/software-division-components/src/generic/dialog/dialog.component.html","../../projects/software-division-components/src/generic/dialog/dialog.component.ts","../../projects/software-division-components/src/generic/dialog/public-api.ts","../../projects/software-division-components/src/generic/drawer/drawer.component.ts","../../projects/software-division-components/src/generic/drawer/drawer.component.html","../../projects/software-division-components/src/generic/drawer/drawer.service.ts","../../projects/software-division-components/src/generic/drawer/public-api.ts","../../projects/software-division-components/src/generic/icon/icon.component.html","../../projects/software-division-components/src/generic/icon/icon.component.ts","../../projects/software-division-components/src/generic/icon/public-api.ts","../../projects/software-division-components/src/generic/select/lib/hlm-select.ts","../../projects/software-division-components/src/generic/select/lib/hlm-select-content.ts","../../projects/software-division-components/src/generic/select/lib/hlm-select-group.ts","../../projects/software-division-components/src/generic/select/lib/hlm-select-label.ts","../../projects/software-division-components/src/generic/select/lib/hlm-select-option.ts","../../projects/software-division-components/src/generic/select/lib/hlm-select-scroll-down.ts","../../projects/software-division-components/src/generic/select/lib/hlm-select-scroll-up.ts","../../projects/software-division-components/src/generic/select/lib/hlm-select-trigger.ts","../../projects/software-division-components/src/generic/select/lib/hlm-select-value.ts","../../projects/software-division-components/src/generic/select/lib/index.ts","../../projects/software-division-components/src/generic/select/select.component.html","../../projects/software-division-components/src/generic/select/select.component.ts","../../projects/software-division-components/src/shared/declare-theme-variables/declare-theme-variables.ts","../../projects/software-division-components/src/shared/lib-provider/config-token.ts","../../projects/software-division-components/src/shared/lib-provider/provide-sdc.ts","../../projects/software-division-components/src/shared/screen-observer/screen-observer.ts","../../projects/software-division-components/src/shared/screen-observer/provide-screen-observer.ts","../../projects/software-division-components/src/public-api.ts","../../projects/software-division-components/src/3ddv-software-division-components.ts"],"sourcesContent":["<div [class]=\"computedClass()\">\n <label class=\"component-container\" [for]=\"name()\">\n <span class=\"checkbox-label\">{{ label() }}</span>\n\n <input\n class=\"checkbox-input\"\n [id]=\"name()\"\n [formControl]=\"control()\"\n type=\"checkbox\"\n [name]=\"name()\"\n [value]=\"value()\"\n [checked]=\"isChecked()\" />\n\n <span class=\"checkmark\"></span>\n </label>\n\n <!-- Error message -->\n @if (showError()) {\n <div class=\"sdc-checkbox-error\">\n {{ currentErrorMessage() }}\n </div>\n }\n</div>\n","import { Component, computed, input, OnDestroy, OnInit, signal } from '@angular/core';\nimport { FormControl, FormSubmittedEvent, ReactiveFormsModule, ValidationErrors } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { ThemeClass } from '../../shared/types';\n\nexport type CheckboxStyleClasses = ReturnType<(typeof CheckboxComponent.prototype)['styleClass']>;\n\n/**\n * A customizable checkbox component.\n *\n * This component supports various configurations and exposes all Spartan UI checkbox functionality.\n * All HTML checkbox attributes and events are automatically forwarded to the inner checkbox element.\n *\n * @since 1.0.0-alpha.1\n */\n@Component({\n standalone: true,\n selector: 'sdc-checkbox',\n styleUrls: ['./checkbox.component.css'],\n templateUrl: './checkbox.component.html',\n imports: [ReactiveFormsModule],\n})\nexport class CheckboxComponent implements OnInit, OnDestroy {\n private readonly allowedVariants = [\n 'variant-primary',\n 'variant-secondary',\n 'variant-alternative',\n 'variant-success',\n 'variant-warning',\n 'variant-danger',\n ] as const;\n private readonly allowedSizes = ['size-sm', 'size-md', 'size-lg', 'size-xl'] as const;\n\n /**\n * The current theme applied to the component.\n */\n public readonly theme = input<ThemeClass>('theme-sdc');\n\n /**\n * Predefined styles to apply to the component.\n * Can be a single class or multiple classes from different categories.\n */\n public readonly styleClass = input<((typeof this.allowedVariants)[number] | (typeof this.allowedSizes)[number])[]>(\n []\n );\n\n // Computed signal that validates and filters the styleClass checkbox\n private readonly _validatedStyleClass = computed(() => {\n const value = this.styleClass();\n\n if (!Array.isArray(value)) {\n return [];\n }\n\n const validValues = value.filter(style => {\n return (\n (this.allowedVariants as readonly string[]).includes(style) ||\n (this.allowedSizes as readonly string[]).includes(style)\n );\n });\n\n const invalidValues = value.filter(style => {\n return (\n !(this.allowedVariants as readonly string[]).includes(style) &&\n !(this.allowedSizes as readonly string[]).includes(style)\n );\n });\n\n if (invalidValues.length > 0) {\n throw new Error(\n `CheckboxComponent: Invalid styleClass values ignored: ${invalidValues.join(', ')}. Allowed values: ${[\n ...this.allowedVariants,\n ...this.allowedSizes,\n ].join(', ')}`\n );\n }\n\n return validValues;\n });\n\n /**\n * Additional CSS classes to apply to the component.\n */\n public readonly className = input<string>('');\n\n /**\n * Whether the component is disabled.\n */\n public readonly disabled = input<boolean>(false);\n\n /**\n * The label text to display above or to the left of the checkbox.\n * Only visible when a value is provided.\n */\n public readonly label = input.required<string>();\n\n /**\n * The position of the label relative to the checkbox.\n */\n public readonly labelPosition = input<'left' | 'right'>('left');\n\n /**\n * The name of the form control.\n */\n public readonly name = input.required<string>();\n\n /**\n * The FormControl instance to bind to this checkbox.\n * This allows the component to access form state without circular dependencies.\n */\n public readonly control = input.required<FormControl>();\n\n /**\n * The value of the checkbox.\n */\n public readonly value = input.required<string>();\n\n /**\n * Whether the checkbox is checked.\n */\n public readonly isChecked = signal<boolean>(false);\n\n /**\n * Computed class string that combines theme and user classes.\n */\n protected readonly computedClass = computed(() => {\n const themeClass = this.theme();\n const styleClass = this._validatedStyleClass();\n const className = this.className();\n const labelClass = this.labelPosition() === 'left' ? 'sdc-checkbox-label-left' : 'sdc-checkbox-label-right';\n const checkedClass = this.isChecked() ? 'sdc-checkbox-checked' : '';\n return ['sdc-checkbox', themeClass, ...styleClass, className, labelClass, checkedClass].filter(Boolean).join(' ');\n });\n\n /**\n * Custom error message to override the validator's error message.\n */\n public readonly errorMessage = input<string>('');\n\n /**\n * Controls when errors are displayed.\n * - 'after-submit': Show errors only after form submission (default)\n * - 'always': Show errors immediately when validation fails\n */\n public readonly errorDisplayMode = input<'always' | 'after-submit'>('after-submit');\n\n /**\n * The state of the form control.\n */\n public readonly controlState = signal<{\n invalid: boolean;\n errors: ValidationErrors | null;\n isFormSubmitted: boolean;\n }>({ errors: null, invalid: false, isFormSubmitted: false });\n\n /**\n * Computed signal to get the current error message.\n */\n protected readonly currentErrorMessage = computed(() => {\n const customMessage = this.errorMessage();\n const hasErrors = Object.keys(this.controlState()?.errors ?? {}).length > 0;\n\n if (hasErrors && customMessage && customMessage.trim().length > 0) {\n return customMessage;\n }\n\n // If no custom message, try to get validation error from the form control state\n if (hasErrors) {\n const firstErrorKey = Object.keys(this.controlState()?.errors ?? {})[0];\n return this.getValidatorErrorMessage(firstErrorKey);\n }\n\n return '';\n });\n\n /**\n * Computed signal to determine if there's an error to display.\n */\n protected readonly showError = computed(() => {\n const errorMode = this.errorDisplayMode();\n\n // For validation errors, respect the error display mode\n if (this.controlState()?.invalid) {\n if (errorMode === 'always') {\n // Show errors when component is touched and invalid\n return true;\n } else if (errorMode === 'after-submit') {\n // Show errors when form is submitted, regardless of touch/focus state\n return this.controlState()?.isFormSubmitted;\n }\n }\n\n return false;\n });\n\n /**\n * Subscriptions to the control's value changes.\n */\n private readonly subscriptions: (Subscription | undefined)[] = [];\n\n ngOnInit(): void {\n this.isChecked.set(this.control()?.value === this.value());\n\n const formEventsSubscription = this.control()?.parent?.events.subscribe(event => {\n // We do not reset this signal because it is used to show the errors\n // When a form is submitted at least once, we want to show the errors\n if (event instanceof FormSubmittedEvent) {\n this.controlState.set({\n ...this.controlState(),\n isFormSubmitted: true,\n errors: this.control()?.errors || null,\n });\n\n // We add this because the statusChanges event is not triggered when the form is submitted\n if (event.source.status === 'INVALID') {\n this.controlState.set({ ...this.controlState(), invalid: true });\n }\n }\n });\n\n // Listen to changes on this specific checkbox's control\n const valueChangesSubscription = this.control()?.valueChanges.subscribe(value => {\n this.isChecked.set(value === this.value());\n });\n\n const statusChangesSubscription = this.control()?.statusChanges.subscribe(status => {\n if (status === 'INVALID') {\n this.controlState.set({ ...this.controlState(), invalid: true });\n }\n\n this.controlState.set({ ...this.controlState(), errors: this.control()?.errors || null });\n });\n\n this.subscriptions.push(formEventsSubscription, valueChangesSubscription, statusChangesSubscription);\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(subscription => subscription?.unsubscribe());\n }\n\n /**\n * Gets the error message for a specific validator error.\n */\n private getValidatorErrorMessage(errorKey: string): string {\n switch (errorKey) {\n case 'required':\n return 'This field is required.';\n default:\n return 'This field is required.';\n }\n }\n}\n","import { InjectionToken, ValueProvider, inject } from '@angular/core';\nimport type { ButtonVariants } from './hlm-button';\n\nexport interface BrnButtonConfig {\n\tvariant: ButtonVariants['variant'];\n\tsize: ButtonVariants['size'];\n}\n\nconst defaultConfig: BrnButtonConfig = {\n\tvariant: 'default',\n\tsize: 'default',\n};\n\nconst BrnButtonConfigToken = new InjectionToken<BrnButtonConfig>('BrnButtonConfig');\n\nexport function provideBrnButtonConfig(config: Partial<BrnButtonConfig>): ValueProvider {\n\treturn { provide: BrnButtonConfigToken, useValue: { ...defaultConfig, ...config } };\n}\n\nexport function injectBrnButtonConfig(): BrnButtonConfig {\n\treturn inject(BrnButtonConfigToken, { optional: true }) ?? defaultConfig;\n}\n","import { Directive, computed, input, signal } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { type VariantProps, cva } from 'class-variance-authority';\nimport type { ClassValue } from 'clsx';\nimport { injectBrnButtonConfig } from './hlm-button.token';\n\nexport const buttonVariants = cva(\n\t'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_ng-icon]:pointer-events-none shrink-0 [&_ng-icon]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive cursor-default',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',\n\t\t\t\tdestructive:\n\t\t\t\t\t'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n\t\t\t\toutline:\n\t\t\t\t\t'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',\n\t\t\t\tsecondary: 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',\n\t\t\t\tghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n\t\t\t\tlink: 'text-primary underline-offset-4 hover:underline',\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tdefault: 'h-9 px-4 py-2 has-[>ng-icon]:px-3',\n\t\t\t\tsm: 'h-8 rounded-md gap-1.5 px-3 has-[>ng-icon]:px-2.5',\n\t\t\t\tlg: 'h-10 rounded-md px-6 has-[>ng-icon]:px-4',\n\t\t\t\ticon: 'size-9',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'default',\n\t\t\tsize: 'default',\n\t\t},\n\t},\n);\n\nexport type ButtonVariants = VariantProps<typeof buttonVariants>;\n\n@Directive({\n\tselector: '[hlmBtn]',\n\texportAs: 'hlmBtn',\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmButton {\n\tprivate readonly _config = injectBrnButtonConfig();\n\n\tprivate readonly _additionalClasses = signal<ClassValue>('');\n\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(buttonVariants({ variant: this.variant(), size: this.size() }), this.userClass(), this._additionalClasses()),\n\t);\n\n\tpublic readonly variant = input<ButtonVariants['variant']>(this._config.variant);\n\n\tpublic readonly size = input<ButtonVariants['size']>(this._config.size);\n\n\tsetClass(classes: string): void {\n\t\tthis._additionalClasses.set(classes);\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport { HlmButton } from './lib/hlm-button';\nexport * from './lib/hlm-button';\nexport * from './lib/hlm-button.token';\n\n@NgModule({\n\timports: [HlmButton],\n\texports: [HlmButton],\n})\nexport class HlmButtonModule {}\n","import { InjectionToken, ValueProvider, inject } from '@angular/core';\nimport type { IconSize } from './hlm-icon';\n\nexport interface HlmIconConfig {\n\tsize: IconSize;\n}\n\nconst defaultConfig: HlmIconConfig = {\n\tsize: 'base',\n};\n\nconst HlmIconConfigToken = new InjectionToken<HlmIconConfig>('HlmIconConfig');\n\nexport function provideHlmIconConfig(config: Partial<HlmIconConfig>): ValueProvider {\n\treturn { provide: HlmIconConfigToken, useValue: { ...defaultConfig, ...config } };\n}\n\nexport function injectHlmIconConfig(): HlmIconConfig {\n\treturn inject(HlmIconConfigToken, { optional: true }) ?? defaultConfig;\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { injectHlmIconConfig } from './hlm-icon.token';\n\nexport type IconSize = 'xs' | 'sm' | 'base' | 'lg' | 'xl' | 'none' | (Record<never, never> & string);\n\n@Directive({\n\tselector: 'ng-icon[hlm]',\n\thost: {\n\t\t'[style.--ng-icon__size]': '_computedSize()',\n\t},\n})\nexport class HlmIcon {\n\tprivate readonly _config = injectHlmIconConfig();\n\tpublic readonly size = input<IconSize>(this._config.size);\n\n\tprotected readonly _computedSize = computed(() => {\n\t\tconst size = this.size();\n\n\t\tswitch (size) {\n\t\t\tcase 'xs':\n\t\t\t\treturn '12px';\n\t\t\tcase 'sm':\n\t\t\t\treturn '16px';\n\t\t\tcase 'base':\n\t\t\t\treturn '24px';\n\t\t\tcase 'lg':\n\t\t\t\treturn '32px';\n\t\t\tcase 'xl':\n\t\t\t\treturn '48px';\n\t\t\tdefault: {\n\t\t\t\treturn size;\n\t\t\t}\n\t\t}\n\t});\n}\n","import { NgModule } from '@angular/core';\nimport { HlmIcon } from './lib/hlm-icon';\n\nexport * from './lib/hlm-icon';\nexport * from './lib/hlm-icon.token';\n\n@NgModule({\n\timports: [HlmIcon],\n\texports: [HlmIcon],\n})\nexport class HlmIconModule {}\n","import { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n computed,\n input,\n model,\n numberAttribute,\n viewChild,\n} from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronLeft, lucideChevronRight } from '@ng-icons/lucide';\nimport {\n BrnCalendar,\n BrnCalendarCell,\n BrnCalendarCellButton,\n BrnCalendarGrid,\n BrnCalendarHeader,\n BrnCalendarNextButton,\n BrnCalendarPreviousButton,\n BrnCalendarWeek,\n BrnCalendarWeekday,\n Weekday,\n injectBrnCalendarI18n,\n} from '@spartan-ng/brain/calendar';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { injectDateAdapter } from '@spartan-ng/brain/date-time';\nimport type { ClassValue } from 'clsx';\nimport { buttonVariants } from '../../../../../../generic/button/ui/ui-button-helm/src';\nimport { HlmIcon } from '../../../ui-icon-helm/src';\n\n@Component({\n selector: 'hlm-calendar',\n imports: [\n BrnCalendar,\n BrnCalendarHeader,\n BrnCalendarNextButton,\n BrnCalendarPreviousButton,\n BrnCalendarWeekday,\n BrnCalendarWeek,\n BrnCalendarCellButton,\n BrnCalendarCell,\n BrnCalendarGrid,\n NgIcon,\n HlmIcon,\n ],\n viewProviders: [provideIcons({ lucideChevronLeft, lucideChevronRight })],\n template: `\n <div\n brnCalendar\n [min]=\"min()\"\n [max]=\"max()\"\n [disabled]=\"disabled()\"\n [(date)]=\"date\"\n [dateDisabled]=\"dateDisabled()\"\n [weekStartsOn]=\"weekStartsOn()\"\n [defaultFocusedDate]=\"defaultFocusedDate()\"\n [class]=\"_computedCalenderClass()\">\n <div class=\"inline-flex flex-col space-y-4\">\n <!-- Header -->\n <div class=\"space-y-4\">\n <div class=\"relative flex items-center justify-center pt-1\">\n <div brnCalendarHeader class=\"text-sm font-medium\">\n {{ _heading() }}\n </div>\n\n <div class=\"flex items-center space-x-1\">\n <button\n brnCalendarPreviousButton\n 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\">\n <ng-icon hlm name=\"lucideChevronLeft\" size=\"sm\" />\n </button>\n\n <button\n brnCalendarNextButton\n 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\">\n <ng-icon hlm name=\"lucideChevronRight\" size=\"sm\" />\n </button>\n </div>\n </div>\n </div>\n\n <table class=\"w-full border-collapse space-y-1\" brnCalendarGrid>\n <thead>\n <tr class=\"flex\">\n <th\n *brnCalendarWeekday=\"let weekday\"\n scope=\"col\"\n class=\"text-muted-foreground w-8 rounded-md text-[0.8rem] font-normal\"\n [attr.aria-label]=\"_i18n.labelWeekday(weekday)\">\n {{ _i18n.formatWeekdayName(weekday) }}\n </th>\n </tr>\n </thead>\n\n <tbody role=\"rowgroup\">\n <tr *brnCalendarWeek=\"let week\" class=\"mt-2 flex w-full\">\n @for (date of week; track _dateAdapter.getTime(date)) {\n <td\n brnCalendarCell\n 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\">\n <button brnCalendarCellButton [date]=\"date\" [class]=\"_btnClass\">\n {{ _dateAdapter.getDate(date) }}\n </button>\n </td>\n }\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmCalendar<T> {\n public readonly calendarClass = input<ClassValue>('');\n\n protected readonly _computedCalenderClass = computed(() => hlm('rounded-md border p-3', this.calendarClass()));\n\n /** Access the calendar i18n */\n protected readonly _i18n = injectBrnCalendarI18n();\n\n /** Access the date time adapter */\n protected readonly _dateAdapter = injectDateAdapter<T>();\n\n /** The minimum date that can be selected.*/\n public readonly min = input<T>();\n\n /** The maximum date that can be selected. */\n public readonly max = input<T>();\n\n /** Determine if the date picker is disabled. */\n public readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n /** The selected value. */\n public readonly date = model<T>();\n\n /** Whether a specific date is disabled. */\n public readonly dateDisabled = input<(date: T) => boolean>(() => false);\n\n /** The day the week starts on */\n public readonly weekStartsOn = input<Weekday, NumberInput>(0, {\n transform: (v: unknown) => numberAttribute(v) as Weekday,\n });\n\n /** The default focused date. */\n public readonly defaultFocusedDate = input<T>();\n\n /** Access the calendar directive */\n private readonly _calendar = viewChild.required(BrnCalendar);\n\n /** Get the heading for the current month and year */\n protected readonly _heading = computed(() =>\n this._i18n.formatHeader(\n this._dateAdapter.getMonth(this._calendar().focusedDate()),\n this._dateAdapter.getYear(this._calendar().focusedDate())\n )\n );\n\n protected readonly _btnClass = hlm(\n buttonVariants({ variant: 'ghost' }),\n 'size-8 p-0 font-normal aria-selected:opacity-100',\n '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',\n 'data-[today]:bg-accent data-[today]:text-accent-foreground',\n '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',\n 'data-[disabled]:text-muted-foreground data-[disabled]:opacity-50'\n );\n}\n","import { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n computed,\n input,\n model,\n numberAttribute,\n viewChild,\n} from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronLeft, lucideChevronRight } from '@ng-icons/lucide';\nimport {\n BrnCalendarCell,\n BrnCalendarCellButton,\n BrnCalendarGrid,\n BrnCalendarHeader,\n BrnCalendarMulti,\n BrnCalendarNextButton,\n BrnCalendarPreviousButton,\n BrnCalendarWeek,\n BrnCalendarWeekday,\n Weekday,\n injectBrnCalendarI18n,\n} from '@spartan-ng/brain/calendar';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { injectDateAdapter } from '@spartan-ng/brain/date-time';\nimport type { ClassValue } from 'clsx';\nimport { buttonVariants } from '../../../../../../generic/button/ui/ui-button-helm/src';\nimport { HlmIcon } from '../../../ui-icon-helm/src';\n\n@Component({\n selector: 'hlm-calendar-multi',\n imports: [\n BrnCalendarMulti,\n BrnCalendarHeader,\n BrnCalendarNextButton,\n BrnCalendarPreviousButton,\n BrnCalendarWeekday,\n BrnCalendarWeek,\n BrnCalendarCellButton,\n BrnCalendarCell,\n BrnCalendarGrid,\n NgIcon,\n HlmIcon,\n ],\n viewProviders: [provideIcons({ lucideChevronLeft, lucideChevronRight })],\n template: `\n <div\n brnCalendarMulti\n [min]=\"min()\"\n [max]=\"max()\"\n [minSelection]=\"minSelection()\"\n [maxSelection]=\"maxSelection()\"\n [disabled]=\"disabled()\"\n [(date)]=\"date\"\n [dateDisabled]=\"dateDisabled()\"\n [weekStartsOn]=\"weekStartsOn()\"\n [defaultFocusedDate]=\"defaultFocusedDate()\"\n [class]=\"_computedCalenderClass()\">\n <div class=\"inline-flex flex-col space-y-4\">\n <!-- Header -->\n <div class=\"space-y-4\">\n <div class=\"relative flex items-center justify-center pt-1\">\n <div brnCalendarHeader class=\"text-sm font-medium\">\n {{ _heading() }}\n </div>\n\n <div class=\"flex items-center space-x-1\">\n <button\n brnCalendarPreviousButton\n 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\">\n <ng-icon hlm name=\"lucideChevronLeft\" size=\"sm\" />\n </button>\n\n <button\n brnCalendarNextButton\n 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\">\n <ng-icon hlm name=\"lucideChevronRight\" size=\"sm\" />\n </button>\n </div>\n </div>\n </div>\n\n <table class=\"w-full border-collapse space-y-1\" brnCalendarGrid>\n <thead>\n <tr class=\"flex\">\n <th\n *brnCalendarWeekday=\"let weekday\"\n scope=\"col\"\n class=\"text-muted-foreground w-8 rounded-md text-[0.8rem] font-normal\"\n [attr.aria-label]=\"_i18n.labelWeekday(weekday)\">\n {{ _i18n.formatWeekdayName(weekday) }}\n </th>\n </tr>\n </thead>\n\n <tbody role=\"rowgroup\">\n <tr *brnCalendarWeek=\"let week\" class=\"mt-2 flex w-full\">\n @for (date of week; track _dateAdapter.getTime(date)) {\n <td\n brnCalendarCell\n 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\">\n <button brnCalendarCellButton [date]=\"date\" [class]=\"_btnClass\">\n {{ _dateAdapter.getDate(date) }}\n </button>\n </td>\n }\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmCalendarMulti<T> {\n public readonly calendarClass = input<ClassValue>('');\n\n protected readonly _computedCalenderClass = computed(() => hlm('rounded-md border p-3', this.calendarClass()));\n\n /** Access the calendar i18n */\n protected readonly _i18n = injectBrnCalendarI18n();\n\n /** Access the date time adapter */\n protected readonly _dateAdapter = injectDateAdapter<T>();\n\n /** The minimum date that can be selected.*/\n public readonly min = input<T>();\n\n /** The maximum date that can be selected. */\n public readonly max = input<T>();\n\n /** The minimum selectable dates. */\n public readonly minSelection = input<number, NumberInput>(undefined, {\n transform: numberAttribute,\n });\n\n /** The maximum selectable dates. */\n public readonly maxSelection = input<number, NumberInput>(undefined, {\n transform: numberAttribute,\n });\n\n /** Determine if the date picker is disabled. */\n public readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n /** The selected value. */\n public readonly date = model<T[]>();\n\n /** Whether a specific date is disabled. */\n public readonly dateDisabled = input<(date: T) => boolean>(() => false);\n\n /** The day the week starts on */\n public readonly weekStartsOn = input<Weekday, NumberInput>(0, {\n transform: (v: unknown) => numberAttribute(v) as Weekday,\n });\n\n /** The default focused date. */\n public readonly defaultFocusedDate = input<T>();\n\n /** Access the calendar directive */\n private readonly _calendar = viewChild.required(BrnCalendarMulti);\n\n /** Get the heading for the current month and year */\n protected readonly _heading = computed(() =>\n this._i18n.formatHeader(\n this._dateAdapter.getMonth(this._calendar().focusedDate()),\n this._dateAdapter.getYear(this._calendar().focusedDate())\n )\n );\n\n protected readonly _btnClass = hlm(\n buttonVariants({ variant: 'ghost' }),\n 'size-8 p-0 font-normal aria-selected:opacity-100',\n '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',\n 'data-[today]:bg-accent data-[today]:text-accent-foreground',\n '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',\n 'data-[disabled]:text-muted-foreground data-[disabled]:opacity-50'\n );\n}\n","import { NgModule } from '@angular/core';\nimport { HlmCalendar } from './lib/hlm-calendar';\nimport { HlmCalendarMulti } from './lib/hlm-calendar-multi';\n\nexport * from './lib/hlm-calendar';\nexport * from './lib/hlm-calendar-multi';\n\nexport const HlmCalendarImports = [HlmCalendar, HlmCalendarMulti] as const;\n\n@NgModule({\n\timports: [...HlmCalendarImports],\n\texports: [...HlmCalendarImports],\n})\nexport class HlmCalendarModule {}\n","import { Directive, computed, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n\tselector: '[hlmPopoverClose],[brnPopoverClose][hlm]',\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmPopoverClose {\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(\n\t\t\t'absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground',\n\t\t\tthis.userClass(),\n\t\t),\n\t);\n}\n","import { Directive, ElementRef, Renderer2, computed, effect, inject, input, signal } from '@angular/core';\nimport { hlm, injectExposesStateProvider } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n\tselector: '[hlmPopoverContent],[brnPopoverContent][hlm]',\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmPopoverContent {\n\tprivate readonly _stateProvider = injectExposesStateProvider({ host: true });\n\tpublic state = this._stateProvider.state ?? signal('closed');\n\tprivate readonly _renderer = inject(Renderer2);\n\tprivate readonly _element = inject(ElementRef);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis._renderer.setAttribute(this._element.nativeElement, 'data-state', this.state());\n\t\t});\n\t}\n\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(\n\t\t\t'relative border-border w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n\t\t\tthis.userClass(),\n\t\t),\n\t);\n}\n","import { NgModule } from '@angular/core';\n\nimport { HlmPopoverClose } from './lib/hlm-popover-close';\nimport { HlmPopoverContent } from './lib/hlm-popover-content';\n\nexport * from './lib/hlm-popover-close';\nexport * from './lib/hlm-popover-content';\n\nexport const HlmPopoverImports = [HlmPopoverContent, HlmPopoverClose] as const;\n\n@NgModule({\n\timports: [...HlmPopoverImports],\n\texports: [...HlmPopoverImports],\n})\nexport class HlmPopoverModule {}\n","import { inject, InjectionToken, ValueProvider } from '@angular/core';\n\nexport interface HlmDatePickerConfig<T> {\n\t/**\n\t * If true, the date picker will close when a date is selected.\n\t */\n\tautoCloseOnSelect: boolean;\n\n\t/**\n\t * Defines how the date should be displayed in the UI.\n\t *\n\t * @param date\n\t * @returns formatted date\n\t */\n\tformatDate: (date: T) => string;\n\n\t/**\n\t * Defines how the date should be transformed before saving to model/form.\n\t *\n\t * @param date\n\t * @returns transformed date\n\t */\n\ttransformDate: (date: T) => T;\n}\n\nfunction getDefaultConfig<T>(): HlmDatePickerConfig<T> {\n\treturn {\n\t\tformatDate: (date) => (date instanceof Date ? date.toDateString() : `${date}`),\n\t\ttransformDate: (date) => date,\n\t\tautoCloseOnSelect: false,\n\t};\n}\n\nconst HlmDatePickerConfigToken = new InjectionToken<HlmDatePickerConfig<unknown>>('HlmDatePickerConfig');\n\nexport function provideHlmDatePickerConfig<T>(config: Partial<HlmDatePickerConfig<T>>): ValueProvider {\n\treturn { provide: HlmDatePickerConfigToken, useValue: { ...getDefaultConfig(), ...config } };\n}\n\nexport function injectHlmDatePickerConfig<T>(): HlmDatePickerConfig<T> {\n\tconst injectedConfig = inject(HlmDatePickerConfigToken, { optional: true });\n\treturn injectedConfig ? (injectedConfig as HlmDatePickerConfig<T>) : getDefaultConfig();\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideCalendar } from '@ng-icons/lucide';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnDialogState } from '@spartan-ng/brain/dialog';\nimport { type ChangeFn, type TouchFn } from '@spartan-ng/brain/forms';\nimport { BrnPopover, BrnPopoverContent, BrnPopoverTrigger } from '@spartan-ng/brain/popover';\nimport type { ClassValue } from 'clsx';\nimport { HlmCalendar } from '../../../ui-calendar-helm/src';\nimport { HlmIcon } from '../../../ui-icon-helm/src';\nimport { HlmPopoverContent } from '../../../ui-popover-helm/src';\nimport { injectHlmDatePickerConfig } from './hlm-date-picker.token';\n\nexport const HLM_DATE_PICKER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => HlmDatePicker),\n multi: true,\n};\n\n@Component({\n selector: 'hlm-date-picker',\n imports: [NgIcon, HlmIcon, BrnPopover, BrnPopoverTrigger, BrnPopoverContent, HlmPopoverContent, HlmCalendar],\n providers: [HLM_DATE_PICKER_VALUE_ACCESSOR, provideIcons({ lucideCalendar })],\n template: `\n <brn-popover sideOffset=\"5\" [state]=\"_popoverState()\" (stateChanged)=\"_popoverState.set($event)\">\n <button type=\"button\" [class]=\"_computedClass()\" [disabled]=\"_state().disabled()\" brnPopoverTrigger>\n <span class=\"truncate\">\n @if (_formattedDate(); as formattedDate) {\n {{ formattedDate }}\n } @else {\n <ng-content />\n }\n </span>\n\n <ng-icon hlm size=\"sm\" name=\"lucideCalendar\" />\n </button>\n\n <div hlmPopoverContent [class]=\"styleClass()\" class=\"w-auto p-0\" *brnPopoverContent=\"let ctx\">\n <hlm-calendar\n calendarClass=\"border-0 rounded-none\"\n [date]=\"date()\"\n [min]=\"min()\"\n [max]=\"max()\"\n [disabled]=\"_state().disabled()\"\n (dateChange)=\"_handleChange($event)\" />\n </div>\n </brn-popover>\n `,\n host: {\n class: 'block',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmDatePicker<T> implements ControlValueAccessor {\n private readonly _config = injectHlmDatePickerConfig<T>();\n\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm(\n 'inline-flex items-center gap-2 whitespace-nowrap rounded-md text-sm transition-all disabled:pointer-events-none disabled:opacity-50 ring-offset-background transition-colors border border-input bg-background hover:bg-accent dark:bg-input/30 dark:hover:bg-input/50 hover:text-accent-foreground w-[280px] justify-start text-left font-normal cursor-default justify-between',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:pointer-events-none disabled:opacity-50',\n '[&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0',\n !this.date() ? 'text-muted-foreground' : '',\n this.userClass()\n )\n );\n\n /**\n * This is used to apply the theme-sdc class to the datepicker's dialog.\n */\n public readonly styleClass = input<string>('');\n\n /** The minimum date that can be selected.*/\n public readonly min = input<T>();\n\n /** The maximum date that can be selected. */\n public readonly max = input<T>();\n\n /** Determine if the date picker is disabled. */\n public readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n /** The selected value. */\n public readonly date = model<T>();\n\n /** If true, the date picker will close when a date is selected. */\n public readonly autoCloseOnSelect = input<boolean, BooleanInput>(this._config.autoCloseOnSelect, {\n transform: booleanAttribute,\n });\n\n /** Defines how the date should be displayed in the UI. */\n public readonly formatDate = input<(date: T) => string>(this._config.formatDate);\n\n /** Defines how the date should be transformed before saving to model/form. */\n public readonly transformDate = input<(date: T) => T>(this._config.transformDate);\n\n protected readonly _popoverState = signal<BrnDialogState | null>(null);\n\n protected readonly _state = computed(() => ({\n disabled: signal(this.disabled()),\n }));\n\n protected readonly _formattedDate = computed(() => {\n const date = this.date();\n return date ? this.formatDate()(date) : undefined;\n });\n\n public readonly changed = output<T>();\n\n protected _onChange?: ChangeFn<T>;\n protected _onTouched?: TouchFn;\n\n protected _handleChange(value: T) {\n if (this._state().disabled()) return;\n const transformedDate = this.transformDate()(value);\n\n this.date.set(transformedDate);\n this._onChange?.(transformedDate);\n this.changed.emit(transformedDate);\n\n if (this.autoCloseOnSelect()) {\n this._popoverState.set('closed');\n }\n }\n\n /** CONROL VALUE ACCESSOR */\n writeValue(value: T | null): void {\n // optional FormControl is initialized with null value\n if (value === null) return;\n\n this.date.set(this.transformDate()(value));\n }\n\n registerOnChange(fn: ChangeFn<T>): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: TouchFn): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._state().disabled.set(isDisabled);\n }\n\n open() {\n this._popoverState.set('open');\n }\n\n close() {\n this._popoverState.set('closed');\n }\n}\n","import { inject, InjectionToken, ValueProvider } from '@angular/core';\n\nexport interface HlmDatePickerMultiConfig<T> {\n\t/**\n\t * If true, the date picker will close when the max selection of dates is reached.\n\t */\n\tautoCloseOnMaxSelection: boolean;\n\n\t/**\n\t * Defines how the date should be displayed in the UI.\n\t *\n\t * @param dates\n\t * @returns formatted date\n\t */\n\tformatDates: (dates: T[]) => string;\n\n\t/**\n\t * Defines how the date should be transformed before saving to model/form.\n\t *\n\t * @param dates\n\t * @returns transformed date\n\t */\n\ttransformDates: (dates: T[]) => T[];\n}\n\nfunction getDefaultConfig<T>(): HlmDatePickerMultiConfig<T> {\n\treturn {\n\t\tformatDates: (dates) => dates.map((date) => (date instanceof Date ? date.toDateString() : `${date}`)).join(', '),\n\t\ttransformDates: (dates) => dates,\n\t\tautoCloseOnMaxSelection: false,\n\t};\n}\n\nconst HlmDatePickerMultiConfigToken = new InjectionToken<HlmDatePickerMultiConfig<unknown>>('HlmDatePickerMultiConfig');\n\nexport function provideHlmDatePickerConfig<T>(config: Partial<HlmDatePickerMultiConfig<T>>): ValueProvider {\n\treturn { provide: HlmDatePickerMultiConfigToken, useValue: { ...getDefaultConfig(), ...config } };\n}\n\nexport function injectHlmDatePickerMultiConfig<T>(): HlmDatePickerMultiConfig<T> {\n\tconst injectedConfig = inject(HlmDatePickerMultiConfigToken, { optional: true });\n\treturn injectedConfig ? (injectedConfig as HlmDatePickerMultiConfig<T>) : getDefaultConfig();\n}\n","import { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n model,\n numberAttribute,\n output,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideCalendar } from '@ng-icons/lucide';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnDialogState } from '@spartan-ng/brain/dialog';\nimport { type ChangeFn, type TouchFn } from '@spartan-ng/brain/forms';\nimport { BrnPopover, BrnPopoverContent, BrnPopoverTrigger } from '@spartan-ng/brain/popover';\nimport type { ClassValue } from 'clsx';\nimport { HlmCalendarMulti } from '../../../ui-calendar-helm/src';\nimport { HlmIcon } from '../../../ui-icon-helm/src';\nimport { HlmPopoverContent } from '../../../ui-popover-helm/src';\nimport { injectHlmDatePickerMultiConfig } from './hlm-date-picker-multi.token';\n\nexport const HLM_DATE_PICKER_MUTLI_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => HlmDatePickerMulti),\n multi: true,\n};\n\n@Component({\n selector: 'hlm-date-picker-multi',\n imports: [NgIcon, HlmIcon, BrnPopover, BrnPopoverTrigger, BrnPopoverContent, HlmPopoverContent, HlmCalendarMulti],\n providers: [HLM_DATE_PICKER_MUTLI_VALUE_ACCESSOR, provideIcons({ lucideCalendar })],\n template: `\n <brn-popover sideOffset=\"5\" [state]=\"_popoverState()\" (stateChanged)=\"_popoverState.set($event)\">\n <button type=\"button\" [class]=\"_computedClass()\" [disabled]=\"_state().disabled()\" brnPopoverTrigger>\n <ng-icon hlm size=\"sm\" name=\"lucideCalendar\" />\n\n <span class=\"truncate\">\n @if (_formattedDate(); as formattedDate) {\n {{ formattedDate }}\n } @else {\n <ng-content />\n }\n </span>\n </button>\n\n <div hlmPopoverContent class=\"w-auto p-0\" *brnPopoverContent=\"let ctx\">\n <hlm-calendar-multi\n calendarClass=\"border-0 rounded-none\"\n [date]=\"date()\"\n [min]=\"min()\"\n [max]=\"max()\"\n [minSelection]=\"minSelection()\"\n [maxSelection]=\"maxSelection()\"\n [disabled]=\"_state().disabled()\"\n (dateChange)=\"_handleChange($event)\" />\n </div>\n </brn-popover>\n `,\n host: {\n class: 'block',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmDatePickerMulti<T> implements ControlValueAccessor {\n private readonly _config = injectHlmDatePickerMultiConfig<T>();\n\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm(\n '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',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:pointer-events-none disabled:opacity-50',\n '[&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0',\n !this.date() ? 'text-muted-foreground' : '',\n this.userClass()\n )\n );\n\n /** The minimum date that can be selected.*/\n public readonly min = input<T>();\n\n /** The maximum date that can be selected. */\n public readonly max = input<T>();\n\n /** The minimum selectable dates. */\n public readonly minSelection = input<number, NumberInput>(undefined, {\n transform: numberAttribute,\n });\n\n /** The maximum selectable dates. */\n public readonly maxSelection = input<number, NumberInput>(undefined, {\n transform: numberAttribute,\n });\n\n /** Determine if the date picker is disabled. */\n public readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n /** The selected value. */\n public readonly date = model<T[]>();\n\n /** If true, the date picker will close when the max selection of dates is reached.. */\n public readonly autoCloseOnMaxSelection = input<boolean, BooleanInput>(this._config.autoCloseOnMaxSelection, {\n transform: booleanAttribute,\n });\n\n /** Defines how the date should be displayed in the UI. */\n public readonly formatDates = input<(date: T[]) => string>(this._config.formatDates);\n\n /** Defines how the date should be transformed before saving to model/form. */\n public readonly transformDates = input<(date: T[]) => T[]>(this._config.transformDates);\n\n protected readonly _popoverState = signal<BrnDialogState | null>(null);\n\n protected readonly _state = computed(() => ({\n disabled: signal(this.disabled()),\n }));\n\n protected readonly _formattedDate = computed(() => {\n const dates = this.date();\n return dates ? this.formatDates()(dates) : undefined;\n });\n\n public readonly changed = output<T[]>();\n\n protected _onChange?: ChangeFn<T[]>;\n protected _onTouched?: TouchFn;\n\n protected _handleChange(value: T[] | undefined) {\n if (value === undefined) return;\n\n if (this._state().disabled()) return;\n const transformedDate = this.transformDates()(value);\n\n this.date.set(transformedDate);\n this._onChange?.(transformedDate);\n this.changed.emit(transformedDate);\n\n if (this.autoCloseOnMaxSelection() && this.date()?.length === this.maxSelection()) {\n this._popoverState.set('closed');\n }\n }\n\n /** CONROL VALUE ACCESSOR */\n writeValue(value: T[] | null): void {\n // optional FormControl is initialized with null value\n if (value === null) return;\n\n this.date.set(this.transformDates()(value));\n }\n\n registerOnChange(fn: ChangeFn<T[]>): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: TouchFn): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._state().disabled.set(isDisabled);\n }\n\n open() {\n this._popoverState.set('open');\n }\n\n close() {\n this._popoverState.set('closed');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { HlmDatePicker } from './lib/hlm-date-picker';\nimport { HlmDatePickerMulti } from './lib/hlm-date-picker-multi';\n\nexport * from './lib/hlm-date-picker.token';\n\nexport * from './lib/hlm-date-picker';\nexport * from './lib/hlm-date-picker-multi';\n\nexport const HlmDatePickerImports = [HlmDatePicker, HlmDatePickerMulti] as const;\n\n@NgModule({\n\timports: [...HlmDatePickerImports],\n\texports: [...HlmDatePickerImports],\n})\nexport class HlmDatePickerModule {}\n","<div [class]=\"computedClass()\">\n <div class=\"component-container\">\n <!-- Label positioned above or to the left -->\n @if (showLabel()) {\n <label [class]=\"labelClass()\" [for]=\"name()\">\n {{ label() }}\n </label>\n }\n\n <!-- The styleClass is applied to the date picker's dialog -->\n <hlm-date-picker\n [styleClass]=\"computedClass()\"\n [id]=\"name()\"\n [min]=\"minDate()!\"\n [max]=\"maxDate()!\"\n [date]=\"safeDate()\"\n [formatDate]=\"formatDate()\"\n [autoCloseOnSelect]=\"autoCloseOnSelect()\"\n [disabled]=\"disabled()\"\n (changed)=\"handleDateChange($event)\">\n @if (placeholder()) {\n <span class=\"sdc-datepicker-placeholder\">{{ placeholder() }}</span>\n }\n </hlm-date-picker>\n </div>\n\n <!-- Error message -->\n @if (showError()) {\n <div class=\"sdc-datepicker-error\">\n {{ currentErrorMessage() }}\n </div>\n }\n\n <!-- Hint message -->\n @if (hint() && hint().trim().length > 0 && !showError()) {\n <div class=\"sdc-datepicker-hint\">\n {{ hint() }}\n </div>\n }\n</div>\n","import { Component, computed, input, OnDestroy, OnInit, output, signal } from '@angular/core';\nimport {\n AbstractControl,\n FormControl,\n FormSubmittedEvent,\n PristineChangeEvent,\n ReactiveFormsModule,\n TouchedChangeEvent,\n ValidationErrors,\n} from '@angular/forms';\nimport { BrnNativeDateAdapter, provideDateAdapter } from '@spartan-ng/brain/date-time';\nimport { Subscription } from 'rxjs';\nimport { ThemeClass } from '../../shared/types';\nimport { HlmDatePicker } from './ui/ui-date-picker-helm/src';\n\nexport type DatePickerStyleClasses = ReturnType<(typeof DatePickerComponent.prototype)['styleClass']>;\n\n/**\n * A customizable datepicker component built on Spartan UI datepicker component.\n *\n * This component supports various configurations and exposes all native datepicker functionality.\n * All HTML datepicker attributes and events are automatically forwarded to the inner datepicker element.\n *\n * @since 1.0.0-alpha.1\n */\n@Component({\n standalone: true,\n selector: 'sdc-datepicker',\n styleUrls: ['./datepicker.component.css'],\n templateUrl: './datepicker.component.html',\n imports: [ReactiveFormsModule, HlmDatePicker],\n providers: [provideDateAdapter(BrnNativeDateAdapter)],\n})\nexport class DatePickerComponent implements OnInit, OnDestroy {\n private readonly allowedVariants = [\n 'variant-primary',\n 'variant-secondary',\n 'variant-alternative',\n 'variant-success',\n 'variant-warning',\n 'variant-danger',\n ] as const;\n private readonly allowedRadius = ['radius-default', 'radius-sm', 'radius-md', 'radius-lg', 'radius-xl'] as const;\n\n /**\n * The current theme applied to the component.\n */\n public readonly theme = input<ThemeClass>('theme-sdc');\n\n /**\n * Predefined styles to apply to the component.\n * Can be a single class or multiple classes from different categories.\n */\n public readonly styleClass = input<((typeof this.allowedVariants)[number] | (typeof this.allowedRadius)[number])[]>(\n []\n );\n\n // Computed signal that validates and filters the styleClass datepicker\n private readonly _validatedStyleClass = computed(() => {\n const value = this.styleClass();\n\n if (!Array.isArray(value)) {\n return [];\n }\n\n const validValues = value.filter(style => {\n return (\n (this.allowedVariants as readonly string[]).includes(style) ||\n (this.allowedRadius as readonly string[]).includes(style)\n );\n });\n\n const invalidValues = value.filter(style => {\n return (\n !(this.allowedVariants as readonly string[]).includes(style) &&\n !(this.allowedRadius as readonly string[]).includes(style)\n );\n });\n\n if (invalidValues.length > 0) {\n throw new Error(\n `DatePickerComponent: Invalid styleClass values ignored: ${invalidValues.join(', ')}. Allowed values: ${[\n ...this.allowedVariants,\n ...this.allowedRadius,\n ].join(', ')}`\n );\n }\n\n return validValues;\n });\n\n /**\n * Additional CSS classes to apply to the component.\n */\n public readonly className = input<string>('');\n\n /**\n * The label text to be displayed.\n * Only visible when a value is provided.\n */\n public readonly label = input<string>('');\n\n /**\n * The position of the label relative to the datepicker.\n * 'top' places the label above the datepicker, 'left' places it to the left.\n */\n public readonly labelPosition = input<'top' | 'left'>('top');\n\n /**\n * The placeholder text for the datepicker.\n */\n public readonly placeholder = input<string>('');\n\n /**\n * Whether the component is disabled.\n */\n public readonly disabled = input<boolean>(false);\n\n /**\n * The hint text for the datepicker.\n */\n public readonly hint = input<string>('');\n\n /**\n * The name of the form control.\n */\n public readonly name = input<string>('');\n\n /**\n * The maximum date for the datepicker.\n */\n public readonly maxDate = input<Date | null>(null);\n\n /**\n * The minimum date for the datepicker.\n */\n public readonly minDate = input<Date | null>(null);\n\n /**\n * Whether the datepicker should close when a date is selected.\n */\n public readonly autoCloseOnSelect = input<boolean>(false);\n\n /**\n * Custom error message to override the validator's error message.\n */\n public readonly errorMessage = input<string>('');\n\n /**\n * Controls when errors are displayed.\n * - 'after-submit': Show errors only after form submission (default)\n * - 'always': Show errors immediately when validation fails\n */\n public readonly errorDisplayMode = input<'always' | 'after-submit'>('after-submit');\n\n /**\n * The FormControl instance to bind to this datepicker.\n * This allows the component to access form state without circular dependencies.\n */\n public readonly control = input<AbstractControl<null | undefined> | FormControl | null>(null);\n\n /**\n * Callback function to format the date display.\n * Receives a Date object and returns a formatted string.\n */\n public readonly formatDate = input<(date: Date) => string>(this.defaultFormatDate);\n\n /**\n * Component subscriptions.\n */\n private subscriptions: (Subscription | undefined)[] = [];\n\n /**\n * The current selected date value.\n */\n public readonly date = signal<Date | undefined>(undefined);\n\n /**\n * Computed signal that ensures the date is always either a valid Date object or undefined.\n * This prevents null values from being passed to the Spartan calendar component.\n */\n protected readonly safeDate = computed(() => {\n if (this.date() instanceof Date || this.date() === undefined) {\n return this.date();\n }\n\n throw new Error('DatePickerComponent: date must be a valid Date object or undefined');\n });\n\n /**\n * The state of the form control.\n */\n public readonly controlState = signal<{\n invalid: boolean;\n touched: boolean;\n dirty: boolean;\n errors: ValidationErrors | null | undefined;\n value: Date | undefined;\n isFormSubmitted: boolean;\n }>({ invalid: false, touched: false, dirty: false, errors: null, value: undefined, isFormSubmitted: false });\n\n /**\n * Event emitted when the date value changes.\n */\n public readonly dateChange = output<Date | null>();\n\n /**\n * Computed class string that combines theme and user classes.\n */\n protected readonly computedClass = computed(() => {\n const themeClass = this.theme();\n const styleClass = this._validatedStyleClass();\n const className = this.className();\n const errorClass = this.showError() ? 'has-error' : '';\n\n return ['sdc-datepicker', themeClass, ...styleClass, className, errorClass].filter(Boolean).join(' ');\n });\n\n /**\n * Computed class string for the label positioning.\n */\n protected readonly labelClass = computed(() => {\n const position = this.labelPosition();\n return position === 'left' ? 'sdc-datepicker-label left' : 'sdc-datepicker-label top';\n });\n\n /**\n * Computed signal to determine if the label should be visible.\n */\n protected readonly showLabel = computed(() => {\n return this.label() && this.label().trim().length > 0;\n });\n\n /**\n * Computed signal to get the current error message.\n */\n protected readonly currentErrorMessage = computed(() => {\n const customMessage = this.errorMessage();\n const hasErrors = Object.keys(this.controlState()?.errors ?? {}).length > 0;\n\n if (hasErrors && customMessage && customMessage.trim().length > 0) {\n return customMessage;\n }\n\n // If no custom message, try to get validation error from the form control state\n if (hasErrors) {\n const firstErrorKey = Object.keys(this.controlState()?.errors ?? {})[0];\n const firstErrorValue = this.controlState()?.errors?.[firstErrorKey];\n return this.getValidatorErrorMessage(firstErrorKey, firstErrorValue);\n }\n\n return '';\n });\n\n /**\n * Computed signal to determine if there's an error to display.\n */\n protected readonly showError = computed(() => {\n const errorMode = this.errorDisplayMode();\n\n // For validation errors, respect the error display mode\n if (this.controlState()?.invalid) {\n if (errorMode === 'always') {\n // Show errors when component is touched and invalid\n return this.controlState()?.touched || this.controlState()?.dirty || this.controlState()?.isFormSubmitted;\n } else if (errorMode === 'after-submit') {\n // Show errors when form is submitted, regardless of touch/focus state\n return this.controlState()?.isFormSubmitted;\n }\n }\n\n return false;\n });\n\n ngOnInit(): void {\n // Validate the name datepicker\n if ((this.control() || this.showLabel()) && !this.name()) {\n throw new Error('DatePickerComponent: name is required when control or label inputs are present');\n }\n\n // Initialize the date value from the form control if it exists\n if (this.control()) {\n const initialValue = this.control()?.value;\n // Ensure we start with undefined, if no value is provided\n this.date.set(initialValue instanceof Date ? initialValue : undefined);\n }\n\n const formEventsSubscription = this.control()?.parent?.events.subscribe(event => {\n // We do not reset this signal because it is used to show the errors\n // When a form is submitted at least once, we want to show the errors\n if (event instanceof FormSubmittedEvent) {\n this.controlState.set({ ...this.controlState(), isFormSubmitted: true });\n\n // We add this because the statusChanges event is not triggered when the form is submitted\n if (event.source.status === 'INVALID') {\n this.controlState.set({ ...this.controlState(), invalid: true });\n }\n }\n\n if (event instanceof TouchedChangeEvent) {\n this.controlState.set({ ...this.controlState(), touched: event.touched });\n }\n\n if (event instanceof PristineChangeEvent) {\n this.controlState.set({ ...this.controlState(), dirty: !event.pristine });\n }\n\n this.controlState.set({ ...this.controlState(), errors: this.control()?.errors });\n });\n\n const statusChangesSubscription = this.control()?.statusChanges.subscribe(status => {\n if (status === 'INVALID') {\n this.controlState.set({ ...this.controlState(), invalid: true });\n }\n\n this.controlState.set({ ...this.controlState(), errors: this.control()?.errors });\n });\n\n this.subscriptions.push(formEventsSubscription, statusChangesSubscription);\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(subscription => subscription?.unsubscribe());\n }\n\n private defaultFormatDate(date: Date): string {\n return date.toLocaleDateString('en-GB', {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n });\n }\n\n /**\n * Handles date change events from the Spartan date picker.\n */\n protected handleDateChange(date: Date | null): void {\n // Convert null to undefined for the signal to prevent null values\n const dateValue = date instanceof Date ? date : undefined;\n this.date.set(dateValue);\n this.dateChange.emit(date);\n\n // Update the form control value if it exists\n const control = this.control();\n if (control) {\n control.setValue(date);\n control.markAsDirty();\n control.markAsTouched();\n this.controlState.set({ ...this.controlState(), value: dateValue });\n }\n }\n\n /**\n * Gets the error message for a specific validator error.\n */\n private getValidatorErrorMessage(errorKey: string, errorValue: any): string {\n switch (errorKey) {\n case 'required':\n return 'This field is required.';\n case 'pattern':\n return 'Please enter a valid value.';\n default:\n return 'Please enter a valid value.';\n }\n }\n}\n","// Export the main form component\nexport * from './datepicker.component';\n","<div [class]=\"computedClass()\">\n <div class=\"component-container\">\n <!-- Label positioned above or to the left -->\n @if (showLabel()) {\n <label [class]=\"labelClass()\" [for]=\"name()\">\n {{ label() }}\n </label>\n }\n\n <div class=\"input-container\">\n @if (isTextarea()) {\n <textarea\n [rows]=\"textareaRows()\"\n [cols]=\"textareaCols()\"\n [id]=\"name()\"\n [name]=\"name()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\"\n (input)=\"handleInput($event)\"\n class=\"sdc-input-field\"></textarea>\n } @else {\n <input\n [id]=\"name()\"\n [name]=\"name()\"\n [type]=\"type()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\"\n (input)=\"handleInput($event)\"\n class=\"sdc-input-field\" />\n }\n </div>\n </div>\n\n <!-- Error message -->\n @if (showError()) {\n <div class=\"sdc-input-error\">\n {{ currentErrorMessage() }}\n </div>\n }\n\n <!-- Hint message -->\n @if (hint() && hint().trim().length > 0 && !showError()) {\n <div class=\"sdc-input-hint\">\n {{ hint() }}\n </div>\n }\n</div>\n","import { Component, computed, effect, EffectRef, input, OnDestroy, OnInit, output, signal } from '@angular/core';\nimport {\n AbstractControl,\n FormControl,\n FormSubmittedEvent,\n ReactiveFormsModule,\n ValidationErrors,\n} from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ThemeClass } from '../../shared/types';\n\nexport type InputStyleClasses = ReturnType<(typeof InputComponent.prototype)['styleClass']>;\n\n/**\n * A customizable input component built on the native input element.\n *\n * This component supports various configurations and exposes all native input functionality.\n * All HTML input attributes and events are automatically forwarded to the inner input element.\n *\n * @since 1.0.0-alpha.1\n */\n@Component({\n standalone: true,\n selector: 'sdc-input',\n styleUrls: ['./input.component.css'],\n templateUrl: './input.component.html',\n imports: [ReactiveFormsModule],\n})\nexport class InputComponent implements OnInit, OnDestroy {\n private readonly allowedVariants = [\n 'variant-primary',\n 'variant-secondary',\n 'variant-alternative',\n 'variant-success',\n 'variant-warning',\n 'variant-danger',\n ] as const;\n private readonly allowedSizes = ['size-sm', 'size-md', 'size-lg', 'size-xl'] as const;\n private readonly allowedRadius = [\n 'radius-default',\n 'radius-sm',\n 'radius-md',\n 'radius-lg',\n 'radius-xl',\n 'radius-2xl',\n 'radius-full',\n ] as const;\n\n /**\n * The current theme applied to the component.\n */\n public readonly theme = input<ThemeClass>('theme-sdc');\n\n /**\n * Predefined styles to apply to the component.\n * Can be a single class or multiple classes from different categories.\n */\n public readonly styleClass = input<\n ((typeof this.allowedVariants)[number] | (typeof this.allowedSizes)[number] | (typeof this.allowedRadius)[number])[]\n >([]);\n\n // Computed signal that validates and filters the styleClass input\n private readonly _validatedStyleClass = computed(() => {\n const value = this.styleClass();\n\n if (!Array.isArray(value)) {\n return [];\n }\n\n const validValues = value.filter(style => {\n return (\n (this.allowedVariants as readonly string[]).includes(style) ||\n (this.allowedSizes as readonly string[]).includes(style) ||\n (this.allowedRadius as readonly string[]).includes(style)\n );\n });\n\n const invalidValues = value.filter(style => {\n return (\n !(this.allowedVariants as readonly string[]).includes(style) &&\n !(this.allowedSizes as readonly string[]).includes(style) &&\n !(this.allowedRadius as readonly string[]).includes(style)\n );\n });\n\n if (invalidValues.length > 0) {\n throw new Error(\n `InputComponent: Invalid styleClass values ignored: ${invalidValues.join(', ')}. Allowed values: ${[\n ...this.allowedVariants,\n ...this.allowedSizes,\n ...this.allowedRadius,\n ].join(', ')}`\n );\n }\n\n return validValues;\n });\n\n /**\n * Additional CSS classes to apply to the component.\n */\n public readonly className = input<string>('');\n\n /**\n * The label text to display above or to the left of the input.\n * Only visible when a value is provided.\n */\n public readonly label = input<string>('');\n\n /**\n * The position of the label relative to the input.\n * 'top' places the label above the input, 'left' places it to the left.\n */\n public readonly labelPosition = input<'top' | 'left'>('top');\n\n /**\n * Whether the component is disabled.\n */\n public readonly disabled = input<boolean>(false);\n\n /**\n * The type of the input element.\n */\n public readonly type = input<string>('text');\n\n /**\n * The placeholder text for the input.\n */\n public readonly placeholder = input<string>('');\n\n /**\n * The hint text for the input.\n */\n public readonly hint = input<string>('');\n\n /**\n * The name of the form control.\n */\n public readonly name = input<string>('');\n\n /**\n * Whether the input is a textarea.\n */\n public readonly isTextarea = input<boolean>(false);\n\n /**\n * The number of rows for the textarea.\n */\n public readonly textareaRows = input<number>(1);\n\n /**\n * The number of columns for the textarea.\n */\n public readonly textareaCols = input<number>(1);\n\n /**\n * Whether the textarea is resizable.\n */\n public readonly textareaResize = input<'none' | 'both' | 'horizontal' | 'vertical'>('vertical');\n\n /**\n * Custom error message to override the validator's error message.\n */\n public readonly errorMessage = input<string>('');\n\n /**\n * Controls when errors are displayed.\n * - 'after-submit': Show errors only after form submission (default)\n * - 'always': Show errors immediately when validation fails\n */\n public readonly errorDisplayMode = input<'always' | 'after-submit'>('after-submit');\n\n /**\n * The FormControl instance to bind to this input.\n * This allows the component to access form state without circular dependencies.\n */\n public readonly control = input<AbstractControl<string | null> | FormControl | null>(null);\n\n /**\n * The state of the form control.\n */\n public readonly controlState = signal<{\n invalid: boolean;\n touched: boolean;\n dirty: boolean;\n errors: ValidationErrors | null;\n value: string;\n isFormSubmitted: boolean;\n }>({ invalid: false, touched: false, dirty: false, errors: null, value: '', isFormSubmitted: false });\n\n /**\n * Event emitted when the component receives focus.\n */\n public readonly onFocus = output<FocusEvent>();\n\n /**\n * Event emitted when the component loses focus.\n */\n public readonly onBlur = output<FocusEvent>();\n\n /**\n * Event emitted when the input value changes.\n */\n public readonly onInput = output<InputEvent>();\n\n /**\n * Computed class string that combines theme and user classes.\n */\n protected readonly computedClass = computed(() => {\n const themeClass = this.theme();\n const styleClass = this._validatedStyleClass();\n const className = this.className();\n const errorClass = this.showError() ? 'has-error' : '';\n const textareaResizeClass = this.isTextarea() ? `resize-${this.textareaResize()}` : '';\n return ['sdc-input', themeClass, ...styleClass, className, errorClass, textareaResizeClass]\n .filter(Boolean)\n .join(' ');\n });\n\n /**\n * Computed class string for the label positioning.\n */\n protected readonly labelClass = computed(() => {\n const position = this.labelPosition();\n return position === 'left' ? 'sdc-input-label left' : 'sdc-input-label top';\n });\n\n /**\n * Debounce time in milliseconds. When 0, no debounce is applied.\n * Default value is 0 (no debounce).\n */\n public readonly debounce = input<number>(0);\n\n /**\n * Event emitted to notify the debounce state.\n * Returns true while the component is debounced, false when not.\n */\n public readonly isDebounced = output<boolean>();\n\n /**\n * Signal to track the current debounce state of the component.\n */\n protected readonly debounceState = signal<boolean>(false);\n\n /**\n * Subject for handling input events with debounce.\n */\n private readonly inputSubject = new Subject<Event>();\n\n /**\n * Subject for cleanup.\n */\n private readonly destroy$ = new Subject<void>();\n\n /**\n * Current subscription for debounce.\n */\n private debounceSubscription: Subscription | null = null;\n\n /**\n * Current debounce timeout.\n */\n private debounceTimeout: ReturnType<typeof setTimeout> | null = null;\n\n /**\n * Component subscriptions.\n */\n private subscriptions: (Subscription | undefined)[] = [];\n\n /**\n * Computed signal to determine if the label should be visible.\n */\n protected readonly showLabel = computed(() => {\n return this.label() && this.label().trim().length > 0;\n });\n\n /**\n * Computed signal to get the current error message.\n */\n protected readonly currentErrorMessage = computed(() => {\n const customMessage = this.errorMessage();\n const hasErrors = Object.keys(this.controlState()?.errors ?? {}).length > 0;\n\n if (hasErrors && customMessage && customMessage.trim().length > 0) {\n return customMessage;\n }\n\n // If no custom message, try to get validation error from the form control state\n if (hasErrors) {\n const firstErrorKey = Object.keys(this.controlState()?.errors ?? {})[0];\n const firstErrorValue = this.controlState()?.errors?.[firstErrorKey];\n return this.getValidatorErrorMessage(firstErrorKey, firstErrorValue);\n }\n\n return '';\n });\n\n /**\n * Computed signal to determine if there's an error to display.\n */\n protected readonly showError = computed(() => {\n const errorMode = this.errorDisplayMode();\n\n // For validation errors, respect the error display mode\n if (this.controlState()?.invalid) {\n if (errorMode === 'always') {\n // Show errors when component is touched and invalid\n return this.controlState()?.touched || this.controlState()?.dirty || this.controlState()?.isFormSubmitted;\n } else if (errorMode === 'after-submit') {\n // Show errors when form is submitted, regardless of touch/focus state\n return this.controlState()?.isFormSubmitted;\n }\n }\n\n return false;\n });\n\n /**\n * References to effects for proper cleanup\n */\n private readonly effects: EffectRef[] = [];\n\n constructor() {\n // Set up reactive debounce handling within injection context\n const debounceEffect = effect(() => {\n const debounceTime = this.debounce();\n this.setupDebounce(debounceTime);\n });\n this.effects.push(debounceEffect);\n }\n\n ngOnInit(): void {\n // Validate the name input\n if ((this.control() || this.showLabel()) && !this.name()) {\n throw new Error('InputComponent: name is required when control or label inputs are present');\n }\n\n const formEventsSubscription = this.control()?.parent?.events.subscribe(event => {\n // We do not reset this signal because it is used to show the errors\n // When a form is submitted at least once, we want to show the errors\n if (event instanceof FormSubmittedEvent) {\n this.controlState.set({ ...this.controlState(), isFormSubmitted: true });\n\n // We add this because the statusChanges event is not triggered when the form is submitted\n if (event.source.status === 'INVALID') {\n this.controlState.set({ ...this.controlState(), invalid: true });\n }\n }\n\n this.updateErrors();\n });\n\n const statusChangesSubscription = this.control()?.statusChanges.subscribe(status => {\n if (status === 'INVALID') {\n this.controlState.set({ ...this.controlState(), invalid: true });\n }\n\n this.updateErrors();\n });\n\n this.subscriptions.push(formEventsSubscription, statusChangesSubscription);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n this.inputSubject.complete();\n if (this.debounceSubscription) {\n this.debounceSubscription.unsubscribe();\n }\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n this.effects.forEach(effect => effect.destroy());\n this.subscriptions.forEach(subscription => subscription?.unsubscribe());\n }\n\n private updateErrors() {\n // We override the errors except the internal_* errors\n const currentInternalErrors = Object.entries(this.controlState()?.errors || {})?.filter(([key]) =>\n key.startsWith('internal_')\n );\n const controlStateHasInternalErrors = currentInternalErrors.length > 0;\n\n const newErrors =\n this.control()?.errors || controlStateHasInternalErrors\n ? Object.assign(Object.fromEntries(currentInternalErrors), this.control()?.errors ?? {})\n : null;\n\n this.controlState.set({ ...this.controlState(), errors: newErrors });\n }\n\n /**\n * Sets up the debounce functionality for input events.\n */\n private setupDebounce(debounceTime: number): void {\n // Clear existing subscription\n if (this.debounceSubscription) {\n this.debounceSubscription.unsubscribe();\n }\n\n // Clear existing timeout\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n this.debounceTimeout = null;\n }\n\n // Set up new subscription\n this.debounceSubscription = this.inputSubject.pipe(takeUntil(this.destroy$)).subscribe((event: Event) => {\n // Clear existing timeout\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n\n // Set new timeout\n this.debounceTimeout = setTimeout(() => {\n this.debounceState.set(false);\n this.isDebounced.emit(false);\n this.onInput.emit(event as InputEvent);\n this.debounceTimeout = null;\n }, debounceTime);\n });\n }\n\n /**\n * Handles input events with debounce functionality.\n */\n protected handleInput(event: Event): void {\n const target = event.target as HTMLInputElement;\n const newValue = target.value;\n\n // Only allow numbers for input with type number\n if (this.type() === 'number') {\n const isValidNumber = /^[0-9]+$/.test(newValue);\n this.controlState.set({ ...this.controlState(), errors: isValidNumber ? null : { internal_number: true } });\n }\n\n // Update the form control value\n this.controlState.set({ ...this.controlState(), value: newValue, dirty: true });\n this.control()?.setValue(newValue);\n\n const debounceTime = this.debounce();\n\n if (debounceTime > 0) {\n // Apply debounce\n this.debounceState.set(true);\n this.isDebounced.emit(true);\n this.inputSubject.next({ ...event, target: { ...event.target, value: newValue } } as unknown as InputEvent);\n } else {\n // No debounce, emit immediately\n this.onInput.emit({ ...event, target: { ...event.target, value: newValue } } as unknown as InputEvent);\n }\n }\n\n /**\n * Handles focus events and emits the onFocus output.\n */\n protected handleFocus(event: FocusEvent): void {\n this.controlState.set({ ...this.controlState(), touched: true });\n this.onFocus.emit(event);\n }\n\n /**\n * Handles blur events and emits the onBlur output.\n */\n protected handleBlur(event: FocusEvent): void {\n this.controlState.set({ ...this.controlState(), touched: true });\n this.onBlur.emit(event);\n }\n\n /**\n * Gets the error message for a specific validator error.\n */\n private getValidatorErrorMessage(errorKey: string, errorValue: any): string {\n switch (errorKey) {\n case 'required':\n return 'This field is required.';\n case 'internal_number':\n return 'Please enter a valid number.';\n case 'email':\n return 'Please enter a valid email address.';\n case 'minlength':\n return `Minimum length is ${errorValue.requiredLength} characters.`;\n case 'maxlength':\n return `Maximum length is ${errorValue.requiredLength} characters.`;\n case 'min':\n return `Minimum value is ${errorValue.min}.`;\n case 'max':\n return `Maximum value is ${errorValue.max}.`;\n case 'pattern':\n return 'Please enter a valid value.';\n default:\n return 'Please enter a valid value.';\n }\n }\n}\n","// Export the main form component\nexport * from './input.component';\n","import { Component, computed, input, OnDestroy, OnInit, signal } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { ThemeClass } from '../../shared/types';\n\nexport type RadioStyleClasses = ReturnType<(typeof RadioComponent.prototype)['styleClass']>;\n\n/**\n * A customizable radio component.\n *\n * This component supports various configurations and exposes all Spartan UI radio functionality.\n * All HTML radio attributes and events are automatically forwarded to the inner radio element.\n *\n * @since 1.0.0-alpha.1\n */\n@Component({\n standalone: true,\n selector: 'sdc-radio',\n styleUrls: ['./radio.component.css'],\n templateUrl: './radio.component.html',\n imports: [ReactiveFormsModule],\n})\nexport class RadioComponent implements OnInit, OnDestroy {\n private readonly allowedVariants = [\n 'variant-primary',\n 'variant-secondary',\n 'variant-alternative',\n 'variant-success',\n 'variant-warning',\n 'variant-danger',\n ] as const;\n private readonly allowedSizes = ['size-sm', 'size-md', 'size-lg', 'size-xl'] as const;\n\n /**\n * The current theme applied to the component.\n */\n public readonly theme = input<ThemeClass>('theme-sdc');\n\n /**\n * Predefined styles to apply to the component.\n * Can be a single class or multiple classes from different categories.\n */\n public readonly styleClass = input<((typeof this.allowedVariants)[number] | (typeof this.allowedSizes)[number])[]>(\n []\n );\n\n // Computed signal that validates and filters the styleClass radio\n private readonly _validatedStyleClass = computed(() => {\n const value = this.styleClass();\n\n if (!Array.isArray(value)) {\n return [];\n }\n\n const validValues = value.filter(style => {\n return (\n (this.allowedVariants as readonly string[]).includes(style) ||\n (this.allowedSizes as readonly string[]).includes(style)\n );\n });\n\n const invalidValues = value.filter(style => {\n return (\n !(this.allowedVariants as readonly string[]).includes(style) &&\n !(this.allowedSizes as readonly string[]).includes(style)\n );\n });\n\n if (invalidValues.length > 0) {\n throw new Error(\n `RadioComponent: Invalid styleClass values ignored: ${invalidValues.join(', ')}. Allowed values: ${[\n ...this.allowedVariants,\n ...this.allowedSizes,\n ].join(', ')}`\n );\n }\n\n return validValues;\n });\n\n /**\n * Additional CSS classes to apply to the component.\n */\n public readonly className = input<string>('');\n\n /**\n * Whether the component is disabled.\n */\n public readonly disabled = input<boolean>(false);\n\n /**\n * The label text to display above or to the left of the radio.\n * Only visible when a value is provided.\n */\n public readonly label = input.required<string>();\n\n /**\n * The position of the label relative to the radio.\n */\n public readonly labelPosition = input<'left' | 'right'>('left');\n\n /**\n * The name of the form control.\n */\n public readonly name = input.required<string>();\n\n /**\n * The FormControl instance to bind to this radio.\n * This allows the component to access form state without circular dependencies.\n */\n public readonly control = input.required<FormControl>();\n\n /**\n * The value of the radio button.\n */\n public readonly value = input.required<string>();\n\n /**\n * Whether the radio is checked.\n */\n public readonly isChecked = signal<boolean>(false);\n\n /**\n * Computed class string that combines theme and user classes.\n */\n protected readonly computedClass = computed(() => {\n const themeClass = this.theme();\n const styleClass = this._validatedStyleClass();\n const className = this.className();\n const labelClass = this.labelPosition() === 'left' ? 'sdc-radio-label-left' : 'sdc-radio-label-right';\n const checkedClass = this.isChecked() ? 'sdc-radio-checked' : '';\n return ['sdc-radio', themeClass, ...styleClass, className, labelClass, checkedClass].filter(Boolean).join(' ');\n });\n\n /**\n * Subscriptions to the control's value changes.\n */\n private readonly subscriptions: (Subscription | undefined)[] = [];\n\n ngOnInit(): void {\n this.isChecked.set(this.control()?.value === this.value());\n\n // Listen to changes on this specific radio's control\n const valueChangesSubscription = this.control()?.valueChanges.subscribe(value => {\n this.isChecked.set(value === this.value());\n });\n\n this.subscriptions.push(valueChangesSubscription);\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(subscription => subscription?.unsubscribe());\n }\n}\n","<label [class]=\"computedClass()\" [for]=\"name() + '-' + value()\">\n <input\n class=\"radio-input\"\n [id]=\"name() + '-' + value()\"\n [formControl]=\"control()\"\n type=\"radio\"\n [name]=\"name()\"\n [value]=\"value()\" />\n\n <span class=\"radio-container\">\n <span class=\"radio-element\"></span>\n </span>\n\n <span class=\"radio-label\">{{ label() }}</span>\n</label>\n","export const SIZES = { xxs: 'xxs', xs: 'xs', sm: 'sm', md: 'md', lg: 'lg', xl: 'xl', '2xl': '2xl' } as const;\n\nexport type Size = (typeof SIZES)[keyof typeof SIZES];\n\nexport type NgPipes = 'none' | 'currency' | 'date';\n\nexport type NgSdComponentsConfigValues = 'generic' | 'backoffice';\n\nexport interface NgSdComponentsConfig {\n theme: NgSdComponentsConfigValues;\n}\n\ntype Theme = 'backoffice' | 'sdc';\n\nexport type ThemeClass = `theme-${Theme}`;\n","import { Component, computed, effect, ElementRef, input, output, signal } from '@angular/core';\nimport { Subject, Subscription, takeUntil } from 'rxjs';\nimport { Size, SIZES, ThemeClass } from '../../shared/types';\nimport { HlmButtonModule } from './ui/ui-button-helm/src';\n\nconst BUTTON_VARIANTS = {\n primary: 'primary',\n secondary: 'secondary',\n alternative: 'alternative',\n warning: 'warning',\n destructive: 'destructive',\n success: 'success',\n outline: 'outline',\n link: 'link',\n} as const;\n\ntype ButtonVariant = (typeof BUTTON_VARIANTS)[keyof typeof BUTTON_VARIANTS];\n\ntype ButtonType = 'button' | 'submit' | 'reset';\n\nexport type ButtonStyleClasses = ReturnType<(typeof ButtonComponent.prototype)['styleClass']>;\n\n/**\n * A customizable button component built on Spartan UI Button.\n *\n * This component supports various configurations and exposes all Spartan UI button functionality.\n * All HTML button attributes and events are automatically forwarded to the inner button element.\n *\n * @since 1.0.0-alpha.1\n * @updated 1.0.0-alpha.3\n */\n@Component({\n selector: 'sdc-button',\n styleUrls: ['./button.component.css'],\n templateUrl: './button.component.html',\n imports: [HlmButtonModule],\n})\nexport class ButtonComponent {\n private readonly allowedVariants = Object.values(BUTTON_VARIANTS).map(v => `variant-${v}` as const);\n private readonly allowedSizes = Object.values(SIZES).map(v => `size-${v}` as const);\n private readonly allowedCircleSizes = [\n 'size-circle-sm',\n 'size-circle-md',\n 'size-circle-lg',\n 'size-circle-xl',\n ] as const;\n private readonly allowedRadius = [\n 'radius-default',\n 'radius-sm',\n 'radius-md',\n 'radius-lg',\n 'radius-xl',\n 'radius-2xl',\n 'radius-full',\n ] as const;\n private readonly allowedBorder = ['border-0', 'border-default', 'border-2', 'border-4', 'border-8'] as const;\n\n /**\n * The current theme applied to the component.\n */\n public readonly theme = input<ThemeClass>('theme-sdc');\n\n /**\n * Predefined styles to apply to the component.\n * Can be a single class or multiple classes from different categories.\n */\n public readonly styleClass = input<\n (\n | (typeof this.allowedVariants)[number]\n | (typeof this.allowedSizes)[number]\n | (typeof this.allowedCircleSizes)[number]\n | (typeof this.allowedRadius)[number]\n | (typeof this.allowedBorder)[number]\n )[]\n >([]);\n\n // Computed signal that validates and filters the styleClass input\n private readonly _validatedStyleClass = computed(() => {\n const value = this.styleClass();\n\n if (!Array.isArray(value)) {\n console.warn('ButtonComponent: styleClass must be an array, defaulting to empty array');\n return [];\n }\n\n const validValues = value.filter(\n style =>\n this.allowedVariants.includes(style as any) ||\n this.allowedSizes.includes(style as any) ||\n this.allowedCircleSizes.includes(style as any) ||\n this.allowedRadius.includes(style as any) ||\n this.allowedBorder.includes(style as any)\n );\n\n const invalidValues = value.filter(\n style =>\n !this.allowedVariants.includes(style as any) &&\n !this.allowedSizes.includes(style as any) &&\n !this.allowedCircleSizes.includes(style as any) &&\n !this.allowedRadius.includes(style as any) &&\n !this.allowedBorder.includes(style as any)\n );\n\n if (invalidValues.length > 0) {\n throw new Error(\n `ButtonComponent: Invalid styleClass values ignored: ${invalidValues.join(', ')}. Allowed values: ${[\n ...this.allowedVariants,\n ...this.allowedSizes,\n ...this.allowedCircleSizes,\n ...this.allowedRadius,\n ...this.allowedBorder,\n ].join(', ')}`\n );\n }\n\n return validValues;\n });\n\n /**\n * Additional classes\n */\n public readonly className = input<string>('');\n\n /**\n * Button component style variant\n */\n public readonly variant = input<ButtonVariant>('primary');\n\n /**\n * Button component size variant\n */\n public readonly size = input<Size>('md');\n\n /**\n * Native button type attribute\n */\n public readonly type = input<ButtonType>('button');\n\n /**\n * Whether the component is disabled.\n */\n public readonly disabled = input<boolean>(false);\n\n /**\n * Whether to enable the ripple effect on the component.\n * Default value is false.\n */\n public readonly ripple = input<boolean>(false);\n\n /**\n * Event emitted when the component is clicked.\n */\n public readonly onClick = output<MouseEvent>();\n\n /**\n * Event emitted when the component receives focus.\n */\n public readonly onFocus = output<FocusEvent>();\n\n /**\n * Event emitted when the component loses focus.\n */\n public readonly onBlur = output<FocusEvent>();\n\n protected readonly _sizeClass = computed(() => {\n const size = SIZES[this.size()];\n\n if (!size) {\n throw new Error(`size must be one of these: ${Object.values(SIZES).join(', ')}}`);\n }\n\n return `size-${size}`;\n });\n\n protected readonly _variantClass = computed(() => {\n const variant = BUTTON_VARIANTS[this.variant()];\n\n if (!variant) {\n throw new Error(`variant must be one of these: ${Object.values(BUTTON_VARIANTS).join(', ')}}`);\n }\n\n return `variant-${variant}`;\n });\n\n /**\n * Computed class string that combines theme and user classes.\n */\n protected readonly computedClass = computed(() => {\n const themeClass = this.theme();\n const styleClass = this._validatedStyleClass();\n const sizeClass = this._sizeClass();\n const variantClass = this._variantClass();\n const className = this.className();\n return Array.from(new Set(['sdc-button', themeClass, sizeClass, variantClass, ...styleClass, className]))\n .filter(Boolean)\n .join(' ');\n });\n\n /**\n * Debounce time in milliseconds. When null, no debounce is applied.\n * Default value is null (no debounce).\n */\n public readonly debounce = input<number | null>(null);\n\n /**\n * Event emitted to notify the debounce state.\n * Returns true while the component is debounced, false when not.\n */\n public readonly isDebounced = output<boolean>();\n\n /**\n * Signal to track the current debounce state of the component.\n */\n protected readonly debounceState = signal<boolean>(false);\n\n /**\n * Subject for handling click events with debounce.\n */\n private readonly clickSubject = new Subject<MouseEvent>();\n\n /**\n * Subject for cleanup.\n */\n private readonly destroy$ = new Subject<void>();\n\n /**\n * Current subscription for debounce.\n */\n private debounceSubscription: Subscription | null = null;\n\n /**\n * Current debounce timeout.\n */\n private debounceTimeout: ReturnType<typeof setTimeout> | null = null;\n\n constructor(private elementRef: ElementRef) {\n // Set up reactive debounce handling within injection context\n effect(() => {\n const debounceTime = this.debounce();\n this.setupDebounce(debounceTime);\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n this.clickSubject.complete();\n if (this.debounceSubscription) {\n this.debounceSubscription.unsubscribe();\n }\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n }\n\n /**\n * Sets up the debounce functionality for click events.\n */\n private setupDebounce(debounceTime: number | null): void {\n // Clear existing subscription\n if (this.debounceSubscription) {\n this.debounceSubscription.unsubscribe();\n }\n\n // Clear existing timeout\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n this.debounceTimeout = null;\n }\n\n // Set up new subscription\n this.debounceSubscription = this.clickSubject.pipe(takeUntil(this.destroy$)).subscribe((event: MouseEvent) => {\n // Clear existing timeout\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n\n // Set new timeout\n this.debounceTimeout = setTimeout(() => {\n this.debounceState.set(false);\n this.isDebounced.emit(false);\n this.onClick.emit(event);\n this.debounceTimeout = null;\n }, debounceTime ?? 0);\n });\n }\n\n /**\n * Handles click events with debounce functionality.\n */\n protected handleClick(event: MouseEvent): void {\n const debounceTime = this.debounce();\n\n if (debounceTime !== null && debounceTime > 0) {\n // Apply debounce\n this.debounceState.set(true);\n this.isDebounced.emit(true);\n this.clickSubject.next(event);\n } else {\n // No debounce, emit immediately\n this.onClick.emit(event);\n }\n }\n\n /**\n * Handles focus events and emits the onFocus output.\n */\n protected handleFocus(event: FocusEvent): void {\n this.onFocus.emit(event);\n }\n\n /**\n * Handles blur events and emits the onBlur output.\n */\n protected handleBlur(event: FocusEvent): void {\n this.onBlur.emit(event);\n }\n\n /**\n * Creates a ripple effect at the specified position.\n */\n protected createRipple(event: MouseEvent): void {\n if (!this.ripple()) return;\n\n const button = event.currentTarget as HTMLElement;\n const rect = button.getBoundingClientRect();\n const size = Math.max(rect.width, rect.height);\n const x = event.clientX - rect.left - size / 2;\n const y = event.clientY - rect.top - size / 2;\n\n const ripple = document.createElement('span');\n ripple.style.width = ripple.style.height = size + 'px';\n ripple.style.left = x + 'px';\n ripple.style.top = y + 'px';\n ripple.classList.add('sdc-ripple');\n\n button.appendChild(ripple);\n\n setTimeout(() => {\n ripple.remove();\n }, 600);\n }\n}\n","<button\n hlmBtn\n [class]=\"computedClass()\"\n [disabled]=\"disabled() || debounceState()\"\n (click)=\"handleClick($event); createRipple($event)\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\"\n [type]=\"type()\">\n <ng-content></ng-content>\n</button>\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './button.component';\n","import { InjectionToken, ValueProvider, inject } from '@angular/core';\nimport type { IconSize } from './hlm-icon';\n\nexport interface HlmIconConfig {\n\tsize: IconSize;\n}\n\nconst defaultConfig: HlmIconConfig = {\n\tsize: 'base',\n};\n\nconst HlmIconConfigToken = new InjectionToken<HlmIconConfig>('HlmIconConfig');\n\nexport function provideHlmIconConfig(config: Partial<HlmIconConfig>): ValueProvider {\n\treturn { provide: HlmIconConfigToken, useValue: { ...defaultConfig, ...config } };\n}\n\nexport function injectHlmIconConfig(): HlmIconConfig {\n\treturn inject(HlmIconConfigToken, { optional: true }) ?? defaultConfig;\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { injectHlmIconConfig } from './hlm-icon.token';\n\nexport type IconSize = 'xs' | 'sm' | 'base' | 'lg' | 'xl' | 'none' | (Record<never, never> & string);\n\n@Directive({\n\tselector: 'ng-icon[hlm]',\n\thost: {\n\t\t'[style.--ng-icon__size]': '_computedSize()',\n\t},\n})\nexport class HlmIcon {\n\tprivate readonly _config = injectHlmIconConfig();\n\tpublic readonly size = input<IconSize>(this._config.size);\n\n\tprotected readonly _computedSize = computed(() => {\n\t\tconst size = this.size();\n\n\t\tswitch (size) {\n\t\t\tcase 'xs':\n\t\t\t\treturn '12px';\n\t\t\tcase 'sm':\n\t\t\t\treturn '16px';\n\t\t\tcase 'base':\n\t\t\t\treturn '24px';\n\t\t\tcase 'lg':\n\t\t\t\treturn '32px';\n\t\t\tcase 'xl':\n\t\t\t\treturn '48px';\n\t\t\tdefault: {\n\t\t\t\treturn size;\n\t\t\t}\n\t\t}\n\t});\n}\n","import { NgModule } from '@angular/core';\nimport { HlmIcon } from './lib/hlm-icon';\n\nexport * from './lib/hlm-icon';\nexport * from './lib/hlm-icon.token';\n\n@NgModule({\n\timports: [HlmIcon],\n\texports: [HlmIcon],\n})\nexport class HlmIconModule {}\n","<div class=\"pagination\" [class]=\"theme()\">\n <!-- Pagination Controls -->\n <div class=\"pagination-controls\">\n <!-- First Page Button (conditional) -->\n @if (showFirstLastButtons()) {\n <button\n class=\"pagination-button first-page\"\n [disabled]=\"!table().getCanPreviousPage()\"\n (click)=\"table().setPageIndex(0)\">\n 1\n </button>\n }\n\n @if (table().getRowCount() > 0) {\n <!-- Previous Page Button -->\n <button class=\"pagination-button\" [disabled]=\"!table().getCanPreviousPage()\" (click)=\"table().previousPage()\">\n <ng-icon hlm name=\"lucideChevronLeft\" size=\"base\" />\n </button>\n\n <!-- Page Numbers -->\n @for (pageIndex of getVisiblePageNumbers(); track pageIndex) {\n <button\n class=\"pagination-button\"\n [class.active]=\"pageIndex === table().getState().pagination.pageIndex\"\n (click)=\"table().setPageIndex(pageIndex)\">\n {{ pageIndex + 1 }}\n </button>\n }\n\n <!-- Next Page Button -->\n <button class=\"pagination-button\" [disabled]=\"!table().getCanNextPage()\" (click)=\"table().nextPage()\">\n <ng-icon hlm name=\"lucideChevronRight\" size=\"base\" />\n </button>\n\n <!-- Last Page Button (conditional) -->\n @if (showFirstLastButtons()) {\n <button\n class=\"pagination-button last-page\"\n [disabled]=\"!table().getCanNextPage()\"\n (click)=\"table().setPageIndex(table().getPageCount() - 1)\">\n {{ table().getPageCount() }}\n </button>\n }\n } @else {\n <div class=\"no-data-container\">\n <div class=\"no-data-text\">No Data</div>\n </div>\n }\n </div>\n\n <!-- Added Export button to match the design -->\n <div class=\"export-button\">\n <sdc-button (click)=\"onExportClick()\">{{ exportButtonText() }}</sdc-button>\n </div>\n</div>\n","import { Component, input, output } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronLeft, lucideChevronRight } from '@ng-icons/lucide';\nimport { Table } from '@tanstack/angular-table';\nimport { ButtonComponent } from '../../../../generic/button';\nimport { ThemeClass } from '../../../../shared/types';\nimport { HlmIconModule } from '../../ui/ui-icon-helm/src';\n\n@Component({\n selector: 'sdc-pagination',\n imports: [NgIcon, HlmIconModule, ButtonComponent],\n providers: [provideIcons({ lucideChevronLeft, lucideChevronRight })],\n templateUrl: './pagination.component.html',\n styleUrl: './pagination.component.css',\n})\nexport class PaginationComponent {\n public readonly table = input.required<Table<any>>();\n public readonly maxVisiblePages = input<number>(7);\n public readonly showFirstLastButtons = input<boolean>(false);\n public readonly theme = input.required<ThemeClass>();\n public readonly exportButtonText = input<string>('Export');\n public readonly exportClick = output<{ selectedRows: any[]; allRows: any[] }>();\n\n protected getVisiblePageNumbers(): number[] {\n const currentPage = this.table().getState().pagination.pageIndex;\n const totalPages = this.table().getPageCount();\n const maxVisible = this.maxVisiblePages();\n\n if (totalPages <= maxVisible) {\n // If total pages is less than or equal to maxVisible, show all pages\n return Array.from({ length: totalPages }, (_, i) => i);\n }\n\n // Calculate the sliding window of pages to show\n const pages: number[] = [];\n\n // Calculate the center position for the window\n const centerPosition = Math.floor(maxVisible / 2);\n\n // Calculate the start page of the window\n let startPage = Math.max(0, currentPage - centerPosition);\n\n // Adjust start page if we're near the end\n if (startPage + maxVisible > totalPages) {\n startPage = Math.max(0, totalPages - maxVisible);\n }\n\n // Generate the page numbers for the window\n for (let i = 0; i < maxVisible; i++) {\n pages.push(startPage + i);\n }\n\n return pages;\n }\n\n protected onExportClick() {\n const tableState = this.table().getState();\n const selectedRows = tableState.rowSelection;\n const allRows = this.table()\n .getRowModel()\n .rows.map(row => row.original);\n\n // Get the actual selected row data\n const selectedRowData = Object.keys(selectedRows)\n .filter(key => selectedRows[key])\n .map(rowId => {\n const row = this.table()\n .getRowModel()\n .rows.find(r => r.id === rowId);\n return row ? row.original : null;\n })\n .filter(Boolean);\n\n this.exportClick.emit({\n selectedRows: selectedRowData,\n allRows: allRows,\n });\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { type HeaderContext, injectFlexRenderContext } from '@tanstack/angular-table';\n\n@Component({\n templateUrl: './selection-table-head.component.html',\n styleUrl: './selection-table-head.component.css',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectionTableHeadComponent<T> {\n context = injectFlexRenderContext<HeaderContext<T, unknown>>();\n\n getIsAllVisibleRowsSelected(): boolean {\n const visibleRows = this.context.table.getRowModel().rows;\n return visibleRows.length > 0 && visibleRows.every(row => row.getIsSelected());\n }\n\n getIsSomeVisibleRowsSelected(): boolean {\n const visibleRows = this.context.table.getRowModel().rows;\n const selectedCount = visibleRows.filter(row => row.getIsSelected()).length;\n return selectedCount > 0 && selectedCount < visibleRows.length;\n }\n\n toggleAllVisibleRowsSelected(): void {\n const visibleRows = this.context.table.getRowModel().rows;\n const allSelected = this.getIsAllVisibleRowsSelected();\n\n visibleRows.forEach(row => {\n if (allSelected) {\n row.toggleSelected(false);\n } else {\n row.toggleSelected(true);\n }\n });\n }\n}\n","<input\n class=\"block px-1 selection-header\"\n type=\"checkbox\"\n [checked]=\"getIsAllVisibleRowsSelected()\"\n [indeterminate]=\"getIsSomeVisibleRowsSelected()\"\n (change)=\"toggleAllVisibleRowsSelected()\" />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { type CellContext, injectFlexRenderContext } from '@tanstack/angular-table';\n\n@Component({\n templateUrl: './selection-table-row.component.html',\n styleUrl: './selection-table-row.component.css',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectionTableRowComponent<T> {\n context = injectFlexRenderContext<CellContext<T, unknown>>();\n}\n","<input\n class=\"block px-1\"\n type=\"checkbox\"\n [checked]=\"context.row.getIsSelected()\"\n (change)=\"context.row.getToggleSelectedHandler()($event)\" />\n","<button class=\"sort-button\" (click)=\"onSortClick()\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\n <span class=\"capitalize\">\n {{ columnName() }}\n </span>\n <span class=\"sort-icon\">\n <!-- Sort Icon -->\n @if (enableSorting() && iconName()) {\n <ng-icon hlm size=\"sm\" [name]=\"iconName()\" aria-hidden=\"true\" />\n }\n </span>\n</button>\n","import { Component, input, output, signal } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideArrowDown, lucideArrowUp, lucideArrowUpDown } from '@ng-icons/lucide';\nimport { ButtonComponent } from '../../../../generic/button';\nimport { HlmIconModule } from '../../ui/ui-icon-helm/src';\n\n@Component({\n selector: 'sdc-table-head-sort-button',\n imports: [NgIcon, ButtonComponent, HlmIconModule],\n providers: [provideIcons({ lucideArrowUpDown, lucideArrowUp, lucideArrowDown })],\n templateUrl: './sort-header-button.component.html',\n styleUrl: './sort-header-button.component.css',\n})\nexport class SortTableHeadButtonComponent {\n public readonly isSorted = input<boolean>(false);\n public readonly columnName = input.required<string>();\n public readonly sortDirection = input.required<'asc' | 'desc' | false>();\n public readonly enableSorting = input<boolean>(false);\n\n public readonly sortClick = output<void>();\n\n protected isHovered = signal(false);\n\n protected onSortClick() {\n if (this.enableSorting()) {\n this.sortClick.emit();\n }\n }\n\n protected onMouseEnter() {\n if (this.enableSorting()) {\n this.isHovered.set(true);\n }\n }\n\n protected onMouseLeave() {\n if (this.enableSorting()) {\n this.isHovered.set(false);\n }\n }\n\n protected iconName() {\n // Show active sort arrow when sorted\n if (this.isSorted()) {\n return this.sortDirection() === 'asc' ? 'lucideArrowDown' : 'lucideArrowUp';\n }\n\n if (this.isHovered()) {\n return 'lucideArrowUpDown';\n }\n\n // No icon when not sorted and not hovering\n return '';\n }\n}\n","// src/app/directives/hlm-table-directives.ts\nimport { computed, Directive, inject, InjectionToken, input, ValueProvider } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n// Configuration Interface and InjectionToken\nexport const HlmTableConfigToken = new InjectionToken<HlmTableVariant>('HlmTableConfig');\nexport interface HlmTableVariant {\n\ttable: string;\n\tthead: string;\n\ttbody: string;\n\ttfoot: string;\n\ttr: string;\n\tth: string;\n\ttd: string;\n\tcaption: string;\n}\n\nexport const HlmTableVariantDefault: HlmTableVariant = {\n\ttable: 'w-full caption-bottom text-sm',\n\tthead: '[&_tr]:border-b',\n\ttbody: '[&_tr:last-child]:border-0',\n\ttfoot: 'bg-muted/50 border-t font-medium [&>tr]:last:border-b-0',\n\ttr: 'hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors',\n\tth: 'text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n\ttd: 'p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n\tcaption: 'text-muted-foreground mt-4 text-sm',\n};\n\nexport function provideHlmTableConfig(config: Partial<HlmTableVariant>): ValueProvider {\n\treturn {\n\t\tprovide: HlmTableConfigToken,\n\t\tuseValue: { ...HlmTableVariantDefault, ...config },\n\t};\n}\n\nexport function injectHlmTableConfig(): HlmTableVariant {\n\treturn inject(HlmTableConfigToken, { optional: true }) ?? HlmTableVariantDefault;\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <table> element.\n * It resolves and provides base classes for its child table elements.\n * If a table has the `hlmTable` attribute, it will be styled with the provided variant.\n * The other table elements will check if a parent table has the `hlmTable` attribute and will be styled accordingly.\n */\n@Directive({\n\tselector: 'table[hlmTable]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTable {\n\t/** Input to configure the variant of the table, this input has the highest priority. */\n\tpublic readonly userVariant = input<Partial<HlmTableVariant> | string>({}, { alias: 'hlmTable' });\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\t/** Global or default configuration provided by injectHlmTableConfig() */\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\n\t// Protected variant that resolves user input to a full HlmTableVariant\n\tprotected readonly _variant = computed<HlmTableVariant>(() => {\n\t\tconst globalOrDefaultConfig = this._globalOrDefaultConfig;\n\t\tconst localInputConfig = this.userVariant();\n\n\t\t// Priority 1: Local input object\n\t\tif (typeof localInputConfig === 'object' && localInputConfig !== null && Object.keys(localInputConfig).length > 0) {\n\t\t\t// Merge local input with the baseline provided by injectHlmTableConfig()\n\t\t\t// This ensures that properties not in localInputConfig still fall back to global/default values.\n\t\t\treturn { ...globalOrDefaultConfig, ...localInputConfig };\n\t\t}\n\t\t// If localInputConfig is not a non-empty object (e.g., it's undefined, an empty object, or a string),\n\t\t// then the globalOrDefaultConfig (which is already the result of injected OR default) is used.\n\t\treturn globalOrDefaultConfig;\n\t});\n\n\t// Computed class for the host <table> element\n\tprotected readonly _computedClass = computed(() => hlm(this._variant().table, this.userClass()));\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <thead> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'thead[hlmTHead]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTHead {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.thead.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <tbody> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'tbody[hlmTBody]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTBody {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.tbody.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <tfoot> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'tfoot[hlmTFoot]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTFoot {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.tfoot.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <tr> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'tr[hlmTr]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTr {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.tr.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <th> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'th[hlmTh]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTh {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.th.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <td> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'td[hlmTd]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTd {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.td.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <caption> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'caption[hlmCaption]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmCaption {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.caption.trim() : '', this.userClass()),\n\t);\n}\n","import { NgModule } from '@angular/core';\n\nimport { HlmCaption, HlmTable, HlmTBody, HlmTd, HlmTFoot, HlmTh, HlmTHead, HlmTr } from './lib/hlm-table';\n\nexport * from './lib/hlm-table';\n\nexport const HlmTableImports = [HlmCaption, HlmTable, HlmTBody, HlmTd, HlmTFoot, HlmTh, HlmTHead, HlmTr] as const;\n\n@NgModule({\n\timports: [...HlmTableImports],\n\texports: [...HlmTableImports],\n})\nexport class HlmTableModule {}\n","import { Component, computed, effect, input, OnDestroy, output, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown, lucideChevronLeft, lucideChevronRight } from '@ng-icons/lucide';\nimport { ThemeClass } from '@shared/types';\nimport {\n ColumnDef,\n createAngularTable,\n flexRenderComponent,\n FlexRenderDirective,\n getCoreRowModel,\n getPaginationRowModel,\n PaginationState,\n RowSelectionState,\n SortingState,\n} from '@tanstack/angular-table';\nimport { PaginationComponent } from './_components/pagination/pagination.component';\nimport { SelectionTableHeadComponent } from './_components/selection-table-head/selection-table-head.component';\nimport { SelectionTableRowComponent } from './_components/selection-table-row/selection-table-row.component';\nimport { SortTableHeadButtonComponent } from './_components/sort-header-button/sort-header-button.component';\nimport { HlmTableImports } from './ui/ui-table-helm/src';\n\nexport type TableStyleClasses = ReturnType<(typeof TableComponent.prototype)['styleClass']>;\n@Component({\n selector: 'sdc-table',\n imports: [FormsModule, FlexRenderDirective, PaginationComponent, ...HlmTableImports],\n providers: [provideIcons({ lucideChevronDown, lucideChevronLeft, lucideChevronRight })],\n templateUrl: './table.component.html',\n styleUrl: './table.component.css',\n})\nexport class TableComponent<T extends Record<string, any>> implements OnDestroy {\n private readonly allowedVariants = ['full-table', 'minimal-table'] as const;\n\n /**\n * The data to display in the table.\n */\n public readonly data = input<T[]>([]);\n\n /**\n * The columns to display in the table.\n */\n public readonly columns = input<ColumnDef<T>[]>([]);\n\n /**\n * Whether to show the selection column.\n */\n public readonly showSelection = input<boolean>(false);\n\n /**\n * Whether to enable sorting for the table.\n */\n public readonly enableSort = input<boolean | string[]>(false);\n\n /**\n * The maximum number of pages to display in the pagination.\n */\n public readonly maxVisiblePages = input<number>(3);\n\n /**\n * The page size for the table pagination.\n */\n public readonly pageSize = input<number>(10);\n\n /**\n * The initial page index for the table pagination.\n */\n public readonly initialPageIndex = input<number>(0);\n\n /**\n * Whether to show the first and last buttons in the pagination.\n */\n public readonly showFirstLastButtons = input<boolean>(true);\n\n /**\n * The current theme applied to the component.\n */\n public readonly theme = input<ThemeClass>('theme-sdc');\n\n /**\n * Predefined styles to apply to the component.\n * Can be a single class or multiple classes from different categories.\n */\n public readonly styleClass = input<(typeof this.allowedVariants)[number][]>([this.allowedVariants[0]]);\n\n // Computed signal that validates and filters the styleClass input\n private readonly _validatedStyleClass = computed(() => {\n const value = this.styleClass();\n\n if (!Array.isArray(value)) {\n console.warn('TableComponent: styleClass must be an array, defaulting to empty array');\n return [];\n }\n\n const validValues = value.filter(style => this.allowedVariants.includes(style));\n const invalidValues = value.filter(style => !this.allowedVariants.includes(style));\n\n if (invalidValues.length > 0) {\n throw new Error(\n `TableComponent: Invalid styleClass values ignored: ${invalidValues.join(', ')}. Allowed values: ${this.allowedVariants.join(', ')}`\n );\n }\n\n return validValues;\n });\n\n /**\n * Additional CSS classes to apply to the component.\n */\n public readonly className = input<string>('');\n\n /**\n * The text to display in the export button.\n */\n public readonly exportButtonText = input<string>('Export');\n\n /**\n * Event emitted when the export button is clicked.\n * Includes selected rows and all rows for export functionality.\n */\n public readonly exportClick = output<{ selectedRows: T[]; allRows: T[] }>();\n\n /**\n * Event emitted when the sorting state changes.\n */\n public readonly sortingChange = output<SortingState>();\n\n /**\n * Event emitted when the selection state changes.\n */\n public readonly selectionChange = output<RowSelectionState>();\n\n /**\n * Whether to pin/freeze the table headers so they remain visible during vertical scrolling.\n * When enabled, headers will stay at the top of the viewport while scrolling through table data.\n */\n public readonly pinningHeaders = input<boolean>(false);\n\n /**\n * Whether to show the pagination controls at the bottom of the table.\n * When disabled, all rows will be displayed without pagination.\n */\n public readonly showPagination = input<boolean>(true);\n\n /**\n * Event emitted when the pagination state changes.\n */\n public readonly paginationChange = output<PaginationState>();\n\n /**\n * Computed class string that combines theme and user classes.\n */\n protected readonly computedClass = computed(() => {\n const themeClass = this.theme();\n const styleClass = this._validatedStyleClass();\n const className = this.className();\n const pinningHeadersClass = this.pinningHeaders() ? 'pinning-headers' : '';\n return ['sdc-table', themeClass, ...styleClass, pinningHeadersClass, className].filter(Boolean).join(' ');\n });\n\n protected _handleSortClick(columnId: string) {\n const currentSort = this._sorting();\n const currentColumnSort = currentSort.find(sort => sort.id === columnId);\n\n let newSort: SortingState = [];\n\n if (!currentColumnSort) {\n // First click: sort asc\n newSort = [{ id: columnId, desc: false }];\n } else if (!currentColumnSort.desc) {\n // Second click: sort desc\n newSort = [{ id: columnId, desc: true }];\n } else {\n // Third click: remove sort\n newSort = [];\n }\n\n this._sorting.set(newSort);\n this.sortingChange.emit(newSort);\n }\n\n protected _getSortDirection(columnId: string): 'asc' | 'desc' | false {\n const currentSort = this._sorting();\n const columnSort = currentSort.find(sort => sort.id === columnId);\n\n if (!columnSort) {\n return false;\n }\n\n return columnSort.desc ? 'desc' : 'asc';\n }\n\n protected _isColumnSorted(columnId: string): boolean {\n const currentSort = this._sorting();\n return currentSort.some(sort => sort.id === columnId);\n }\n\n protected _isSortEnabled(columnId: string): boolean {\n const sortConfig = this.enableSort();\n\n if (typeof sortConfig === 'boolean') {\n return sortConfig;\n }\n\n if (Array.isArray(sortConfig)) {\n return sortConfig.includes(columnId);\n }\n\n return false;\n }\n\n protected _createSortableHeader(column: ColumnDef<T>, columnId: string) {\n return flexRenderComponent(SortTableHeadButtonComponent, {\n inputs: {\n columnName: columnId,\n isSorted: this._isColumnSorted(columnId),\n sortDirection: this._getSortDirection(columnId),\n enableSorting: this._isSortEnabled(columnId),\n },\n outputs: {\n sortClick: () => this._handleSortClick(columnId),\n },\n });\n }\n\n protected _processColumns(): ColumnDef<T>[] {\n const baseColumns = this.columns() || [];\n const processedColumns: ColumnDef<T>[] = [];\n\n // Add selection column if enabled\n if (this.showSelection()) {\n processedColumns.push({\n accessorKey: 'select',\n id: 'select',\n header: () => flexRenderComponent(SelectionTableHeadComponent),\n cell: () => flexRenderComponent(SelectionTableRowComponent),\n enableSorting: false,\n enableHiding: false,\n });\n }\n\n // Process each column\n baseColumns.forEach(column => {\n const processedColumn = { ...column };\n\n // If sorting is enabled for this column, wrap the header with sort functionality\n if (this._isSortEnabled(column.id || '')) {\n processedColumn.header = context => this._createSortableHeader(column, context.column.id);\n }\n\n // Ensure sorting is disabled for client-side (we only support server-side sorting)\n processedColumn.enableSorting = false;\n\n processedColumns.push(processedColumn);\n });\n\n return processedColumns;\n }\n\n private readonly _sorting = signal<SortingState>([]);\n private readonly _rowSelection = signal<RowSelectionState>({});\n private readonly _pagination = signal<PaginationState>({\n pageSize: this.pageSize(),\n pageIndex: this.initialPageIndex(),\n });\n\n // Effect to sync input changes to the pagination signal\n // Only runs when pagination is enabled\n private readonly _paginationEffect = effect(() => {\n // Only update pagination when it's enabled\n if (!this.showPagination()) {\n return;\n }\n\n const newPageSize = this.pageSize();\n const newPageIndex = this.initialPageIndex();\n\n this._pagination.update(current => ({\n ...current,\n pageSize: newPageSize,\n pageIndex: newPageIndex,\n }));\n });\n\n public ngOnDestroy(): void {\n // Cleans up the pagination effect to prevent memory leaks.\n if (this._paginationEffect) {\n this._paginationEffect.destroy();\n }\n }\n\n private readonly _table = createAngularTable<T>(() => ({\n data: this.data(),\n columns: this._processColumns(),\n state: {\n sorting: this._sorting(),\n rowSelection: this._rowSelection(),\n // Only include pagination state when pagination is enabled\n ...(this.showPagination() && { pagination: this._pagination() }),\n },\n onSortingChange: updater => {\n updater instanceof Function ? this._sorting.update(updater) : this._sorting.set(updater);\n this.sortingChange.emit(this._sorting());\n },\n onRowSelectionChange: updater => {\n updater instanceof Function ? this._rowSelection.update(updater) : this._rowSelection.set(updater);\n this.selectionChange.emit(this._rowSelection());\n },\n // Only include pagination change handler when pagination is enabled\n ...(this.showPagination() && {\n onPaginationChange: updater => {\n updater instanceof Function ? this._pagination.update(updater) : this._pagination.set(updater);\n this.paginationChange.emit(this._pagination());\n },\n }),\n getCoreRowModel: getCoreRowModel(),\n // Only include pagination row model when pagination is enabled\n ...(this.showPagination() && { getPaginationRowModel: getPaginationRowModel() }),\n enableRowSelection: this.showSelection(),\n initialState: {\n // Only include pagination initial state when pagination is enabled\n ...(this.showPagination() && { pagination: this._pagination() }),\n },\n }));\n\n // Public getters for template access\n public get headerGroups() {\n return this._table.getHeaderGroups();\n }\n\n public get rows() {\n return this._table.getRowModel().rows;\n }\n\n public get paginatedRows() {\n if (this.showPagination()) {\n return this._table.getPaginationRowModel().rows;\n } else {\n // When pagination is disabled, return all rows from the core row model\n return this._table.getRowModel().rows;\n }\n }\n\n // Public getter for pagination component\n public get tableForPagination() {\n return this._table as any;\n }\n}\n","<div [class]=\"computedClass()\">\n <div class=\"table-container\">\n <!-- we defer the loading of the table, because tanstack manipulates the DOM with flexRender which can cause errors during SSR -->\n @defer {\n <table hlmTable>\n <thead hlmTHead class=\"sdc-table-header\">\n @for (headerGroup of tableForPagination.getHeaderGroups(); track headerGroup.id) {\n <tr hlmTr>\n @for (header of headerGroup.headers; track header.id) {\n <th hlmTh [attr.colSpan]=\"header.colSpan\">\n @if (!header.isPlaceholder) {\n <ng-container\n *flexRender=\"header.column.columnDef.header; props: header.getContext(); let headerText\">\n <div [innerHTML]=\"headerText\"></div>\n </ng-container>\n }\n </th>\n }\n </tr>\n }\n </thead>\n <tbody hlmTBody class=\"sdc-table-body w-full\">\n @for (row of paginatedRows; track row.id) {\n <tr hlmTr [attr.key]=\"row.id\" [attr.data-state]=\"row.getIsSelected() && 'selected'\">\n @for (cell of row.getVisibleCells(); track $index) {\n <td hlmTd>\n <ng-container *flexRender=\"cell.column.columnDef.cell; props: cell.getContext(); let cell\">\n <div [innerHTML]=\"cell\"></div>\n </ng-container>\n </td>\n }\n </tr>\n } @empty {\n <tr hlmTr>\n <td hlmTd class=\"h-24 text-center\" [attr.colspan]=\"_processColumns().length\">No results.</td>\n </tr>\n }\n </tbody>\n </table>\n }\n </div>\n</div>\n\n<!-- Pagination Component -->\n@if (showPagination()) {\n <sdc-pagination\n [theme]=\"theme()\"\n [table]=\"tableForPagination\"\n [maxVisiblePages]=\"maxVisiblePages()\"\n [showFirstLastButtons]=\"showFirstLastButtons()\"\n [exportButtonText]=\"exportButtonText()\"\n (exportClick)=\"exportClick.emit($event)\"></sdc-pagination>\n}\n","// Export all necessary dependencies from @tanstack/angular-table for table functionality\nexport {\n FlexRenderDirective,\n // Core table creation and configuration\n createAngularTable,\n flexRenderComponent,\n // Row models\n getCoreRowModel,\n getExpandedRowModel,\n getFilteredRowModel,\n getGroupedRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n // Additional utility types\n type AccessorFn,\n type Cell,\n // Utility types for cell rendering\n type CellContext,\n type Column,\n // Types\n type ColumnDef,\n type ColumnMeta,\n type ColumnOrderState,\n type ColumnPinningState,\n type ColumnSizingState,\n type ExpandedState,\n type GroupingState,\n type Header,\n type HeaderContext,\n type PaginationState,\n\n // Additional utilities that might be needed\n type Row,\n type RowData,\n type RowSelectionState,\n type SortingState,\n type Table,\n // Additional commonly used types\n type VisibilityState,\n} from '@tanstack/angular-table';\n\n// Export the main table component\nexport * from './table.component';\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sdc-cart',\n standalone: true,\n templateUrl: './cart.component.html',\n})\nexport class CartComponent {}\n","<div>cart component!</div>\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CartService {\n constructor() {}\n}\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './cart.component';\nexport * from './cart.service';\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sdc-cart-item',\n standalone: true,\n templateUrl: './cart-item.component.html',\n})\nexport class CartItemComponent {}\n","<div>cart-item component!</div>\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CartItemService {\n constructor() {}\n}\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './cart-item.component';\nexport * from './cart-item.service';\n","export type Size = 'xxs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n\nexport const SIZE_ORDER: Size[] = ['xxs', 'xs', 'sm', 'md', 'lg', 'xl', '2xl'];\n","<div [class]=\"computedClass()\">\n @for (element of elements(); track element.name) {\n <div class=\"sdc-legend-elements__item\">\n <span class=\"sdc-legend-elements__dot\" [style.backgroundColor]=\"element.color\"></span>\n <p class=\"sdc-legend-elements__label\">{{ element.name }}</p>\n </div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { Size, SIZE_ORDER } from '../../../../types/sizes.type';\nimport { LegendElement, LegendSize } from '../../types';\n\n@Component({\n selector: 'sdc-legend-elements',\n standalone: true, // ← important if you use `imports`\n imports: [CommonModule],\n templateUrl: './legend-elements.component.html',\n styleUrls: ['./legend-elements.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LegendElementsComponent {\n public readonly size = input<Size>('md');\n public readonly elements = input.required<LegendElement[]>();\n public readonly className = input<string>('');\n\n private readonly supportedSizes: LegendSize[] = ['xs', 'sm', 'md', 'lg'];\n\n private normalizeSize = (s: Size): LegendSize => {\n const wantedIdx = SIZE_ORDER.indexOf(s);\n if (wantedIdx === -1) return 'md';\n for (let i = wantedIdx; i >= 0; i--) {\n const cand = SIZE_ORDER[i];\n if (this.supportedSizes.includes(cand as LegendSize)) return cand as LegendSize;\n }\n return 'md';\n };\n\n private readonly _effectiveSize = computed<LegendSize>(() => this.normalizeSize(this.size()));\n\n protected readonly computedClass = computed(() => {\n const sz = this._effectiveSize();\n return ['sdc-legend-elements', `size-${sz}`, this.className()].filter(Boolean).join(' ');\n });\n\n protected readonly itemClasses = computed(() =>\n this._effectiveSize() === 'lg' ? 'justify-center' : 'justify-start'\n );\n}\n","<fieldset [class]=\"computedClass()\">\n @if (title()) {\n <h1 class=\"sdc-legend__title\">\n {{ title() }}\n </h1>\n }\n <sdc-legend-elements [elements]=\"elements()\" [size]=\"size()\" />\n</fieldset>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { Size, SIZE_ORDER } from '../../types/sizes.type';\nimport { LegendElement, LegendSize } from './types';\nimport { LegendElementsComponent } from './ui/legend-elements/legend-elements.component';\n\n@Component({\n selector: 'sdc-legend',\n standalone: true,\n imports: [LegendElementsComponent],\n templateUrl: './legend.component.html',\n styleUrls: ['./legend.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LegendComponent {\n public readonly title = input('');\n public readonly size = input<Size>('md');\n public readonly elements = input.required<LegendElement[]>();\n public readonly className = input<string>('');\n\n private readonly supportedSizes: LegendSize[] = ['xxs', 'xs', 'sm', 'md', 'lg'];\n\n /** Normalize any Size → LegendSize by flooring to nearest supported size. */\n private normalizeSize = (s: Size): LegendSize => {\n const wantedIdx = SIZE_ORDER.indexOf(s);\n if (wantedIdx === -1) return 'md';\n for (let i = wantedIdx; i >= 0; i--) {\n const candidate = SIZE_ORDER[i];\n if (this.supportedSizes.includes(candidate as LegendSize)) {\n return candidate as LegendSize;\n }\n }\n return 'md';\n };\n\n private readonly _effectiveSize = computed<LegendSize>(() => this.normalizeSize(this.size()));\n\n protected readonly computedClass = computed(() => {\n const normalizedSize = this._effectiveSize();\n return ['sdc-legend', `size-${normalizedSize}`, this.className()].filter(Boolean).join(' ');\n });\n}\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './legend.component';\nexport * from './types';\nexport * from './ui/legend-elements';\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sdc-loader',\n standalone: true,\n templateUrl: './loader.component.html',\n})\nexport class LoaderComponent {}\n","<div>loader component!</div>\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoaderService {\n constructor() {}\n}\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './loader.component';\nexport * from './loader.service';\n","import { NgOptimizedImage } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, input, OnDestroy, OnInit, viewChild } from '@angular/core';\nimport { createTimeline } from 'animejs';\nimport { catchError, merge, mergeMap, Observable, skip, Subscription, tap } from 'rxjs';\n\n@Component({\n selector: 'sdc-map-loader',\n templateUrl: './map-loader.component.html',\n styleUrl: './map-loader.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgOptimizedImage],\n})\nexport class MapLoaderComponent implements OnInit, OnDestroy {\n // INPUTS\n public viewerService = input.required<{\n waitInitialize: () => Observable<any>;\n getObservable: (value: 'load_success' | 'load_start') => Observable<any>;\n }>();\n public logo = input.required<string>();\n public color = input<string>('255 165 0');\n public duration = input<number>(500);\n\n // SIGNALS\n public pill = viewChild<ElementRef>('pill');\n public pillContainer = viewChild<ElementRef>('pillContainer');\n public container = viewChild<ElementRef>('container');\n\n // CLASS PROPERTIES\n private isFirstLoad = true;\n private varName = '--ripple-color';\n private readonly handlers: Subscription[] = [];\n\n // GETTERS\n /**\n * Retorna la variable CSS para el color del ripple.\n * Necesitamos setear la variable css --ripple-color con el color accent de la configuración.\n * Como este valor originalmente viene sin comas para ser usado en Tailwind, debemos reemplazar los espacios por comas.\n * Finalmente retornamos el valor y lo implementamos en el div contenedor del ripple para ser usado por el scss.\n */\n public get ripple(): string {\n const rgb = this.formatRgb(this.color(), false);\n\n return `${this.varName}:${rgb};`;\n }\n\n // LC METHODS\n public ngOnInit(): void {\n this.initComponent();\n }\n\n public ngOnDestroy(): void {\n this.destroyComponent();\n }\n\n // CLASS METHODS\n\n /**\n * Muestra el loader.\n * Mediante una animación de animejs, mostramos el loader.\n * Al comenzar, verificará si el contenedor tiene la clase hidden y la removerá si es así.\n */\n private showLoader(): void {\n const pill = this.pill();\n const container = this.container();\n const pillContainer = this.pillContainer();\n\n if (!container || !pill || !pillContainer) {\n return console.error('Loader could not be loaded');\n }\n\n const containerClasses: string = container.nativeElement.classList.value;\n\n if (containerClasses.includes('hidden')) {\n container.nativeElement.classList.remove('hidden');\n }\n\n createTimeline({\n duration: this.duration,\n })\n .add(pillContainer.nativeElement, {\n opacity: [0, 1],\n duration: 100,\n })\n .add(\n pill.nativeElement,\n {\n scale: [0, 1],\n opacity: [0, 1],\n },\n '+=10'\n );\n }\n\n /**\n * Oculta el loader.\n * Cuando termina aplica la clase hidden al contenedor para ocultarlo.\n */\n private hideLoader(): void {\n const pill = this.pill();\n const container = this.container();\n const pillContainer = this.pillContainer();\n\n if (!container || !pill || !pillContainer) {\n return console.error('Loader could not be hidden');\n }\n createTimeline({\n delay: 400,\n duration: this.duration,\n playbackEase: 'outQuad',\n onComplete: () => container.nativeElement.classList.add('hidden'),\n })\n .add(pill.nativeElement, {\n opacity: [1, 0],\n scale: [1, 0],\n })\n .add(pillContainer.nativeElement, {\n opacity: [1, 0],\n });\n }\n\n private handleLoadSuccess(): void {\n if (this.isFirstLoad) {\n this.hideLoader();\n return;\n }\n\n setTimeout(() => this.hideLoader(), this.duration());\n }\n\n /**\n * Inicializa el componente y sus handlers.\n * Haciendo uso de waitInitialize, esperamos a que el mapa se inicialice para poder suscribirnos a los eventos de carga del mapa.\n * Excepto en la carga inicial del mapa y para evitar superponer animaciones, skipeamos la primera carga y esperamos a que el mapa se recargue\n * para futuras ocasiones y delegamos en los handlers start y success para mostrar u ocultar el loader respectivamente.\n */\n private initComponent(): void {\n const subscription = this.viewerService()\n .waitInitialize()\n .pipe(\n mergeMap(() => {\n // when initialized, we listen to both load_start and load_success\n const loadStart$ = this.viewerService()\n .getObservable('load_start')\n .pipe(\n skip(1), // skip first emission\n tap(() => this.showLoader())\n );\n\n const loadSuccess$ = this.viewerService()\n .getObservable('load_success')\n .pipe(\n tap(() => {\n if (this.isFirstLoad) {\n this.isFirstLoad = false;\n }\n }),\n tap(() => this.handleLoadSuccess())\n );\n\n // merge both into one stream\n return merge(loadStart$, loadSuccess$);\n }),\n catchError((error: unknown) => {\n console.error('viewer init error', error);\n return []; // swallow error or return EMPTY\n })\n )\n .subscribe();\n\n this.handlers.push(subscription);\n }\n\n private formatRgb(rgbString: string, wrapped = true): string {\n return wrapped ? 'rgb(' + rgbString.split(' ').join(', ') + ')' : rgbString.split(' ').join(', ');\n }\n\n /**\n * Destruye el componente y sus handlers.\n * Recorre el array de handlers y se desuscribe de cada uno de ellos.\n */\n private destroyComponent(): void {\n for (const h of this.handlers) {\n h.unsubscribe();\n }\n }\n}\n","<div #container class=\"container\" [style]=\"ripple\">\n <!-- Container -->\n <div #pillContainer class=\"pill-container\">\n <!-- PILL -->\n <div #pill class=\"pill ripple-animation\">\n <!-- LOGO -->\n <img alt=\"Club logo loader\" height=\"70\" priority width=\"50\" [ngSrc]=\"logo()\" />\n </div>\n </div>\n</div>\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './map-loader.component';\n","<div #neighborsContainer class=\"neighbors-container\" [class]=\"computedClass()\" [class.hidden]=\"!showElement()\">\n <!-- LEFT SECTION BUTTON -->\n @if (leftSection) {\n <div\n class=\"neighbor-button-left neighbor-button\"\n tabindex=\"0\"\n (click)=\"navigateToSection(leftSection!)\"\n (keypress.enter)=\"navigateToSection(leftSection!)\">\n <i class=\"neighbor-button-icon\">\n <svg fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15.75 19.5 8.25 12l7.5-7.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </i>\n </div>\n }\n <div class=\"current-section-wrapper\">\n @if (isLoading()) {\n <p class=\"current-section-loading\">\n <span>Loading</span>\n </p>\n } @else {\n @if (section) {\n <h3 class=\"current-section-text\">\n <span class=\"prefix\">Section </span>\n <span #currentSection class=\"section-number\">{{ section }}</span>\n </h3>\n }\n }\n </div>\n\n <!-- RIGHT SECTION BUTTON -->\n @if (rightSection) {\n <div\n class=\"neighbor-button-right neighbor-button\"\n tabindex=\"1\"\n (click)=\"navigateToSection(rightSection!)\"\n (keypress.enter)=\"navigateToSection(rightSection!)\">\n <i class=\"neighbor-button-icon\">\n <svg fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"m8.25 4.5 7.5 7.5-7.5 7.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </i>\n </div>\n }\n</div>\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n computed,\r\n ElementRef,\r\n EventEmitter,\r\n inject,\r\n input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n Signal,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ThemeClass } from '@shared/types';\r\nimport { animate } from 'animejs';\r\nimport { Subscription } from 'rxjs';\r\nimport {\r\n Direction,\r\n NeighborsData,\r\n TranslateSectionIdFn,\r\n HasAvailabilityFn,\r\n SectionChangeEvent\r\n} from './types';\r\n\r\n@Component({\r\n selector: 'sdc-neighbors',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n templateUrl: './neighbors.component.html',\r\n styleUrl: './neighbors.component.css',\r\n})\r\nexport class NeighborsComponent implements OnDestroy {\r\n // VIEWCHILD\r\n @ViewChild('neighborsContainer')\r\n public readonly neighborsContainer!: ElementRef<HTMLDivElement>;\r\n\r\n @ViewChild('currentSection', { static: false })\r\n public readonly currentSection!: ElementRef<HTMLSpanElement>;\r\n\r\n @ViewChild('currentSection3d', { static: false })\r\n public readonly currentSection3d!: ElementRef<HTMLSpanElement>;\r\n\r\n @ViewChild('leftSectionNumber', { static: false })\r\n public readonly leftSectionElement!: ElementRef<HTMLSpanElement>;\r\n\r\n @ViewChild('rightSectionNumber', { static: false })\r\n public readonly rightSectionElement!: ElementRef<HTMLSpanElement>;\r\n\r\n // SERVICES\r\n private readonly cdr: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n\r\n // REQUIRED INPUTS\r\n public readonly neighborsData = input.required<NeighborsData>();\r\n public readonly currentSectionId = input.required<string | null>();\r\n public readonly translateTdcToMmc = input.required<TranslateSectionIdFn>();\r\n public readonly translateMmcToTdc = input.required<TranslateSectionIdFn>();\r\n public readonly hasAvailability = input.required<HasAvailabilityFn>();\r\n\r\n // OPTIONAL INPUTS\r\n public readonly isLoading = input<boolean>(false);\r\n public readonly showElement = input<boolean>(true);\r\n public readonly modeLr = input<boolean>(false);\r\n public readonly className = input<string>('');\r\n public readonly theme = input<ThemeClass>('theme-sdc');\r\n\r\n // OUTPUTS\r\n @Output() sectionChange = new EventEmitter<SectionChangeEvent>();\r\n\r\n /**\r\n * Computed class string that combines theme and user classes.\r\n */\r\n protected readonly computedClass = computed(() => {\r\n const themeClass = this.theme();\r\n const className = this.className();\r\n return Array.from(new Set(['sdc-neighbors', themeClass, className]))\r\n .filter(Boolean)\r\n .join(' ');\r\n });\r\n\r\n // COMPONENT STATE\r\n private readonly subscriptions: Subscription[] = [];\r\n\r\n // COMPUTED STATE\r\n protected readonly leftSectionId = computed(() => {\r\n try {\r\n const currentId = this.currentSectionId();\r\n if (!currentId) return null;\r\n return this.findAvailableNeighbor('prev', currentId);\r\n } catch (error) {\r\n return null;\r\n }\r\n });\r\n\r\n protected readonly rightSectionId = computed(() => {\r\n try {\r\n const currentId = this.currentSectionId();\r\n if (!currentId) return null;\r\n return this.findAvailableNeighbor('next', currentId);\r\n } catch (error) {\r\n return null;\r\n }\r\n });\r\n\r\n protected readonly currentSectionLabel = computed(() => {\r\n try {\r\n const currentId = this.currentSectionId();\r\n if (!currentId) return 'Loading';\r\n\r\n // Translate TDC ID to MMC ID for display\r\n const mmcId = this.translateTdcToMmc()(currentId);\r\n if (!mmcId) return currentId; // Fallback to TDC ID if translation fails\r\n\r\n // Extract section number from MMC ID (assuming format like \"S_31\" or similar)\r\n return mmcId.replace(/^S_/, '');\r\n } catch (error) {\r\n return 'Loading';\r\n }\r\n });\r\n\r\n protected readonly leftSectionLabel = computed(() => {\r\n try {\r\n const leftId = this.leftSectionId();\r\n if (!leftId) return null;\r\n\r\n // Translate TDC ID to MMC ID for display\r\n const mmcId = this.translateTdcToMmc()(leftId);\r\n if (!mmcId) return leftId; // Fallback to TDC ID if translation fails\r\n\r\n // Extract section number from MMC ID\r\n return mmcId.replace(/^S_/, '');\r\n } catch (error) {\r\n return null;\r\n }\r\n });\r\n\r\n protected readonly rightSectionLabel = computed(() => {\r\n try {\r\n const rightId = this.rightSectionId();\r\n if (!rightId) return null;\r\n\r\n // Translate TDC ID to MMC ID for display\r\n const mmcId = this.translateTdcToMmc()(rightId);\r\n if (!mmcId) return rightId; // Fallback to TDC ID if translation fails\r\n\r\n // Extract section number from MMC ID\r\n return mmcId.replace(/^S_/, '');\r\n } catch (error) {\r\n return null;\r\n }\r\n });\r\n\r\n // NEIGHBOR RESOLUTION ALGORITHM\r\n private findAvailableNeighbor(type: Direction, currentSectionTdcId: string): string | null {\r\n try {\r\n const neighborKey = type === 'prev' ? 'l' : 'r';\r\n const noNeighborValue = 'none';\r\n\r\n // 1. Translate TDC → MMC\r\n const currentSectionMmcId = this.translateTdcToMmc()(currentSectionTdcId);\r\n if (!currentSectionMmcId) return null;\r\n\r\n // 2. Look up neighbor in data\r\n const neighbors = this.neighborsData();\r\n const neighbor = neighbors[currentSectionMmcId];\r\n const neighborSectionMmcId = neighbor ? neighbor[neighborKey] : noNeighborValue;\r\n\r\n // 3. Handle 'none' boundary\r\n if (neighborSectionMmcId === noNeighborValue) {\r\n return null;\r\n }\r\n\r\n // 4. Translate MMC → TDC\r\n const neighborSectionTdcId = this.translateMmcToTdc()(neighborSectionMmcId);\r\n if (!neighborSectionTdcId) return null;\r\n\r\n // 5. Check availability\r\n if (this.hasAvailability()(neighborSectionTdcId)) {\r\n return neighborSectionTdcId;\r\n }\r\n\r\n // 6. Recursively find next available (skip unavailable sections)\r\n return this.findAvailableNeighbor(type, neighborSectionTdcId);\r\n } catch (error) {\r\n return null;\r\n }\r\n }\r\n\r\n // GETTERS\r\n public get leftSection(): string | null {\r\n return this.leftSectionId();\r\n }\r\n\r\n public get rightSection(): string | null {\r\n return this.rightSectionId();\r\n }\r\n\r\n public get section(): string | null {\r\n return this.currentSectionLabel();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach((sub: Subscription): void => sub.unsubscribe());\r\n }\r\n\r\n // METHODS\r\n public navigateToSection(section: string): void {\r\n if (section === 'none' || !section) {\r\n return;\r\n }\r\n\r\n const leftId = this.leftSectionId();\r\n const rightId = this.rightSectionId();\r\n\r\n let direction: Direction;\r\n if (section === leftId) {\r\n direction = 'prev';\r\n } else if (section === rightId) {\r\n direction = 'next';\r\n } else {\r\n return;\r\n }\r\n\r\n this.sectionChange.emit({ direction, sectionId: section });\r\n }\r\n\r\n}\r\n","import type { MapViewerService, Viewer3dService } from '@3ddv/ngx-dvm-internal';\nimport { InjectionToken } from '@angular/core';\nimport type { IThumbnailProvider, IPopoverPositioner, IPopoverManager } from './types';\n\n// This is a placeholder based on usage in popover.component.ts\nexport type Configuration = {\n dvmData: {\n venueId: string;\n };\n};\n\nexport type IDvmFormatter = {\n transform(value: string, ...args: unknown[]): string;\n};\n\nexport type IConfigurationService = {\n configuration: Configuration;\n};\n\nexport type IDvmService = {\n readonly viewer3dService: Viewer3dService;\n readonly viewerService: MapViewerService\n};\n\nexport const DVM_FORMATTER = new InjectionToken<IDvmFormatter>('DvmFormatter');\nexport const CONFIGURATION_SERVICE = new InjectionToken<IConfigurationService>('ConfigurationService');\nexport const DVM_SERVICE = new InjectionToken<IDvmService>('DvmService');\nexport const THUMBNAIL_PROVIDER = new InjectionToken<IThumbnailProvider>('ThumbnailProvider');\nexport const POPOVER_POSITIONER = new InjectionToken<IPopoverPositioner>('PopoverPositioner');\nexport const POPOVER_MANAGER = new InjectionToken<IPopoverManager>('PopoverManager');\n","import { DOCUMENT } from '@angular/common';\nimport {\n ApplicationRef,\n ComponentRef,\n createComponent,\n createEnvironmentInjector,\n ElementRef,\n EnvironmentInjector,\n inject,\n Injectable,\n TemplateRef,\n} from '@angular/core';\nimport { of } from 'rxjs';\nimport {\n arrow,\n autoPlacement,\n autoUpdate,\n computePosition,\n ComputePositionConfig,\n detectOverflow,\n flip,\n hide,\n inline,\n Middleware,\n offset,\n shift,\n size,\n VirtualElement,\n} from '@floating-ui/dom';\nimport { MiddlewareOptions, PopoverInstance, PopoverOptions } from './types';\nimport { CONFIGURATION_SERVICE, DVM_FORMATTER, DVM_SERVICE } from './popover.config';\nimport type { IConfigurationService, IDvmFormatter, IDvmService } from './popover.config';\n\nexport interface PopoverContentProjection {\n thumbnail?: TemplateRef<unknown> | string;\n content?: TemplateRef<unknown> | string;\n price?: TemplateRef<unknown> | string;\n}\n\nexport interface PopoverServiceOptions {\n providers?: any[];\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PopoverService {\n // SERVICES\n private readonly appReference: ApplicationRef = inject(ApplicationRef);\n private readonly envInjector: EnvironmentInjector = inject(EnvironmentInjector);\n private readonly document: Document = inject(DOCUMENT);\n\n // POPOVER STATE\n private readonly popoverInstances: Map<string, PopoverInstance> = new Map<string, PopoverInstance>();\n private readonly popoverOptions: Partial<ComputePositionConfig> = {\n placement: 'bottom',\n strategy: 'absolute',\n middleware: [],\n };\n\n private popoverTimerTimeInMs = 300;\n private currentPopoverId = '';\n private popoverTimer: ReturnType<typeof setTimeout> | null = null;\n private popoverInstancesWithTimers: Map<string, PopoverInstance> = new Map();\n\n // Default mock providers for when no custom providers are provided\n private readonly defaultMockProviders = [\n {\n provide: CONFIGURATION_SERVICE,\n useValue: {\n configuration: {\n dvmData: {\n venueId: 'default-venue',\n },\n },\n } as IConfigurationService,\n },\n {\n provide: DVM_FORMATTER,\n useValue: {\n transform: (value: string) => value.replace(/-/g, ' ').toUpperCase(),\n } as IDvmFormatter,\n },\n {\n provide: DVM_SERVICE,\n useValue: {\n viewer3dService: {\n isInitialized: () => true,\n getThumbnail: () => of('https://via.placeholder.com/275x124/1a1a1a/ffffff?text=Default+Thumbnail'),\n },\n } as any,\n },\n ];\n\n // METHODS\n public setTimer(): void {\n const myId = this.currentPopoverId;\n this.clearTimer();\n this.popoverTimer = setTimeout(() => {\n if (this.currentPopoverId !== myId) {\n return;\n }\n this.destroyAllPopovers();\n this.popoverTimer = null;\n }, this.popoverTimerTimeInMs);\n }\n\n public clearTimer(): void {\n if (this.popoverTimer !== null) {\n clearTimeout(this.popoverTimer);\n this.popoverTimer = null;\n }\n }\n\n /**\n * Sets a timer for a specific popover instance to auto-hide it after the specified delay.\n * @param popoverId - The ID of the popover to set timer for\n * @param delayMs - Delay in milliseconds (optional, defaults to configured delay)\n */\n public setPopoverTimer(popoverId: string, delayMs?: number): void {\n this.clearPopoverTimer(popoverId);\n const delay = delayMs ?? this.popoverTimerTimeInMs;\n\n this.popoverTimer = setTimeout(() => {\n this.destroyPopover(popoverId);\n }, delay);\n }\n\n /**\n * Clears the timer for a specific popover instance.\n * @param popoverId - The ID of the popover to clear timer for\n */\n public clearPopoverTimer(popoverId: string): void {\n if (this.popoverTimer !== null) {\n clearTimeout(this.popoverTimer);\n this.popoverTimer = null;\n }\n }\n\n /**\n * Configures the default timer delay for popovers.\n * @param delayMs - Delay in milliseconds\n */\n public setTimerDelay(delayMs: number): void {\n this.popoverTimerTimeInMs = delayMs;\n }\n\n /**\n * Crea un popover y lo añade al DOM, usando un elemento de referencia y contenido HTML o string.\n * Si ya existe un popover con el mismo ID, lo destruye antes de crear uno nuevo.\n *\n * @param popoverId Identificador único del popover.\n * @param reference Elemento de referencia para posicionar el popover (HTMLElement, Element, VirtualElement o ElementRef).\n * @param content Contenido del popover (HTMLElement o string HTML).\n * @param options Opciones de configuración para el posicionamiento (placement, strategy, middleware, etc).\n * @returns Instancia del popover creado.\n */\n public createPopover(\n popoverId: string,\n reference: HTMLElement | Element | VirtualElement | (ElementRef & VirtualElement),\n content: HTMLElement | string,\n options: Partial<PopoverOptions> = {}\n ): PopoverInstance<unknown> {\n this.clearTimer();\n // Comprobamos si ya existe una instancia de Popover con el mismo ID\n this.checkPopoverInstance(popoverId ?? '');\n this.currentPopoverId = popoverId;\n\n const id: string = popoverId ?? `popover-${Date.now()}`; // ID unico del popover, proporcionado o auto\n const referenceElement: unknown = reference instanceof ElementRef ? reference.nativeElement : reference; // Elemento de referencia\n const popoverElement: HTMLElement = this.createPopoverElement(content); // Elemento Popover\n const finalOptions: Partial<ComputePositionConfig> = {\n // Opciones finales de posicionamiento\n placement: options.placement || this.popoverOptions.placement,\n strategy: options.strategy || this.popoverOptions.strategy,\n middleware: options.middleware ? this.setMiddlewares(options.middleware) : this.popoverOptions.middleware,\n };\n\n // Añadimos el Popover al DOM\n this.document.body.append(popoverElement);\n\n // Creamos la instancia del Popover\n const instance: PopoverInstance = {\n id,\n element: popoverElement,\n reference: referenceElement as HTMLElement | Element | VirtualElement,\n update: async () => this.calculatePosition(instance, finalOptions),\n };\n\n // Calculamos la posicion del Popover\n void this.calculatePosition(instance, finalOptions);\n\n // Añadimos la función de autoUpdate en la propiedad cleanup del Popover ( se llama al destruir el Popover )\n instance.cleanup = autoUpdate(referenceElement as HTMLElement, popoverElement, () => instance.update!());\n\n // Añadimos la instancia del Popover al mapa de instancias\n this.popoverInstances.set(id, instance);\n\n return instance;\n }\n\n /**\n * Crea un popover que contiene un componente Angular con soporte para proyección de contenido.\n * Si ya existe un popover con el mismo ID, lo destruye antes de crear uno nuevo.\n *\n * @param popoverId Identificador único del popover.\n * @param reference Elemento de referencia para posicionar el popover (HTMLElement, Element, VirtualElement o ElementRef).\n * @param component Clase del componente Angular a renderizar dentro del popover.\n * @param inputs Propiedades de entrada para el componente.\n * @param contentProjection Contenido proyectado para los slots del popover.\n * @param options Opciones de configuración para el posicionamiento (placement, strategy, middleware, etc).\n * @returns Instancia del popover creado, incluyendo la referencia al componente.\n */\n public createPopoverComponentWithContent<T>(\n popoverId: string,\n reference: HTMLElement | Element | VirtualElement | (ElementRef & VirtualElement),\n component: new (...arguments_: unknown[]) => T,\n inputs?: Partial<T>,\n contentProjection?: PopoverContentProjection,\n options: Partial<PopoverOptions> = {},\n serviceOptions: PopoverServiceOptions = {}\n ): PopoverInstance {\n this.clearTimer();\n // Comprobamos si ya existe una instancia de Popover con el mismo ID\n this.checkPopoverInstance(popoverId ?? '');\n this.currentPopoverId = popoverId;\n\n const referenceElement: unknown = reference instanceof ElementRef ? reference.nativeElement : reference;\n const popoverElement: HTMLElement = this.createPopoverElement();\n\n // Create a custom environment injector with the required providers\n const providers = serviceOptions.providers || this.defaultMockProviders;\n const customInjector = createEnvironmentInjector(providers, this.envInjector);\n\n const componentReference: ComponentRef<T> = createComponent(component, {\n environmentInjector: customInjector,\n hostElement: popoverElement,\n });\n\n const finalOptions: Partial<ComputePositionConfig> = {\n placement: options.placement || this.popoverOptions.placement,\n strategy: options.strategy || this.popoverOptions.strategy,\n middleware: options.middleware ? this.setMiddlewares(options.middleware) : this.popoverOptions.middleware,\n };\n\n // Añadimos el Popover al DOM\n this.document.body.append(popoverElement);\n\n // Si tiene inputs, los asignamos al componente\n if (inputs) {\n for (const [key, value] of Object.entries(inputs)) {\n componentReference.setInput(key, value);\n }\n }\n\n // Procesamos la proyección de contenido\n if (contentProjection) {\n this.processContentProjection(componentReference, contentProjection);\n }\n\n // Encendemos el detectChanges del componente para que se renderice\n componentReference.changeDetectorRef.detectChanges();\n\n // Añadimos el componente al DOM\n this.appReference.attachView(componentReference.hostView);\n\n // Creamos la instancia del Popover\n const instance: PopoverInstance = {\n id: popoverId,\n element: popoverElement,\n reference: referenceElement as HTMLElement | Element | VirtualElement,\n componentRef: componentReference as ComponentRef<unknown>,\n update: async () => this.calculatePosition(instance, finalOptions),\n };\n\n const arrowElement = document.querySelector('#arrow')!;\n finalOptions.middleware?.push(arrow({ element: arrowElement }));\n\n // Calculamos la posicion del Popover\n void this.calculatePosition(instance, finalOptions);\n\n // Proporcionamos la función de autoUpdate en la propiedad cleanup del Popover\n instance.cleanup = autoUpdate(referenceElement as HTMLElement, popoverElement, () => instance.update!());\n\n // Añadimos la instancia del Popover al mapa de instancias\n this.popoverInstances.set(popoverId, instance);\n\n return instance;\n }\n\n /**\n * Crea un popover que contiene un componente Angular, lo añade al DOM y lo posiciona.\n * Si ya existe un popover con el mismo ID, lo destruye antes de crear uno nuevo.\n *\n * @param popoverId Identificador único del popover.\n * @param reference Elemento de referencia para posicionar el popover (HTMLElement, Element, VirtualElement o ElementRef).\n * @param component Clase del componente Angular a renderizar dentro del popover.\n * @param inputs Propiedades de entrada para el componente.\n * @param options Opciones de configuración para el posicionamiento (placement, strategy, middleware, etc).\n * @returns Instancia del popover creado, incluyendo la referencia al componente.\n */\n public createPopoverComponent<T>(\n popoverId: string,\n reference: HTMLElement | Element | VirtualElement | (ElementRef & VirtualElement),\n component: new (...arguments_: unknown[]) => T,\n inputs?: Partial<T>,\n options: Partial<PopoverOptions> = {},\n serviceOptions: PopoverServiceOptions = {}\n ): PopoverInstance {\n this.clearTimer();\n // Comprobamos si ya existe una instancia de Popover con el mismo ID\n this.checkPopoverInstance(popoverId ?? '');\n this.currentPopoverId = popoverId;\n\n const referenceElement: unknown = reference instanceof ElementRef ? reference.nativeElement : reference; // Elemento de referencia\n const popoverElement: HTMLElement = this.createPopoverElement(); // Elemento Popover\n\n // Create a custom environment injector with the required providers\n const providers = serviceOptions.providers || this.defaultMockProviders;\n const customInjector = createEnvironmentInjector(providers, this.envInjector);\n\n const componentReference: ComponentRef<T> = createComponent(component, {\n environmentInjector: customInjector,\n hostElement: popoverElement,\n }); // Instancia del componente Popover\n const finalOptions: Partial<ComputePositionConfig> = {\n // Opciones de posicionamiento\n placement: options.placement || this.popoverOptions.placement,\n strategy: options.strategy || this.popoverOptions.strategy,\n middleware: options.middleware ? this.setMiddlewares(options.middleware) : this.popoverOptions.middleware,\n };\n\n // Añadimos el Popover al DOM\n this.document.body.append(popoverElement);\n\n // Si tiene inputs, los asignamos al componente\n if (inputs) {\n for (const [key, value] of Object.entries(inputs)) {\n componentReference.setInput(key, value);\n }\n }\n\n // Encendemos el detectChanges del componente para que se renderice\n componentReference.changeDetectorRef.detectChanges();\n\n // Añadimos el componente al DOM\n this.appReference.attachView(componentReference.hostView);\n\n // Creamos la instancia del Popover\n const instance: PopoverInstance = {\n id: popoverId,\n element: popoverElement,\n reference: referenceElement as HTMLElement | Element | VirtualElement,\n componentRef: componentReference as ComponentRef<unknown>,\n update: async () => this.calculatePosition(instance, finalOptions),\n };\n\n const arrowElement = document.querySelector('#arrow')!;\n finalOptions.middleware?.push(arrow({ element: arrowElement }));\n\n // Calculamos la posicion del Popover\n void this.calculatePosition(instance, finalOptions);\n\n // Proporcionamos la función de autoUpdate en la propiedad cleanup del Popover ( se llama al destruir el Popover )\n instance.cleanup = autoUpdate(referenceElement as HTMLElement, popoverElement, () => instance.update!());\n\n // Añadimos la instancia del Popover al mapa de instancias\n this.popoverInstances.set(popoverId, instance);\n\n return instance;\n }\n\n /**\n * Destruye un popover existente por su ID, eliminando su elemento del DOM y limpiando recursos.\n *\n * @param id Identificador del popover a destruir.\n */\n public destroyPopover(id: string): void {\n // Comprobamos si existe la instancia del Popover\n const instance: PopoverInstance | undefined = this.popoverInstances.get(id);\n\n if (!instance) {\n return;\n }\n\n // Llamamos a la función de cleanup para eliminar el autoUpdate\n instance.cleanup?.();\n\n // Si hay comoponente, lo eliminamos del DOM\n if (instance.componentRef) {\n this.appReference.detachView(instance.componentRef.hostView);\n instance.componentRef.destroy();\n }\n\n // Si hay elemento, lo eliminamos del DOM\n if (instance.element && instance.element.parentNode) {\n instance.element.remove();\n }\n\n // Eliminamos instancia del mapa\n this.popoverInstances.delete(id);\n }\n\n /**\n * Destruye todos los popovers existentes, eliminando sus elementos del DOM y limpiando recursos.\n */\n public destroyAllPopovers(): void {\n for (const id of this.popoverInstances.keys()) {\n this.destroyPopover(id);\n }\n }\n /**\n * Crea el elemento HTML base del popover, opcionalmente con contenido.\n *\n * @param content Contenido a insertar en el popover (string, HTMLElement o ElementRef).\n * @returns Elemento HTML del popover.\n */\n private createPopoverElement(content?: string | HTMLElement | ElementRef): HTMLElement {\n // Creamos el elemento Popover\n const popoverElement: HTMLElement = this.document.createElement('div');\n\n // Añadimos la clase Popover al elemento\n popoverElement.classList.add('popover');\n\n // Si se proporciona contenido, lo añadimos al Popover, si no, lo dejamos vacío\n if (!content) {\n return popoverElement;\n }\n\n if (typeof content === 'string') {\n popoverElement.innerHTML = content;\n } else {\n const element = content instanceof ElementRef ? content.nativeElement : content;\n\n popoverElement.append(element as HTMLElement);\n }\n\n return popoverElement;\n }\n\n /**\n * Verifica si existe una instancia de popover con el ID dado y la destruye si es así.\n *\n * @param id Identificador del popover a comprobar.\n */\n private checkPopoverInstance(id: string): void {\n if (this.popoverInstances.has(id)) {\n this.destroyPopover(id);\n }\n }\n\n /**\n * Calcula y aplica la posición del popover respecto a su elemento de referencia,\n * usando las opciones de Floating UI.\n *\n * @param instance Instancia del popover a posicionar.\n * @param options Opciones de configuración para el posicionamiento.\n */\n private async calculatePosition(\n instance: PopoverInstance,\n options: Partial<ComputePositionConfig> = {}\n ): Promise<void> {\n // Desestructuramos las opciones\n const { placement, strategy, middleware } = options;\n\n try {\n // Calculamos la posicion del Popover en base a la referencia y el elemento Popover y las opciones proporcionadas\n const { x, y } = await computePosition(instance.reference, instance.element, {\n placement,\n strategy,\n middleware,\n });\n\n // Asignamos la posicion al elemento Popover\n Object.assign(instance.element.style, {\n position: strategy,\n top: `${y}px`,\n left: `${x}px`,\n });\n } catch (error) {\n console.error('Error positioning popover', error);\n }\n }\n\n /**\n * Procesa la proyección de contenido para el componente popover.\n *\n * @param componentRef Referencia al componente creado\n * @param contentProjection Contenido a proyectar en los slots\n */\n private processContentProjection<T>(\n componentRef: ComponentRef<T>,\n contentProjection: PopoverContentProjection\n ): void {\n const componentInstance = componentRef.instance as any;\n\n // Procesamos cada slot de contenido\n if (contentProjection.thumbnail) {\n this.setContentProjection(componentInstance, 'hasThumbnailProjection', contentProjection.thumbnail);\n }\n\n if (contentProjection.content) {\n this.setContentProjection(componentInstance, 'hasContentProjection', contentProjection.content);\n }\n\n if (contentProjection.price) {\n this.setContentProjection(componentInstance, 'hasPriceProjection', contentProjection.price);\n }\n }\n\n /**\n * Establece la proyección de contenido para un slot específico.\n *\n * @param componentInstance Instancia del componente\n * @param projectionFlag Flag que indica si hay proyección\n * @param content Contenido a proyectar\n */\n private setContentProjection(\n componentInstance: any,\n projectionFlag: string,\n content: TemplateRef<unknown> | string\n ): void {\n // Marcamos que hay proyección de contenido\n componentInstance[projectionFlag] = true;\n\n // Si es un TemplateRef, lo almacenamos para uso posterior\n if (content instanceof TemplateRef) {\n componentInstance[`${projectionFlag}Template`] = content;\n } else if (typeof content === 'string') {\n // Si es string, lo almacenamos como HTML\n componentInstance[`${projectionFlag}Html`] = content;\n }\n }\n\n /**\n * Set Middlewares\n * Método que recibe un objeto de opciones de middleware y devuelve un array de middlewares cargados con sus opciones.\n *\n * Para ello, necesitamos establecer un orden de aplicación de los middlewares, ya que la computación de la posición\n * depende del estado de los middlewares aplicados anteriormente. Además, como son funciones, hacemos switch para\n * cargar el middleware correspondiente en cada caso a excepción de detectOverflow, que es un middleware especial\n * que no se aplica directamente, sino que se ejecuta como una función asíncrona sobre el estado devuelto de los middlewares (si los hay).\n *\n * @param middleware\n * @returns {Middleware[]}\n */\n private setMiddlewares(middleware: MiddlewareOptions): Middleware[] {\n // Array de Middlewares y orden de aplicación de los mismos\n // https://floating-ui.com/docs/middleware#ordering\n\n const middlewares: Middleware[] = [];\n const order: (keyof MiddlewareOptions)[] = [\n 'offset',\n 'shift',\n 'flip',\n 'arrow',\n 'size',\n 'autoPlacement',\n 'inline',\n 'hide',\n 'detectOverflow',\n ];\n\n // Recorremos el array de orden y aplicamos los middlewares en el orden indicado\n for (const key of order as (keyof MiddlewareOptions)[]) {\n if (!middleware[key]) {\n continue;\n }\n\n switch (key) {\n case 'offset': {\n middlewares.push(offset(middleware.offset));\n break;\n }\n\n case 'shift': {\n middlewares.push(shift(middleware.shift));\n break;\n }\n\n case 'flip': {\n middlewares.push(flip(middleware.flip));\n break;\n }\n\n case 'arrow': {\n middlewares.push(arrow(middleware.arrow!));\n break;\n }\n\n case 'size': {\n middlewares.push(size(middleware.size));\n break;\n }\n\n case 'autoPlacement': {\n middlewares.push(autoPlacement(middleware.autoPlacement));\n break;\n }\n\n case 'hide': {\n middlewares.push(hide(middleware.hide));\n break;\n }\n\n case 'inline': {\n middlewares.push(inline(middleware.inline));\n break;\n }\n\n case 'detectOverflow': {\n const overflowMiddleware: Middleware = {\n name: 'detectOverflow',\n async fn(state) {\n await detectOverflow(state, middleware.detectOverflow);\n return {};\n },\n };\n middlewares.push(overflowMiddleware);\n break;\n }\n }\n }\n\n return middlewares;\n }\n}\n","import { ComponentRef, ElementRef, Type, ViewContainerRef } from '@angular/core';\nimport {\n ArrowOptions,\n AutoPlacementOptions,\n ComputePositionConfig,\n DetectOverflowOptions,\n FlipOptions,\n HideOptions,\n InlineOptions,\n OffsetOptions,\n Placement,\n ShiftOptions,\n SizeOptions,\n VirtualElement,\n} from '@floating-ui/dom';\nimport { Observable } from 'rxjs';\nimport type { MapViewerNode } from '@3ddv/dvm-internal';\n\nexport type PopoverPlacement = Placement;\n\nexport interface PopoverInstance<T = unknown> {\n id: string;\n element: HTMLElement;\n reference: HTMLElement | Element | VirtualElement | (ElementRef & VirtualElement);\n componentRef?: ComponentRef<T>;\n update?: () => void;\n cleanup?: () => void;\n}\n\nexport interface PopoverOptions extends Omit<ComputePositionConfig, 'middleware'> {\n middleware?: MiddlewareOptions;\n}\n\nexport interface MiddlewareOptions {\n offset?: OffsetOptions;\n shift?: ShiftOptions;\n flip?: FlipOptions;\n arrow?: ArrowOptions;\n size?: SizeOptions;\n autoPlacement?: AutoPlacementOptions;\n hide?: HideOptions;\n inline?: InlineOptions;\n detectOverflow?: DetectOverflowOptions;\n}\n\nexport enum AppNodes {\n Section = 'section',\n Row = 'row',\n Seat = 'seat',\n Ga = 'general_admission',\n Vip = 'vip',\n}\n\n// Seat popover data interface\nexport interface SeatPopoverData {\n id: string;\n section: string;\n row: string;\n seat: string;\n price: number;\n thumbnail?: string;\n}\n\n// Section popover data interface\nexport interface SectionPopoverData {\n id: string;\n section: string;\n priceRange: { min: number; max: number };\n availableQuantity: number;\n adaQuantity: number;\n thumbnail?: string;\n type?: 'section' | 'general_admission';\n isSelectedForBA?: boolean;\n priceRangeWithFees?: string;\n}\n\n// Thumbnail provider interface\nexport interface IThumbnailProvider {\n getThumbnail(nodeId: string): Observable<string>;\n}\n\n// Popover positioning interface\nexport interface IPopoverPositioner {\n calculatePlacement(node: MapViewerNode, container: HTMLElement): Placement;\n calculateOffset(node: MapViewerNode): number[];\n}\n\n// Popover manager interfaces\nexport interface IPopoverManager {\n showPopover<T>(config: PopoverConfig<T>): void;\n hidePopover(nodeId: string): void;\n clearAll(): void;\n}\n\nexport interface PopoverConfig<T> {\n nodeId: string;\n node: MapViewerNode;\n container: ViewContainerRef;\n tooltip: HTMLElement;\n containerElement: HTMLElement;\n component: Type<T>;\n componentInputs?: Partial<T>;\n eventHandlers?: Record<string, (...args: any[]) => void>;\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, inject, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { PopoverService } from './popover.service';\n\n/**\n * Base component for popovers that provides timer functionality.\n * Extend this component to create timer-aware popovers.\n */\n@Component({\n template: '', // Abstract component\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport abstract class BasePopoverComponent implements OnInit, OnDestroy {\n @Input() popoverId: string = '';\n @Input() autoHideDelay: number = 300; // milliseconds\n @Input() enableAutoHide: boolean = true;\n\n @Output() mouseEnter = new EventEmitter<MouseEvent>();\n @Output() mouseLeave = new EventEmitter<MouseEvent>();\n @Output() popoverHidden = new EventEmitter<void>();\n\n protected readonly popoverService = inject(PopoverService);\n protected readonly cdr = inject(ChangeDetectorRef);\n\n private isMouseOver = false;\n\n ngOnInit(): void {\n if (this.enableAutoHide && this.popoverId) {\n this.startAutoHideTimer();\n }\n }\n\n ngOnDestroy(): void {\n if (this.popoverId) {\n this.popoverService.clearPopoverTimer(this.popoverId);\n }\n }\n\n protected onMouseEnter(event: MouseEvent): void {\n this.isMouseOver = true;\n this.clearAutoHideTimer();\n this.mouseEnter.emit(event);\n }\n\n protected onMouseLeave(event: MouseEvent): void {\n this.isMouseOver = false;\n if (this.enableAutoHide) {\n this.startAutoHideTimer();\n }\n this.mouseLeave.emit(event);\n }\n\n protected hidePopover(): void {\n if (this.popoverId) {\n this.popoverService.destroyPopover(this.popoverId);\n this.popoverHidden.emit();\n }\n }\n\n private startAutoHideTimer(): void {\n if (this.popoverId && !this.isMouseOver) {\n this.popoverService.setPopoverTimer(this.popoverId, this.autoHideDelay);\n }\n }\n\n private clearAutoHideTimer(): void {\n if (this.popoverId) {\n this.popoverService.clearPopoverTimer(this.popoverId);\n }\n }\n}\n","<div\n (mouseenter)=\"onEnter($event)\"\n (mouseleave)=\"onLeave($event)\"\n class=\"sdc-seat-popover\">\n <div class=\"sdc-popover-thumbnail\">\n @if (isLoadingThumbnail && showLoader) {\n <div class=\"sdc-popover-loader\">\n <div class=\"sdc-spinner\"></div>\n </div>\n }\n @if (thumbnail && !isLoadingThumbnail) {\n <div class=\"sdc-thumbnail-image\" [style.background-image]=\"'url(' + thumbnail + ')'\"></div>\n }\n </div>\n\n <div class=\"sdc-popover-content\">\n <div class=\"sdc-popover-grid\">\n <div class=\"sdc-popover-col-left\">\n <h5 class=\"sdc-popover-label\">\n <span class=\"sdc-popover-label-text\">Section:</span>\n {{ formattedSection }}\n </h5>\n <h5 class=\"sdc-popover-label\">\n <span class=\"sdc-popover-label-text\">Row:</span>\n {{ data.row }}\n </h5>\n </div>\n <div class=\"sdc-popover-col-right\">\n <h5 class=\"sdc-popover-label\">\n <span class=\"sdc-popover-label-text\">Seat:</span>\n {{ formattedSeat }}\n </h5>\n <h5 class=\"sdc-popover-label\">\n <span class=\"sdc-popover-label-text\">Price:</span>\n {{ data.price | currency: 'USD' }}\n </h5>\n </div>\n </div>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n inject,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { CommonModule, CurrencyPipe } from '@angular/common';\nimport { type SeatPopoverData } from '../types';\nimport { THUMBNAIL_PROVIDER } from '../popover.config';\nimport { BasePopoverComponent } from '../base-popover.component';\n\n@Component({\n selector: 'sdc-seat-popover',\n templateUrl: './seat-popover.component.html',\n styleUrl: './seat-popover.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, CurrencyPipe],\n})\nexport class SeatPopoverComponent extends BasePopoverComponent implements OnInit {\n @Input() data!: SeatPopoverData;\n @Input() showLoader: boolean = true;\n\n private readonly thumbnailProvider = inject(THUMBNAIL_PROVIDER, { optional: true });\n protected override readonly cdr = inject(ChangeDetectorRef);\n\n protected thumbnail?: string;\n protected isLoadingThumbnail = true;\n\n override ngOnInit(): void {\n super.ngOnInit(); // Initialize base component timer logic\n\n if (this.data.thumbnail) {\n this.thumbnail = this.data.thumbnail;\n this.isLoadingThumbnail = false;\n } else if (this.thumbnailProvider && this.showLoader) {\n this.loadThumbnail();\n }\n }\n\n private loadThumbnail(): void {\n this.thumbnailProvider!.getThumbnail(this.data.id).subscribe({\n next: url => {\n this.thumbnail = url;\n this.isLoadingThumbnail = false;\n this.cdr.markForCheck();\n },\n error: () => {\n this.isLoadingThumbnail = false;\n this.cdr.markForCheck();\n },\n });\n }\n\n protected get formattedSection(): string {\n return this.data.section.includes('_') ? this.data.section.split('_')[1].split('-')[0] : this.data.section;\n }\n\n protected get formattedSeat(): string {\n return this.data.seat.split('-')[2] || this.data.seat;\n }\n\n protected onEnter(event: MouseEvent): void {\n this.onMouseEnter(event);\n }\n\n protected onLeave(event: MouseEvent): void {\n this.onMouseLeave(event);\n }\n}\n","<div (mouseenter)=\"onEnter($event)\" (mouseleave)=\"onLeave($event)\" class=\"sdc-section-popover\">\n <div class=\"sdc-popover-thumbnail\">\n @if (isLoadingThumbnail && showLoader) {\n <div class=\"sdc-popover-loader\">\n <div class=\"sdc-spinner\"></div>\n </div>\n }\n @if (thumbnail && !isLoadingThumbnail) {\n <div\n class=\"sdc-thumbnail-image sdc-thumbnail-clickable\"\n [style.background-image]=\"'url(' + thumbnail + ')'\"\n (click)=\"onLoad3dView()\">\n <span class=\"sdc-thumbnail-overlay-text\">Click to open view</span>\n </div>\n }\n </div>\n\n <div class=\"sdc-popover-content\">\n <div class=\"sdc-popover-grid\">\n <div class=\"sdc-popover-col-left\">\n <h5 class=\"sdc-popover-label\">\n <span class=\"sdc-popover-label-text\">Section:</span>\n {{ data.section }}\n </h5>\n @if (isTicketFeeEnabled && priceRangeWithFees) {\n <h5 class=\"sdc-popover-label\">\n <span class=\"sdc-popover-label-text\">Price:</span> $ {{ priceRangeWithFees }}\n </h5>\n } @else {\n <h5 class=\"sdc-popover-label\">\n <span class=\"sdc-popover-label-text\">Price:</span> $ {{ priceRangeDisplay }}\n </h5>\n }\n </div>\n <div class=\"sdc-popover-col-right\">\n <h5 class=\"sdc-popover-label\">\n <span class=\"sdc-popover-label-text\">Available Seats:</span>\n {{ data.availableQuantity }}\n </h5>\n <h5 class=\"sdc-popover-label\">\n <span class=\"sdc-popover-label-text\">Available ADA Seats:</span>\n {{ data.adaQuantity }}\n </h5>\n </div>\n </div>\n\n <div class=\"sdc-popover-actions\">\n @if (showBestAvailable) {\n <button class=\"sdc-popover-btn sdc-popover-btn-primary sdc-popover-btn-mobile-only\" (click)=\"onSelectForBA()\">\n {{ data.isSelectedForBA ? 'Deselect' : 'Select' }}\n </button>\n }\n @if (shouldShowSeatMapButton) {\n <button class=\"sdc-popover-btn sdc-popover-btn-secondary\" (click)=\"onOpenSeatMap()\">Open Seat Map</button>\n }\n </div>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n inject,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { type SectionPopoverData } from '../types';\nimport { THUMBNAIL_PROVIDER } from '../popover.config';\nimport { BasePopoverComponent } from '../base-popover.component';\n\n@Component({\n selector: 'sdc-section-popover',\n templateUrl: './section-popover.component.html',\n styleUrl: './section-popover.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule],\n})\nexport class SectionPopoverComponent extends BasePopoverComponent implements OnInit {\n @Input() data!: SectionPopoverData;\n @Input() showLoader: boolean = true;\n @Input() showBestAvailable: boolean = false;\n @Input() showOpenSeatMap: boolean = true;\n @Input() excludeSeatMapSections: string[] = ['S_BLCHADA', 'S_Bleacher'];\n @Input() isTicketFeeEnabled: boolean = false;\n\n @Output() load3dView = new EventEmitter<void>();\n @Output() selectForBA = new EventEmitter<boolean>();\n @Output() openSeatMap = new EventEmitter<void>();\n\n private readonly thumbnailProvider = inject(THUMBNAIL_PROVIDER, { optional: true });\n protected override readonly cdr = inject(ChangeDetectorRef);\n\n protected thumbnail?: string;\n protected isLoadingThumbnail = true;\n\n override ngOnInit(): void {\n super.ngOnInit(); // Initialize base component timer logic\n\n if (this.data.thumbnail) {\n this.thumbnail = this.data.thumbnail;\n this.isLoadingThumbnail = false;\n } else if (this.thumbnailProvider && this.showLoader) {\n this.loadThumbnail();\n }\n }\n\n private loadThumbnail(): void {\n this.thumbnailProvider!.getThumbnail(this.data.id).subscribe({\n next: url => {\n this.thumbnail = url;\n this.isLoadingThumbnail = false;\n this.cdr.markForCheck();\n },\n error: () => {\n this.isLoadingThumbnail = false;\n this.cdr.markForCheck();\n },\n });\n }\n\n protected get priceRangeDisplay(): string {\n const { min, max } = this.data.priceRange;\n return min === max ? min.toString() : `${min} - ${max}`;\n }\n\n protected get priceRangeWithFees(): string | undefined {\n if (this.isTicketFeeEnabled && this.data.priceRangeWithFees) {\n return this.data.priceRangeWithFees;\n }\n return undefined;\n }\n\n protected get shouldShowSeatMapButton(): boolean {\n return (\n this.showOpenSeatMap &&\n !this.excludeSeatMapSections.includes(this.data.section) &&\n this.data.type !== 'general_admission'\n );\n }\n\n protected onEnter(event: MouseEvent): void {\n this.onMouseEnter(event);\n }\n\n protected onLeave(event: MouseEvent): void {\n this.onMouseLeave(event);\n }\n\n protected onLoad3dView(): void {\n this.load3dView.emit();\n }\n\n protected onSelectForBA(): void {\n this.selectForBA.emit(!this.data.isSelectedForBA);\n }\n\n protected onOpenSeatMap(): void {\n this.openSeatMap.emit();\n }\n}\n","<!-- SECTION POPOVER -->\n@if (sectionData) {\n <sdc-section-popover\n [data]=\"sectionData\"\n [popoverId]=\"'popover-' + node.id\"\n [showBestAvailable]=\"true\"\n [showOpenSeatMap]=\"true\"\n [excludeSeatMapSections]=\"['S_BLCHADA', 'S_Bleacher']\"\n (mouseEnter)=\"onEnter($event)\"\n (mouseLeave)=\"onLeave($event)\"\n (load3dView)=\"onLoad3dView()\"\n (selectForBA)=\"onSelectSectionForBA($event)\"\n (openSeatMap)=\"onOpenSeatMap()\">\n </sdc-section-popover>\n}\n\n<!-- SEAT POPOVER -->\n@if (seatData) {\n <sdc-seat-popover\n [data]=\"seatData\"\n [popoverId]=\"'popover-' + node.id\"\n (mouseEnter)=\"onEnter($event)\"\n (mouseLeave)=\"onLeave($event)\">\n </sdc-seat-popover>\n}\n","import type { MapViewerNode, Viewer3dLoadView3dOptions } from '@3ddv/dvm-internal';\nimport type { Viewer3dService } from '@3ddv/ngx-dvm-internal';\nimport { CommonModule, CurrencyPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n input,\n output,\n OnInit,\n Input,\n} from '@angular/core';\nimport { ThemeClass } from '@shared/types';\nimport {\n CONFIGURATION_SERVICE,\n DVM_FORMATTER,\n DVM_SERVICE,\n IConfigurationService,\n IDvmFormatter,\n IDvmService,\n} from './popover.config';\nimport { PopoverService } from './popover.service';\nimport { AppNodes, SeatPopoverData, SectionPopoverData } from './types';\nimport { SeatPopoverComponent } from './seat-popover/seat-popover.component';\nimport { SectionPopoverComponent } from './section-popover/section-popover.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'sdc-map-popover',\n standalone: true,\n imports: [CommonModule, SeatPopoverComponent, SectionPopoverComponent],\n templateUrl: './popover.component.html',\n styleUrl: './popover.component.css',\n})\nexport class PopoverComponent implements OnInit {\n // INPUTS\n /**\n * The node to attach the popover to.\n */\n @Input()\n public readonly node!: MapViewerNode;\n\n /**\n * The current theme applied to the component.\n */\n public readonly theme = input<ThemeClass>('theme-sdc');\n\n // OUTPUTS\n /**\n * Emitted when the 3D view should be loaded.\n */\n public readonly load3dView = output<{ node: MapViewerNode; section: string | undefined }>();\n\n /**\n * Emitted when a section should be selected/deselected for best available.\n */\n public readonly selectSectionForBA = output<{\n node: MapViewerNode;\n section: string | undefined;\n selected: boolean;\n }>();\n\n /**\n * Emitted when the seat map should be opened.\n */\n public readonly openSeatMap = output<{ node: MapViewerNode; section: string | undefined }>();\n\n // SERVICES\n private readonly dvm: IDvmService = inject(DVM_SERVICE);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly format: IDvmFormatter = inject(DVM_FORMATTER);\n private readonly configurationService: IConfigurationService = inject(CONFIGURATION_SERVICE);\n protected readonly popoverService = inject(PopoverService);\n\n // COMPONENT STATE\n protected readonly Nodes: typeof AppNodes = AppNodes;\n protected thumbnail!: string | undefined;\n protected section!: string | undefined;\n protected row!: string | undefined;\n protected seat!: string | undefined;\n protected prices!: string[] | undefined;\n\n // Section popover specific properties\n protected availableQuantity: number = 0;\n protected adaQuantity: number = 0;\n protected includedSectionForBA: boolean = false;\n\n // Transformed data for new components\n protected get seatData(): SeatPopoverData | null {\n if (this.node?.type === AppNodes.Seat) {\n return this.transformToSeatData();\n }\n return null;\n }\n\n protected get sectionData(): SectionPopoverData | null {\n if (this.node?.type === AppNodes.Section || this.node?.type === AppNodes.Ga) {\n return this.transformToSectionData();\n }\n return null;\n }\n\n // LC METHODS\n public ngOnInit(): void {\n this.initComponent();\n }\n\n protected onEnter(_: MouseEvent): void {\n this.popoverService.clearTimer();\n }\n\n protected onLeave(_: MouseEvent): void {\n this.popoverService.setTimer();\n }\n\n // GETTERS\n protected get price(): string | undefined {\n return this.prices // Existen precios?\n ? this.prices.length > 1 // Existen precios, pero más de uno?\n ? Math.min(...this.prices.map(price => Number.parseInt(price))).toString()\n : this.prices[0] // Si lo hay, sacamos el minimo, si no seteamos el primero ( y unico xd )\n : undefined; // No existen precios\n }\n\n protected get priceRange(): string {\n if (!this.prices || this.prices.length === 0) {\n return '';\n }\n\n let priceRange = this.prices[0];\n if (this.prices.length > 1 && this.prices[0] !== this.prices[1]) {\n priceRange = `${this.prices[0]} - ${this.prices[1]}`;\n }\n return priceRange;\n }\n\n // METHODS\n private initComponent(): void {\n this.setTexts();\n this.getThumbnail();\n // this.getPrice();\n }\n\n private setTexts(): void {\n const nodeId: string[] = this.format.transform(this.node?.id).split(' ');\n // const translated = this.translationData()[this.node().id.split('-')[0]];\n this.section = nodeId[0];\n this.row = nodeId[1] ?? null;\n this.seat = nodeId[2] ?? null;\n }\n\n private getThumbnail(): void {\n const viewer3dService: Viewer3dService = this.dvm.viewer3dService;\n const options: Viewer3dLoadView3dOptions = {\n // eslint-disable-next-line camelcase\n venue_id: this.configurationService.configuration.dvmData.venueId,\n // eslint-disable-next-line camelcase\n view_id: this.node?.id,\n };\n\n if (!viewer3dService?.isInitialized()) {\n return;\n }\n\n viewer3dService.getThumbnail(options, true).subscribe((thumbnailUrl: string): void => {\n this.thumbnail = thumbnailUrl;\n this.cdr.markForCheck();\n });\n }\n\n // Section popover methods\n protected onLoad3dView(): void {\n this.load3dView.emit({\n node: this.node,\n section: this.section,\n });\n }\n\n protected onSelectSectionForBA(selected: boolean): void {\n this.includedSectionForBA = selected;\n this.selectSectionForBA.emit({\n node: this.node,\n section: this.section,\n selected: this.includedSectionForBA,\n });\n }\n\n protected onOpenSeatMap(): void {\n this.openSeatMap.emit({\n node: this.node,\n section: this.section,\n });\n }\n\n // Data transformation methods\n private transformToSeatData(): SeatPopoverData {\n const nodeId: string[] = this.format.transform(this.node?.id).split(' ');\n const section = nodeId[0];\n const row = nodeId[1] ?? '';\n const seat = nodeId[2] ?? '';\n\n return {\n id: this.node.id,\n section: section,\n row: row,\n seat: seat,\n price: this.price ? Number.parseFloat(this.price) : 0,\n thumbnail: this.thumbnail\n };\n }\n\n private transformToSectionData(): SectionPopoverData {\n const nodeId: string[] = this.format.transform(this.node?.id).split(' ');\n const section = nodeId[0];\n\n // Parse price range from existing prices array\n let priceRange = { min: 0, max: 0 };\n if (this.prices && this.prices.length > 0) {\n const minPrice = Number.parseFloat(this.prices[0]);\n const maxPrice = this.prices.length > 1 ? Number.parseFloat(this.prices[1]) : minPrice;\n priceRange = { min: minPrice, max: maxPrice };\n }\n\n return {\n id: this.node.id,\n section: section,\n priceRange: priceRange,\n availableQuantity: this.availableQuantity,\n adaQuantity: this.adaQuantity,\n thumbnail: this.thumbnail,\n type: this.node.type === AppNodes.Ga ? 'general_admission' : 'section',\n isSelectedForBA: this.includedSectionForBA\n };\n }\n}\n","import { inject, Injectable, Inject } from '@angular/core';\nimport { createPopper } from '@popperjs/core';\nimport type { IPopoverManager, IPopoverPositioner, PopoverConfig } from '../types';\nimport { POPOVER_POSITIONER } from '../popover.config';\n\n/**\n * Generic popover manager service that handles popover lifecycle and positioning.\n * This service is DVM-agnostic and delegates positioning logic to IPopoverPositioner.\n */\n@Injectable()\nexport class PopoverManagerService implements IPopoverManager {\n private currentPopoverId: string = '';\n private tooltip?: HTMLElement;\n private readonly positioner: IPopoverPositioner;\n\n constructor(@Inject(POPOVER_POSITIONER) positioner: IPopoverPositioner) {\n this.positioner = positioner;\n }\n\n /**\n * Shows a popover with the specified configuration.\n * @param config - Configuration for the popover including component, data, and positioning\n */\n showPopover<T>(config: PopoverConfig<T>): void {\n config.container.clear();\n this.currentPopoverId = config.nodeId;\n this.tooltip = config.tooltip;\n\n const componentRef = config.container.createComponent(config.component);\n\n if (config.componentInputs) {\n Object.entries(config.componentInputs).forEach(([key, value]) => {\n (componentRef.instance as any)[key] = value;\n });\n }\n\n if (config.eventHandlers) {\n Object.entries(config.eventHandlers).forEach(([key, handler]) => {\n const instance = componentRef.instance as any;\n if (instance[key] && typeof instance[key].subscribe === 'function') {\n instance[key].subscribe(handler);\n }\n });\n }\n\n const placement = this.positioner.calculatePlacement(config.node, config.containerElement);\n const offset = this.positioner.calculateOffset(config.node);\n\n createPopper(config.node, this.tooltip, {\n placement,\n modifiers: [\n {\n name: 'offset',\n options: {\n offset,\n },\n },\n {\n name: 'flip',\n options: {\n fallbackPlacements: [],\n },\n },\n ],\n });\n\n this.tooltip.setAttribute('data-show', '');\n }\n\n /**\n * Hides the popover for the specified node ID.\n * @param nodeId - The node ID of the popover to hide\n */\n hidePopover(nodeId: string): void {\n if (this.currentPopoverId === nodeId) {\n this.tooltip?.removeAttribute('data-show');\n }\n }\n\n /**\n * Clears all popovers.\n */\n clearAll(): void {\n this.tooltip?.removeAttribute('data-show');\n this.currentPopoverId = '';\n }\n}\n\n","import { inject, Injectable, Inject } from '@angular/core';\nimport type { MapViewerNode, V2 } from '@3ddv/dvm-internal';\nimport { Placement } from '@floating-ui/dom';\nimport { IPopoverPositioner } from '../types';\nimport { DVM_SERVICE, CONFIGURATION_SERVICE } from '../popover.config';\nimport type { IDvmService, IConfigurationService } from '../popover.config';\n\n/**\n * DVM-specific positioning service for popovers.\n * Handles calculation of popover placement and offset based on DVM node properties.\n */\n@Injectable()\nexport class DvmPopoverPositionerService implements IPopoverPositioner {\n private readonly dvmService: IDvmService;\n private readonly configService: IConfigurationService;\n\n constructor(\n @Inject(DVM_SERVICE) dvmService: IDvmService,\n @Inject(CONFIGURATION_SERVICE) configService: IConfigurationService\n ) {\n this.dvmService = dvmService;\n this.configService = configService;\n }\n\n /**\n * Calculates the optimal placement for a popover based on node position.\n * @param node - The MapViewerNode to position relative to\n * @param container - The container element for positioning reference\n * @returns The calculated placement ('top' or 'bottom')\n */\n calculatePlacement(node: MapViewerNode, container: HTMLElement): Placement {\n if (!node.aabb) {\n throw new Error('Node AABB is not defined');\n }\n\n const nodeSceneCenter: [number, number] = [\n node.aabb[0] + node.aabb[2] / 2,\n node.aabb[1] + node.aabb[3] / 2,\n ];\n\n const nodeDomCenter: V2 = this.dvmService.viewerService.fromSceneToDom(nodeSceneCenter)!;\n\n if (nodeDomCenter[1] > container.offsetHeight / 2) {\n return 'top';\n } else {\n return 'bottom';\n }\n }\n\n /**\n * Calculates the offset for popover positioning based on node type and configuration.\n * @param node - The MapViewerNode to calculate offset for\n * @returns An array of [x, y] offset values\n */\n calculateOffset(node: MapViewerNode): number[] {\n if (node.type === 'seat') {\n return [0, 6];\n }\n\n if (node.type === 'section' || node.type === 'general_admission') {\n const dvmData = this.configService.configuration.dvmData as any;\n const sectionOffsets = dvmData?.sectionOffsets || {};\n const nodeId = node.id as keyof typeof sectionOffsets;\n const nodeOriginalId = node.original_id as keyof typeof sectionOffsets;\n const dvmOffset = sectionOffsets[nodeId] ?? sectionOffsets[nodeOriginalId];\n\n return dvmOffset ?? [0, 0];\n }\n\n return [0, 0];\n }\n}\n\n","import { SeatPopoverData, SectionPopoverData } from '../types';\n\n/**\n * Abstract base class for transforming data from source format to target popover format.\n * Apps can extend this class to implement their own data transformation logic.\n */\nexport abstract class BasePopoverDataTransformer<TSource, TTarget> {\n /**\n * Transforms source data to target popover data format.\n * @param source - The source data to transform\n * @param context - Optional context for additional transformation logic\n * @returns The transformed data in target format\n */\n abstract transform(source: TSource, context?: any): TTarget;\n}\n\n/**\n * Abstract base class for transforming seat data to SeatPopoverData format.\n * Apps should extend this class and implement the transform method with their\n * specific seat data models.\n */\nexport abstract class BaseSeatDataTransformer<TSource> extends BasePopoverDataTransformer<\n TSource,\n SeatPopoverData\n> {}\n\n/**\n * Abstract base class for transforming section data to SectionPopoverData format.\n * Apps should extend this class and implement the transform method with their\n * specific section data models.\n */\nexport abstract class BaseSectionDataTransformer<TSource> extends BasePopoverDataTransformer<\n TSource,\n SectionPopoverData\n> {}\n\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './popover.component';\nexport * from './popover.config';\nexport * from './popover.service';\nexport type * from './types';\nexport * from './base-popover.component';\nexport * from './seat-popover/seat-popover.component';\nexport * from './section-popover/section-popover.component';\nexport * from './services/popover-manager.service';\nexport * from './services/dvm-popover-positioner.service';\nexport * from './transformers/base-popover-data-transformer';\n","<nav [attr.aria-label]=\"'progress-stepper'\" [class]=\"computedClass()\">\n <ol class=\"sdc-stepper__list\">\n @for (step of steps(); track step.name; let i = $index) {\n <li class=\"sdc-stepper__item\">\n <span class=\"sdc-stepper__text\" [class]=\"stateClass(i)\"> {{ i + 1 }}. {{ step.action }} </span>\n </li>\n }\n </ol>\n</nav>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { ThemeClass } from '../../public-api';\nimport { Size, SIZE_ORDER } from '../../types/sizes.type';\nimport { Step, StepperSize, StepState } from './types';\n\n@Component({\n selector: 'sdc-stepper',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './stepper.component.html',\n styleUrls: ['./stepper.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StepperComponent {\n public readonly steps = input.required<Step[]>();\n public readonly size = input<Size>('md');\n public readonly routeName = input<string | null>(null);\n public readonly theme = input<ThemeClass>('theme-sdc');\n\n /** Only these are supported for stepper. */\n private readonly supportedSizes: StepperSize[] = ['xxs', 'xs', 'sm', 'md', 'lg'];\n\n /** Normalize any Size → StepperSize by flooring to the nearest supported size. */\n private normalizeSize = (s: Size): StepperSize => {\n const wantedIdx = SIZE_ORDER.indexOf(s);\n if (wantedIdx === -1) return 'md';\n\n for (let i = wantedIdx; i >= 0; i--) {\n const candidate = SIZE_ORDER[i];\n if (this.supportedSizes.includes(candidate as StepperSize)) {\n return candidate as StepperSize;\n }\n }\n return 'md';\n };\n\n private readonly allowedAlign = ['align-start', 'align-center', 'align-end'] as const;\n private readonly allowedOrientation = ['orientation-horizontal', 'orientation-vertical'] as const;\n private readonly allowedSizes = SIZE_ORDER.map(s => `size-${s}`);\n\n public readonly styleClass = input<\n (\n | (typeof this.allowedAlign)[number]\n | (typeof this.allowedOrientation)[number]\n | (typeof this.allowedSizes)[number]\n )[]\n >(['orientation-horizontal', 'align-center']);\n\n public readonly className = input<string>('');\n\n private readonly _validatedStyleClass = computed(() => {\n const classes = this.styleClass() ?? [];\n const valid = classes.filter(\n c =>\n this.allowedAlign.includes(c as any) ||\n this.allowedOrientation.includes(c as any) ||\n this.allowedSizes.includes(c as any)\n );\n if (valid.length !== classes.length) {\n const invalid = classes.filter(c => !valid.includes(c));\n console.warn(`StepperComponent: Ignored invalid styleClass: ${invalid.join(', ')}`);\n }\n return valid;\n });\n\n private readonly _effectiveSize = computed<StepperSize>(() => {\n const sc = this._validatedStyleClass();\n const rawOverride = sc\n .filter(c => c.startsWith('size-'))\n .slice(-1)[0]\n ?.replace(/^size-/, '') as Size | undefined;\n\n if (rawOverride) return this.normalizeSize(rawOverride);\n return this.normalizeSize(this.size());\n });\n\n protected readonly computedClass = computed(() => {\n const base = this._validatedStyleClass().filter(c => !c.startsWith('size-'));\n const normalizedSize = this._effectiveSize();\n\n return ['sdc-stepper', this.theme(), `size-${normalizedSize}`, ...base, this.className()].filter(Boolean).join(' ');\n });\n\n protected stateForIndex(i: number): StepState {\n const route = this.routeName();\n if (!route) return 'normal';\n const current = this.steps().findIndex(s => s.name === route);\n if (current < 0) return 'normal';\n if (current === i) return 'active';\n if (current > i) return 'completed';\n return 'normal';\n }\n\n protected stateClass(i: number): string {\n return `state-${this.stateForIndex(i)}`;\n }\n}\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './stepper.component';\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sdc-ticket-info-item',\n standalone: true,\n templateUrl: './ticket-info-item.component.html',\n})\nexport class TicketInfoItemComponent {}\n","<div>ticket-info-item component!</div>\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TicketInfoItemService {\n constructor() {}\n}\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './ticket-info-item.component';\nexport * from './ticket-info-item.service';\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n input,\n OnDestroy,\n output,\n viewChild,\n} from '@angular/core';\nimport { BraintreePayload } from './types';\n\ndeclare let braintree: any;\n\n/**\n * Braintree Drop‑in component that auto‑wires clicks\n * on the first projected element and errors if more than one.\n * Recreates the drop‑in UI whenever isDigitalWalletPayment changes,\n * ensuring the container is empty before initialization.\n */\n@Component({\n standalone: true,\n selector: 'sdc-braintree',\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div #braintreeContainer id=\"braintree-container\"></div>\n <ng-content></ng-content>\n `,\n})\nexport class BraintreeComponent implements OnDestroy {\n /** Braintree element reference */\n public braintreeContainer = viewChild('braintreeContainer', { read: ElementRef<HTMLElement> });\n\n /** Braintree client token input */\n public readonly token = input.required<string>();\n\n /** Toggle to require cardholder name */\n public readonly isDigitalWalletPayment = input<boolean>(false);\n\n /** Emits when a payment payload is ready */\n public readonly onSubmit = output<BraintreePayload>();\n\n /** Holds the Drop‑in instance */\n private dropinInstance: any;\n\n constructor(private readonly elRef: ElementRef) {\n // Re-initialize drop‑in UI on config change\n effect(() => {\n const requireName = this.isDigitalWalletPayment();\n this.teardownDropin();\n this.initializeDropin(requireName);\n });\n\n // Attach click handler to the single projected element\n effect(onCleanup => {\n const projectedEls = Array.from((this.elRef.nativeElement as HTMLElement).children).filter(\n el => el.id !== 'braintree-container'\n );\n if (projectedEls.length > 1) {\n throw new Error(`sdc-braintree: only one projected element allowed, found ${projectedEls.length}`);\n }\n if (projectedEls.length === 1) {\n const btn = projectedEls[0] as HTMLElement;\n const handler = () => this.requestPayment();\n btn.addEventListener('click', handler);\n onCleanup(() => btn.removeEventListener('click', handler));\n }\n });\n }\n\n ngOnDestroy(): void {\n this.teardownDropin();\n }\n\n /** Clears previous drop-in UI and recreates it */\n private initializeDropin(requireName: boolean): void {\n if (this.dropinInstance) return;\n const container = this.braintreeContainer()?.nativeElement as HTMLElement;\n\n if (!container) {\n console.error('sdc-braintree: missing container element');\n return;\n }\n\n const cardOptions = requireName\n ? {\n card: { cardholderName: { required: requireName } },\n number: { supportedCardBrand: ['visa', 'mastercard', 'diners-club', 'discover', 'american-express'] },\n }\n : undefined;\n\n setTimeout(() => {\n braintree.dropin.create(\n {\n authorization: this.token(),\n container: container,\n ...cardOptions,\n },\n (err: any, instance: any) => {\n if (err) {\n console.error('Braintree init error:', err);\n return;\n }\n this.dropinInstance = instance;\n }\n );\n }, 0);\n }\n\n /** Requests payment method and emits payload */\n private requestPayment(): void {\n if (!this.dropinInstance) {\n console.warn('sdc-braintree: drop‑in not ready');\n return;\n }\n this.dropinInstance.requestPaymentMethod((err: any, payload: BraintreePayload) => {\n if (err) {\n console.error('sdc-braintree payment error:', err);\n return;\n }\n this.onSubmit.emit(payload);\n });\n }\n\n /** Tears down the drop-in instance if present */\n private teardownDropin(): void {\n if (this.dropinInstance?.teardown) {\n this.dropinInstance.teardown();\n }\n this.dropinInstance = null;\n }\n}\n","<div class=\"sdc-digital-wallet theme-sdc\" id=\"add-patron-card-modal\">\n <div class=\"sdc-digital-wallet__inner\">\n <h2 class=\"sdc-digital-wallet__title\">ADD YOUR CARD</h2>\n\n <sdc-braintree\n class=\"sdc-digital-wallet__braintree\"\n [isDigitalWalletPayment]=\"true\"\n [token]=\"token()\"\n (onSubmit)=\"onDigitalWalletSubmitted($event)\">\n <div>\n @if (showIsDefaultCardCheckbox()) {\n <label\n id=\"braintree-use-default-card-checkbox\"\n class=\"flex justify-center py-4 sdc-digital-wallet__default-card\">\n <input type=\"checkbox\" [formControl]=\"useDefaultCardCtrl\" />\n Make this my default card\n </label>\n }\n\n @if (errorMessage()) {\n <p class=\"sdc-digital-wallet__error\">\n {{ errorMessage() || 'Something bad happened' }}\n </p>\n }\n\n <div class=\"flex justify-center gap-4 pt-4\">\n @if (showCancelButton()) {\n <button\n class=\"disabled:opacity-30 mr-3 md:mr-6 disabled:hover:transform-none hover:scale-95 transition-transform sdc-digital-wallet__cancel btn-main-reverse\"\n id=\"braintree-cancel-button\"\n type=\"button\"\n (click)=\"onCancel()\">\n Cancel\n </button>\n }\n <button\n class=\"disabled:opacity-30 disabled:hover:transform-none hover:scale-95 transition-transform sdc-digital-wallet__submit btn-main\"\n id=\"braintree-save-button\"\n type=\"button\">\n Save Card\n </button>\n </div>\n </div>\n </sdc-braintree>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, DestroyRef, OnInit, inject, input, output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { BraintreeComponent } from '../braintree/braintree.component';\nimport { BraintreePayload } from '../braintree/types';\n\n@Component({\n standalone: true,\n selector: 'sdc-add-digital-wallet',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [BraintreeComponent, ReactiveFormsModule],\n templateUrl: './add-digital-wallet.component.html',\n styleUrls: ['./add-digital-wallet.component.css'],\n})\nexport class AddDigitalWalletComponent implements OnInit {\n // INPUTS\n public token = input.required<string>();\n public errorMessage = input<string | null>(null);\n public showCancelButton = input<boolean>(false);\n public showIsDefaultCardCheckbox = input<boolean>(false);\n\n // OUTPUTS\n public readonly braintreePayload = output<BraintreePayload>();\n public readonly cancelClick = output<void>();\n public readonly useDefaultCard = output<boolean>();\n\n // STATE\n public useDefaultCardCtrl = new FormControl(false);\n private readonly destroyRef = inject(DestroyRef);\n\n public ngOnInit(): void {\n this.useDefaultCardCtrl.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(value => {\n this.useDefaultCard.emit(!!value);\n });\n }\n\n public onDigitalWalletSubmitted(data: BraintreePayload): void {\n console.log('EMIT BRAINTREE SUBMIT', data);\n this.braintreePayload.emit(data);\n }\n\n public onCancel() {\n this.cancelClick.emit();\n }\n}\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './braintree.component';\nexport * from './types';\n","import { computed, Directive, effect, input, untracked } from '@angular/core';\nimport { hlm, injectCustomClassSettable } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\nexport const hlmDialogOverlayClass =\n 'bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0';\n\n@Directive({\n selector: '[hlmDialogOverlay],brn-dialog-overlay[hlm]',\n})\nexport class HlmDialogOverlay {\n private readonly _classSettable = injectCustomClassSettable({ optional: true, host: true });\n\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => hlm(hlmDialogOverlayClass, this.userClass()));\n\n constructor() {\n effect(() => {\n const newClass = this._computedClass();\n untracked(() => this._classSettable?.setClassToCustomElement(newClass));\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, forwardRef, ViewEncapsulation } from '@angular/core';\nimport { BrnDialog, BrnDialogOverlay, provideBrnDialogDefaultOptions } from '@spartan-ng/brain/dialog';\nimport { HlmDialogOverlay } from './hlm-dialog-overlay';\n\n@Component({\n selector: 'hlm-dialog',\n\n imports: [BrnDialogOverlay, HlmDialogOverlay],\n providers: [\n {\n provide: BrnDialog,\n useExisting: forwardRef(() => HlmDialog),\n },\n provideBrnDialogDefaultOptions({\n hasBackdrop: true,\n disableClose: false,\n closeOnBackdropClick: true,\n closeOnOutsidePointerEvents: true,\n scrollStrategy: 'reposition',\n attachPositions: [{ originX: 'center', originY: 'center', overlayX: 'center', overlayY: 'center' }],\n }),\n ],\n template: `\n <brn-dialog-overlay hlm />\n <ng-content />\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'hlmDialog',\n})\nexport class HlmDialog extends BrnDialog {}\n","import { computed, Directive, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmDialogClose],[brnDialogClose][hlm]',\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmDialogClose {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(() =>\n hlm(\n 'absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground',\n this.userClass()\n )\n );\n}\n","import { InjectionToken, ValueProvider, inject } from '@angular/core';\nimport type { IconSize } from './hlm-icon';\n\nexport interface HlmIconConfig {\n size: IconSize;\n}\n\nconst defaultConfig: HlmIconConfig = {\n size: 'base',\n};\n\nconst HlmIconConfigToken = new InjectionToken<HlmIconConfig>('HlmIconConfig');\n\nexport function provideHlmIconConfig(config: Partial<HlmIconConfig>): ValueProvider {\n return { provide: HlmIconConfigToken, useValue: { ...defaultConfig, ...config } };\n}\n\nexport function injectHlmIconConfig(): HlmIconConfig {\n return inject(HlmIconConfigToken, { optional: true }) ?? defaultConfig;\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { injectHlmIconConfig } from './hlm-icon.token';\n\nexport type IconSize = 'xs' | 'sm' | 'base' | 'lg' | 'xl' | 'none' | (Record<never, never> & string);\n\n@Directive({\n selector: 'ng-icon[hlm]',\n standalone: true,\n host: {\n '[style.--ng-icon__size]': '_computedSize()',\n },\n})\nexport class HlmIcon {\n private readonly _config = injectHlmIconConfig();\n public readonly size = input<IconSize>(this._config.size);\n\n protected readonly _computedSize = computed(() => {\n const size = this.size();\n\n switch (size) {\n case 'xs':\n return '12px';\n case 'sm':\n return '16px';\n case 'base':\n return '24px';\n case 'lg':\n return '32px';\n case 'xl':\n return '48px';\n default: {\n return size;\n }\n }\n });\n}\n","import { NgModule } from '@angular/core';\nimport { HlmIcon } from './lib/hlm-icon';\n\nexport * from './lib/hlm-icon';\nexport * from './lib/hlm-icon.token';\n\n@NgModule({\n imports: [HlmIcon],\n exports: [HlmIcon],\n})\nexport class HlmIconModule {}\n","import { NgComponentOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideX } from '@ng-icons/lucide';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnDialogClose, BrnDialogRef, injectBrnDialogContext } from '@spartan-ng/brain/dialog';\nimport type { ClassValue } from 'clsx';\nimport { HlmIcon } from '../../../../../icon/lib/ui-icon-helm/src';\nimport { HlmDialogClose } from './hlm-dialog-close';\n\n@Component({\n selector: 'hlm-dialog-content',\n\n imports: [NgComponentOutlet, BrnDialogClose, HlmDialogClose, NgIcon, HlmIcon],\n providers: [provideIcons({ lucideX })],\n host: {\n '[class]': '_computedClass()',\n '[attr.data-state]': 'state()',\n },\n template: `\n @if (component) {\n <ng-container [ngComponentOutlet]=\"component\" [ngComponentOutletInputs]=\"componentInputs()\" />\n } @else {\n <ng-content />\n }\n\n <button brnDialogClose class=\"animated-button\" hlm>\n <span class=\"sr-only\">Close</span>\n <ng-icon hlm name=\"lucideX\" size=\"sm\" />\n </button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class HlmDialogContent {\n private readonly _dialogRef = inject(BrnDialogRef);\n private readonly _dialogContext = injectBrnDialogContext({ optional: true });\n\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n public readonly state = computed(() => this._dialogRef?.state() ?? 'closed');\n public readonly componentInputs = computed(() => {\n const { $component, $dynamicComponentClass, close, ...rest } = this._dialogContext;\n return rest;\n });\n protected readonly _computedClass = computed(() =>\n hlm(\n 'border-border grid w-full max-w-lg relative gap-4 border bg-white p-6 shadow-lg [animation-duration:200] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-top-[2%] data-[state=open]:slide-in-from-top-[2%] rounded-lg md:w-full',\n this.userClass(),\n this._dynamicComponentClass\n )\n );\n\n public readonly component = this._dialogContext?.$component;\n private readonly _dynamicComponentClass = this._dialogContext?.$dynamicComponentClass;\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnDialogDescription } from '@spartan-ng/brain/dialog';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmDialogDescription]',\n\n host: {\n '[class]': '_computedClass()',\n },\n hostDirectives: [BrnDialogDescription],\n})\nexport class HlmDialogDescription {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => hlm('text-sm text-muted-foreground', this.userClass()));\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n selector: 'hlm-dialog-footer',\n\n template: ` <ng-content /> `,\n host: {\n '[class]': '_computedClass()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmDialogFooter {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected _computedClass = computed(() =>\n hlm('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', this.userClass())\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n selector: 'hlm-dialog-header',\n\n template: ` <ng-content /> `,\n host: {\n '[class]': '_computedClass()',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmDialogHeader {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected _computedClass = computed(() =>\n hlm('flex flex-col space-y-1.5 text-center sm:text-left', this.userClass())\n );\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnDialogTitle } from '@spartan-ng/brain/dialog';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmDialogTitle]',\n\n host: {\n '[class]': '_computedClass()',\n },\n hostDirectives: [BrnDialogTitle],\n})\nexport class HlmDialogTitle {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm('text-lg font-semibold leading-none tracking-tight', this.userClass())\n );\n}\n","import type { ComponentType } from '@angular/cdk/portal';\nimport { inject, Injectable, signal, type TemplateRef } from '@angular/core';\nimport {\n BrnDialog,\n type BrnDialogOptions,\n BrnDialogRef,\n BrnDialogService,\n cssClassesToArray,\n DEFAULT_BRN_DIALOG_OPTIONS,\n} from '@spartan-ng/brain/dialog';\nimport { HlmDialogContent } from './hlm-dialog-content';\nimport { hlmDialogOverlayClass } from './hlm-dialog-overlay';\n\nexport type HlmDialogOptions<DialogContext = unknown> = BrnDialogOptions & {\n contentClass?: string;\n context?: DialogContext;\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HlmDialogService {\n public ref = signal<BrnDialogRef<any> | null>(null);\n public component = signal<BrnDialog | null>(null);\n private readonly _brnDialogService = inject(BrnDialogService);\n\n public open(\n component: ComponentType<unknown> | TemplateRef<unknown>,\n options?: Partial<HlmDialogOptions>\n ): { reference: BrnDialogRef<any>; component: ComponentType<unknown> | TemplateRef<unknown> } {\n if (options) {\n options.panelClass = 'dialog-overlay-margin';\n } else {\n options = { panelClass: 'dialog-overlay-margin' };\n }\n\n const mergedOptions = {\n ...DEFAULT_BRN_DIALOG_OPTIONS,\n ...options,\n backdropClass: cssClassesToArray(`${hlmDialogOverlayClass} ${options?.backdropClass ?? ''} dialog-container`),\n context: {\n ...(typeof options?.context === 'object' && options?.context !== null ? options.context : {}),\n $component: component,\n $dynamicComponentClass: options?.contentClass,\n },\n };\n const reference = this._brnDialogService.open(HlmDialogContent, undefined, mergedOptions.context, mergedOptions);\n this.ref.set(reference);\n return { reference, component };\n }\n\n public close(): void {\n if (!this.ref()) {\n return;\n }\n\n this.ref()?.close();\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { HlmDialog } from './lib/hlm-dialog';\nimport { HlmDialogClose } from './lib/hlm-dialog-close';\nimport { HlmDialogContent } from './lib/hlm-dialog-content';\nimport { HlmDialogDescription } from './lib/hlm-dialog-description';\nimport { HlmDialogFooter } from './lib/hlm-dialog-footer';\nimport { HlmDialogHeader } from './lib/hlm-dialog-header';\nimport { HlmDialogOverlay } from './lib/hlm-dialog-overlay';\nimport { HlmDialogTitle } from './lib/hlm-dialog-title';\n\nexport * from './lib/hlm-dialog';\nexport * from './lib/hlm-dialog-close';\nexport * from './lib/hlm-dialog-content';\nexport * from './lib/hlm-dialog-description';\nexport * from './lib/hlm-dialog-footer';\nexport * from './lib/hlm-dialog-header';\nexport * from './lib/hlm-dialog-overlay';\nexport * from './lib/hlm-dialog-title';\nexport * from './lib/hlm-dialog.service';\n\nexport const HlmDialogImports = [\n HlmDialog,\n HlmDialogClose,\n HlmDialogContent,\n HlmDialogDescription,\n HlmDialogFooter,\n HlmDialogHeader,\n HlmDialogOverlay,\n HlmDialogTitle,\n] as const;\n\n@NgModule({\n // imports: [...HlmDialogImports],\n // exports: [...HlmDialogImports],\n})\nexport class HlmDialogModule {}\n","<hlm-dialog #dialogRef>\n <hlm-dialog-content *hlmDialogContent=\"let ctx\" class=\"dialog-content\" />\n</hlm-dialog>\n","import { ChangeDetectionStrategy, Component, effect, inject, viewChild } from '@angular/core';\nimport { BrnDialog } from '@spartan-ng/brain/dialog';\nimport { HlmDialog, HlmDialogContent, HlmDialogService } from './libs/ui-dialog-helm/src';\n\n@Component({\n selector: 'sdc-dialog',\n imports: [HlmDialogContent, HlmDialog],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './dialog.component.html',\n})\nexport class DialogComponent {\n public dialogService = inject(HlmDialogService);\n public dialogComponent = viewChild(BrnDialog);\n\n public constructor() {\n effect(() => {\n this.dialogService.component.set(this.dialogComponent() ?? null);\n });\n }\n}\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './dialog.component';\nexport { HlmDialogService as DialogService } from './libs/ui-dialog-helm/src/lib/hlm-dialog.service';\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sdc-drawer',\n standalone: true,\n templateUrl: './drawer.component.html',\n})\nexport class DrawerComponent {}\n","<div>drawer component!</div>\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DrawerService {\n constructor() {}\n}\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './drawer.component';\nexport * from './drawer.service';\n","@if (svgContent(); as content) {\n <span class=\"inline-block app-svg-icon\" [innerHTML]=\"content\"></span>\n}\n","import { HttpClient } from '@angular/common/http';\nimport {\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n inject,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { map, Observable, shareReplay } from 'rxjs';\n\n@Component({\n selector: 'sdc-svg-icon',\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'className()',\n },\n})\nexport class SvgIconComponent {\n // DI\n private readonly http = inject(HttpClient);\n private readonly cache = new Map<string, Observable<string>>();\n private readonly sanitizer = inject(DomSanitizer);\n private readonly elementRef = inject(ElementRef);\n\n // INPUTS / OUTPUTS\n public readonly name = input.required<string>();\n public readonly iconFolder = input<string>();\n public readonly className = input<string>('');\n public readonly color = input<string>('currentColor');\n public readonly strokeWidth = input<number>(1);\n\n // STATE\n public readonly svgContent = signal<SafeHtml | null>(null);\n\n public constructor() {\n effect(() => {\n this.getIcon(this.name()).subscribe({\n next: svg => {\n const element = this.elementRef.nativeElement as HTMLElement;\n\n // Apply dynamic properties\n element.style.setProperty('--icon-color', this.color());\n element.style.setProperty('--icon-stroke-width', this.strokeWidth().toString());\n\n this.svgContent.set(this.sanitizer.bypassSecurityTrustHtml(svg));\n },\n error: (error: unknown) => {\n console.error('Failed to load icon:', error);\n // Optional: set a minimal fallback SVG or clear content\n this.svgContent.set(\n this.sanitizer.bypassSecurityTrustHtml(\n `<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 8v4m0 4h.01\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\"/></svg>`\n )\n );\n },\n });\n });\n }\n\n public getIcon(name: string): Observable<string> {\n if (!this.cache.has(name)) {\n const folder = this.iconFolder() ?? 'assets';\n const icon$ = this.http.get(`/${folder}/${name}.svg`, { responseType: 'text' }).pipe(\n map(svg => this.sanitizeSvg(svg)),\n shareReplay({ bufferSize: 1, refCount: true })\n );\n\n this.cache.set(name, icon$);\n }\n\n return this.cache.get(name)!;\n }\n\n private sanitizeSvg(svg: string): string {\n // Remove any existing width/height attributes to make the SVG more flexible\n return svg.replace(/width=\"([^\"]+)\"/, '').replace(/height=\"([^\"]+)\"/, '');\n }\n}\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './icon.component';\n","import { computed, Directive, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: 'hlm-select, brn-select [hlm]',\n\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmSelect {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => hlm(this.userClass()));\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, computed, Directive, input } from '@angular/core';\nimport { hlm, injectExposedSideProvider, injectExposesStateProvider } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmSelectContent], hlm-select-content',\n\n host: {\n '[class]': '_computedClass()',\n '[attr.data-state]': '_stateProvider?.state() ?? \"open\"',\n '[attr.data-side]': '_sideProvider?.side() ?? \"bottom\"',\n },\n})\nexport class HlmSelectContent {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n public readonly stickyLabels = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n protected readonly _stateProvider = injectExposesStateProvider({ optional: true });\n protected readonly _sideProvider = injectExposedSideProvider({ optional: true });\n\n protected readonly _computedClass = computed(() =>\n hlm(\n 'w-full relative z-50 min-w-[8rem] overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-md p-1 data-[side=bottom]:top-[2px] data-[side=top]:bottom-[2px] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n this.userClass()\n )\n );\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnSelectGroup } from '@spartan-ng/brain/select';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmSelectGroup], hlm-select-group',\n\n hostDirectives: [BrnSelectGroup],\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmSelectGroup {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => hlm(this.userClass()));\n}\n","import { computed, Directive, inject, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnSelectLabel } from '@spartan-ng/brain/select';\nimport type { ClassValue } from 'clsx';\nimport { HlmSelectContent } from './hlm-select-content';\n\n@Directive({\n selector: '[hlmSelectLabel], hlm-select-label',\n\n hostDirectives: [BrnSelectLabel],\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmSelectLabel {\n private readonly _selectContent = inject(HlmSelectContent);\n private readonly _stickyLabels = computed(() => this._selectContent.stickyLabels());\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm(\n 'text-muted-foreground px-2 py-1.5 text-xs',\n this._stickyLabels() ? 'sticky top-0 bg-popover block z-[2]' : '',\n this.userClass()\n )\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideCheck } from '@ng-icons/lucide';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnSelectOption } from '@spartan-ng/brain/select';\nimport type { ClassValue } from 'clsx';\nimport { HlmIcon } from '../../icon/lib/ui-icon-helm/src';\n\n@Component({\n selector: 'hlm-option',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [{ directive: BrnSelectOption, inputs: ['disabled', 'value'] }],\n providers: [provideIcons({ lucideCheck })],\n host: {\n '[class]': '_computedClass()',\n },\n template: `\n <span class=\"absolute right-2 flex size-3.5 items-center justify-center\">\n @if (this._brnSelectOption.selected()) {\n <ng-icon aria-hidden=\"true\" hlm name=\"lucideCheck\" size=\"sm\" />\n }\n </span>\n\n <ng-content />\n `,\n imports: [NgIcon, HlmIcon],\n})\nexport class HlmSelectOption {\n protected readonly _brnSelectOption = inject(BrnSelectOption, { host: true });\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm(\n 'overflow-hidden text-ellipsis whitespace-nowrap hover:bg-accent data-[active]:bg-accent data-[active]:text-white [&>ng-icon]:text-white relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>ng-icon]:pointer-events-none [&>ng-icon]:shrink-0 [&>ng-icon]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2',\n this.userClass()\n )\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown } from '@ng-icons/lucide';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { ClassValue } from 'clsx';\nimport { HlmIcon } from '../../icon/lib/ui-icon-helm/src';\n\n@Component({\n selector: 'hlm-select-scroll-down',\n\n imports: [NgIcon, HlmIcon],\n providers: [provideIcons({ lucideChevronDown })],\n host: {\n '[class]': '_computedClass()',\n },\n template: ` <ng-icon class=\"ml-2\" hlm name=\"lucideChevronDown\" size=\"sm\" /> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmSelectScrollDown {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm('flex cursor-default items-center justify-center py-1', this.userClass())\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronUp } from '@ng-icons/lucide';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { ClassValue } from 'clsx';\nimport { HlmIcon } from '../../icon/lib/ui-icon-helm/src';\n\n@Component({\n selector: 'hlm-select-scroll-up',\n imports: [NgIcon, HlmIcon],\n providers: [provideIcons({ lucideChevronUp })],\n host: {\n '[class]': '_computedClass()',\n },\n template: ` <ng-icon class=\"ml-2\" hlm name=\"lucideChevronUp\" size=\"sm\" /> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmSelectScrollUp {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm('flex cursor-default items-center justify-center py-1', this.userClass())\n );\n}\n","import { ChangeDetectionStrategy, Component, computed, contentChild, inject, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown } from '@ng-icons/lucide';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnSelect, BrnSelectTrigger } from '@spartan-ng/brain/select';\nimport { cva } from 'class-variance-authority';\nimport type { ClassValue } from 'clsx';\nimport { HlmIcon } from '../../icon/lib/ui-icon-helm/src';\n\nexport const selectTriggerVariants = cva(\n `border-input [&>ng-icon]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 dark:bg-input/30 dark:hover:bg-input/50 flex w-full items-center justify-between gap-2 rounded-3xl border bg-transparent px-3 py-1.5 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-6 [&>ng-icon]:pointer-events-none [&>ng-icon]:shrink-0 [&>ng-icon]:size-4`,\n {\n variants: {\n error: {\n auto: '[&.ng-invalid.ng-touched]:text-destructive [&.ng-invalid.ng-touched]:border-destructive [&.ng-invalid.ng-touched]:focus-visible:ring-destructive/20 dark:[&.ng-invalid.ng-touched]:focus-visible:ring-destructive/40',\n true: 'text-destructive border-destructive focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40',\n },\n },\n defaultVariants: {\n error: 'auto',\n },\n }\n);\n\n@Component({\n selector: 'hlm-select-trigger',\n imports: [BrnSelectTrigger, NgIcon, HlmIcon],\n providers: [provideIcons({ lucideChevronDown })],\n template: `\n <button #button brnSelectTrigger hlmInput type=\"button\" [attr.data-size]=\"size()\" [class]=\"_computedClass()\">\n <ng-content />\n @if (_icon()) {\n <ng-content select=\"ng-icon\" />\n } @else {\n <ng-icon class=\"ml-2 flex-none\" hlm name=\"lucideChevronDown\" size=\"sm\" />\n }\n </button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmSelectTrigger {\n protected readonly _icon = contentChild(HlmIcon);\n\n protected readonly _brnSelect = inject(BrnSelect, { optional: true });\n\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n public readonly size = input<'default' | 'sm'>('default');\n\n protected readonly _computedClass = computed(() =>\n hlm(selectTriggerVariants({ error: this._brnSelect?.errorState() }), this.userClass())\n );\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: 'hlm-select-value,[hlmSelectValue], brn-select-value[hlm]',\n\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmSelectValue {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm('line-clamp-1 flex items-center gap-2 overflow-hidden text-ellipsis', this.userClass())\n );\n}\n","import { NgModule } from '@angular/core';\nimport { HlmSelect } from './hlm-select';\nimport { HlmSelectContent } from './hlm-select-content';\nimport { HlmSelectGroup } from './hlm-select-group';\nimport { HlmSelectLabel } from './hlm-select-label';\nimport { HlmSelectOption } from './hlm-select-option';\nimport { HlmSelectScrollDown } from './hlm-select-scroll-down';\nimport { HlmSelectScrollUp } from './hlm-select-scroll-up';\nimport { HlmSelectTrigger } from './hlm-select-trigger';\nimport { HlmSelectValue } from './hlm-select-value';\n\nexport * from './hlm-select';\nexport * from './hlm-select-content';\nexport * from './hlm-select-group';\nexport * from './hlm-select-label';\nexport * from './hlm-select-option';\nexport * from './hlm-select-scroll-down';\nexport * from './hlm-select-scroll-up';\nexport * from './hlm-select-trigger';\nexport * from './hlm-select-value';\n\nexport const HlmSelectImports = [\n HlmSelectContent,\n HlmSelectTrigger,\n HlmSelectOption,\n HlmSelectValue,\n HlmSelect,\n HlmSelectScrollUp,\n HlmSelectScrollDown,\n HlmSelectLabel,\n HlmSelectGroup,\n] as const;\n\n@NgModule({\n imports: [...HlmSelectImports],\n exports: [...HlmSelectImports],\n})\nexport class HlmSelectModule {}\n","<hlm-select class=\"select-root\" [placeholder]=\"placeholder()\" (valueChange)=\"valueChange.emit($event)\">\n <hlm-select-trigger class=\"select-trigger select-trigger--sm\" size=\"sm\" [ngClass]=\"variantClasses\">\n <hlm-select-value [ngClass]=\"variantClasses\" />\n </hlm-select-trigger>\n\n <hlm-select-trigger class=\"select-trigger select-trigger--lg\" size=\"default\" [ngClass]=\"variantClasses\">\n <hlm-select-value [ngClass]=\"variantClasses\" />\n </hlm-select-trigger>\n\n <hlm-select-content [class]=\"fullWidth() ? 'full-width' : ''\" [ngClass]=\"variantClasses\">\n @for (option of options(); track idx + option.label; let idx = $index) {\n <hlm-option [ngClass]=\"variantClasses\" [value]=\"option.value\">{{ option.label }}</hlm-option>\n }\n </hlm-select-content>\n</hlm-select>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { BrnSelectImports } from '@spartan-ng/brain/select';\nimport { HlmSelectImports } from './lib';\nimport { SelectOptions } from './types';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'sdc-select',\n imports: [CommonModule, BrnSelectImports, HlmSelectImports],\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.css'],\n})\nexport class SelectComponent {\n public placeholder = input('');\n public variant = input('light');\n public options = input.required<SelectOptions[]>();\n public fullWidth = input(false);\n public readonly valueChange = output<Event>();\n\n protected get variantClasses(): string {\n return this.variant() === 'dark' ? 'bg-black text-white' : 'bg-white text-black';\n }\n}\n","/**\n * Declares CSS variables globally based on the 'theme' and 'dvmStyles' property of the configuration.\n */\nexport function declareGlobalCssVariables(configuration: Record<string, string>, document: Document): void {\n const root: HTMLElement | null = document.querySelector(':root');\n\n if (root) {\n const theme = configuration.theme;\n const mergedStyles = Object.assign({}, theme);\n\n for (const [key, value] of Object.entries(mergedStyles)) {\n if (typeof value === 'string') {\n root.style.setProperty('--' + key, value);\n }\n }\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { NgSdComponentsConfig } from '../types';\n\nexport const NG_SD_COMPONENTS_CONFIG = new InjectionToken<NgSdComponentsConfig>('NgSdComponentsConfig');\n","import { CurrencyPipe, DatePipe } from '@angular/common';\nimport { Provider } from '@angular/core';\nimport { provideAnimationsAsync } from '@angular/platform-browser/animations/async';\nimport { NgSdComponentsConfig } from '../types';\nimport { NG_SD_COMPONENTS_CONFIG } from './config-token';\n\n/**\n * Provides all necessary dependencies for the library:\n * - Angular Pipes (`DatePipe`, `CurrencyPipe`)\n * - Animations\n * - CommonModule\n */\nexport function provideSdc(config?: NgSdComponentsConfig): Provider[] {\n // const preset = config?.theme === 'generic' ? GenericTheme : Aura;\n // if config.theme is generic, pass a theme, otherwise, pass another theme\n const providers = [\n DatePipe,\n CurrencyPipe,\n { provide: NG_SD_COMPONENTS_CONFIG, useValue: config ?? 'generic' },\n provideAnimationsAsync() as unknown as Provider,\n ];\n\n return [...providers];\n}\n","import { computed, Signal, signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { fromEvent, startWith } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Size, SIZE_ORDER } from '../../types/sizes.type';\n\nexport class ScreenObserver {\n // SIGNALS\n private readonly _size = signal<Size>('md');\n\n // CLASS PROPERTIES\n private readonly breakpoints: Record<Size, number>;\n public readonly size: Signal<Size> = this._size;\n public readonly index!: Signal<number>;\n\n public constructor(screens: Record<Partial<Size>, string>) {\n this.breakpoints = Object.fromEntries(\n Object.entries(screens).map(([k, v]) => [k, Number(v.replace('px', ''))])\n ) as Record<Size, number>;\n\n const resize$ = fromEvent(window, 'resize').pipe(\n startWith(null),\n map(() => this.getSize())\n );\n\n this.size = toSignal(resize$, { initialValue: this.getSize() });\n this.index = computed(() => SIZE_ORDER.indexOf(this.size()));\n }\n\n public getSize(): Size {\n const w = window.innerWidth;\n if (w >= this.breakpoints?.['2xl']) return '2xl';\n if (w >= this.breakpoints?.['xl']) return 'xl';\n if (w >= this.breakpoints?.['lg']) return 'lg';\n if (w >= this.breakpoints?.['md']) return 'md';\n if (w >= this.breakpoints?.['sm']) return 'sm';\n if (w >= this.breakpoints?.['xs']) return 'xs';\n return 'xxs';\n }\n\n public isBiggerThan(screen: Size): boolean {\n return window.innerWidth >= this.breakpoints?.[screen];\n }\n\n public isSmallerThan(screen: Size): boolean {\n return window.innerWidth < this.breakpoints?.[screen];\n }\n\n public isBiggerThan$(screen: Size): boolean {\n return this.index() >= SIZE_ORDER.indexOf(screen);\n }\n\n public isSmallerThan$(screen: Size): boolean {\n return this.index() < SIZE_ORDER.indexOf(screen);\n }\n}\n","// screen-helper.providers.ts\nimport { InjectionToken, Provider } from '@angular/core';\nimport { Size } from '../../types/sizes.type';\nimport { ScreenObserver } from './screen-observer';\n\nexport const SCREENS_TOKEN = new InjectionToken<Record<Size, string>>('SCREENS_TOKEN');\n\nexport function provideScreenObserver(screens: Record<Size, string>): Provider[] {\n return [\n { provide: SCREENS_TOKEN, useValue: screens },\n {\n provide: ScreenObserver,\n deps: [SCREENS_TOKEN],\n useFactory: (cfg: Record<Size, string>) => new ScreenObserver(cfg),\n },\n ];\n}\n","// NOTE: This will determine what is publicly available from within the library to application consumers\n// Be careful with what you expose\n\nexport * from './backoffice';\nexport * from './dvm';\nexport * from './generic';\nexport { declareGlobalCssVariables } from './shared/declare-theme-variables';\nexport { provideSdc } from './shared/lib-provider';\nexport { provideScreenObserver, ScreenObserver, type SCREENS_TOKEN } from './shared/screen-observer';\nexport type * from './shared/types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["defaultConfig","HlmIconConfigToken","provideHlmIconConfig","injectHlmIconConfig","HlmIcon","HlmIconModule","_forTrack0","getDefaultConfig","provideHlmDatePickerConfig","_c0","takeUntil","i1.HlmButton","i1.HlmIcon","i1.HlmTable","i1.HlmTBody","i1.HlmTd","i1.HlmTh","i1.HlmTHead","i1.HlmTr","i1","i2","i3.HlmSelectContent","i4.HlmSelectTrigger","i5.HlmSelectOption","i6.HlmSelectValue","i7.HlmSelect","map"],"mappings":"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"}
|