@design-factory/angular 21.1.0 → 22.0.0-next.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/.ai/docs/components/accordion/accessibility.md +45 -0
- package/.ai/docs/components/accordion/api.md +279 -0
- package/.ai/docs/components/accordion/developer.md +43 -0
- package/.ai/docs/components/accordion/guidelines.md +99 -0
- package/.ai/docs/components/accordion/overview.md +17 -0
- package/.ai/docs/components/alert/accessibility.md +24 -0
- package/.ai/docs/components/alert/api.md +65 -0
- package/.ai/docs/components/alert/developer.md +63 -0
- package/.ai/docs/components/alert/guidelines.md +62 -0
- package/.ai/docs/components/alert/overview.md +12 -0
- package/.ai/docs/components/button/accessibility.md +25 -0
- package/.ai/docs/components/button/api.md +71 -0
- package/.ai/docs/components/button/developer.md +52 -0
- package/.ai/docs/components/button/guidelines.md +75 -0
- package/.ai/docs/components/button/overview.md +15 -0
- package/.ai/docs/components/buttongroup/api.md +16 -0
- package/.ai/docs/components/buttongroup/developer.md +32 -0
- package/.ai/docs/components/drawer/accessibility.md +15 -0
- package/.ai/docs/components/drawer/api.md +56 -0
- package/.ai/docs/components/drawer/developer.md +36 -0
- package/.ai/docs/components/drawer/examples.md +9 -0
- package/.ai/docs/components/drawer/guidelines.md +58 -0
- package/.ai/docs/components/drawer/overview.md +19 -0
- package/.ai/docs/components/dropdown/accessibility.md +27 -0
- package/.ai/docs/components/dropdown/api.md +85 -0
- package/.ai/docs/components/dropdown/developer.md +59 -0
- package/.ai/docs/components/dropdown/guidelines.md +80 -0
- package/.ai/docs/components/dropdown/overview.md +16 -0
- package/.ai/docs/components/sidenav/accessibility.md +48 -0
- package/.ai/docs/components/sidenav/api.md +110 -0
- package/.ai/docs/components/sidenav/developer.md +14 -0
- package/.ai/docs/components/sidenav/guidelines.md +83 -0
- package/.ai/docs/components/sidenav/overview.md +16 -0
- package/.ai/docs/components/tooltip/accessibility.md +11 -0
- package/.ai/docs/components/tooltip/api.md +39 -0
- package/.ai/docs/components/tooltip/developer.md +16 -0
- package/.ai/docs/components/tooltip/guidelines.md +84 -0
- package/.ai/docs/components/tooltip/overview.md +23 -0
- package/.ai/docs/components/topnav/accessibility.md +51 -0
- package/.ai/docs/components/topnav/api.md +190 -0
- package/.ai/docs/components/topnav/developer.md +43 -0
- package/.ai/docs/components/topnav/guidelines.md +121 -0
- package/.ai/docs/components/topnav/overview.md +17 -0
- package/.ai/docs/demos/accordion/addons-subtitle/accordion-addons-subtitle.html +75 -0
- package/.ai/docs/demos/accordion/addons-subtitle/accordion-addons-subtitle.ts +27 -0
- package/.ai/docs/demos/accordion/basic/accordion-basic.html +16 -0
- package/.ai/docs/demos/accordion/basic/accordion-basic.ts +14 -0
- package/.ai/docs/demos/accordion/close-others/accordion-close-others.html +16 -0
- package/.ai/docs/demos/accordion/close-others/accordion-close-others.ts +14 -0
- package/.ai/docs/demos/accordion/interactive/accordion-interactive.html +84 -0
- package/.ai/docs/demos/accordion/interactive/accordion-interactive.ts +30 -0
- package/.ai/docs/demos/accordion/interactive-addons-subtitle/accordion-interactive-addons-subtitle.html +126 -0
- package/.ai/docs/demos/accordion/interactive-addons-subtitle/accordion-interactive-addons-subtitle.ts +33 -0
- package/.ai/docs/demos/accordion/programmatic-control/accordion-programmatic-control.html +36 -0
- package/.ai/docs/demos/accordion/programmatic-control/accordion-programmatic-control.ts +15 -0
- package/.ai/docs/demos/accordion/selectable/accordion-selectable.html +16 -0
- package/.ai/docs/demos/accordion/selectable/accordion-selectable.ts +14 -0
- package/.ai/docs/demos/accordion/selectable-extended/accordion-selectable-extended.html +28 -0
- package/.ai/docs/demos/accordion/selectable-extended/accordion-selectable-extended.ts +80 -0
- package/.ai/docs/demos/accordion/separator/accordion-separator.html +16 -0
- package/.ai/docs/demos/accordion/separator/accordion-separator.ts +14 -0
- package/.ai/docs/demos/alert/banner/alert-banner.html +15 -0
- package/.ai/docs/demos/alert/banner/alert-banner.ts +16 -0
- package/.ai/docs/demos/alert/basic/alert-basic.html +6 -0
- package/.ai/docs/demos/alert/basic/alert-basic.ts +9 -0
- package/.ai/docs/demos/alert/card/alert-card.html +15 -0
- package/.ai/docs/demos/alert/card/alert-card.ts +9 -0
- package/.ai/docs/demos/alert/dismissal/alert-dismissal.html +5 -0
- package/.ai/docs/demos/alert/dismissal/alert-dismissal.ts +27 -0
- package/.ai/docs/demos/alert/expandable/alert-expandable.html +9 -0
- package/.ai/docs/demos/alert/expandable/alert-expandable.ts +11 -0
- package/.ai/docs/demos/button/basic/button-basic.html +4 -0
- package/.ai/docs/demos/button/basic/button-basic.ts +9 -0
- package/.ai/docs/demos/button/disabled/button-disabled.html +18 -0
- package/.ai/docs/demos/button/disabled/button-disabled.ts +12 -0
- package/.ai/docs/demos/button/icons/button-icons.html +17 -0
- package/.ai/docs/demos/button/icons/button-icons.ts +10 -0
- package/.ai/docs/demos/button/surfaces/button-surfaces.html +13 -0
- package/.ai/docs/demos/button/surfaces/button-surfaces.ts +9 -0
- package/.ai/docs/demos/button/variants/button-variants.html +49 -0
- package/.ai/docs/demos/button/variants/button-variants.ts +9 -0
- package/.ai/docs/demos/buttongroup/basic/buttongroup-basic.html +6 -0
- package/.ai/docs/demos/buttongroup/basic/buttongroup-basic.ts +10 -0
- package/.ai/docs/demos/buttongroup/disabled/buttongroup-disabled.html +6 -0
- package/.ai/docs/demos/buttongroup/disabled/buttongroup-disabled.ts +10 -0
- package/.ai/docs/demos/buttongroup/mirror/buttongroup-mirror.html +8 -0
- package/.ai/docs/demos/buttongroup/mirror/buttongroup-mirror.ts +10 -0
- package/.ai/docs/demos/buttongroup/orientation/buttongroup-orientation.html +19 -0
- package/.ai/docs/demos/buttongroup/orientation/buttongroup-orientation.ts +10 -0
- package/.ai/docs/demos/buttongroup/sizing/buttongroup-sizing.html +19 -0
- package/.ai/docs/demos/buttongroup/sizing/buttongroup-sizing.ts +10 -0
- package/.ai/docs/demos/drawer/inline/drawer-inline-basic.html +46 -0
- package/.ai/docs/demos/drawer/inline/drawer-inline-basic.ts +33 -0
- package/.ai/docs/demos/drawer/overlay/drawer-overlay-basic.html +30 -0
- package/.ai/docs/demos/drawer/overlay/drawer-overlay-basic.ts +25 -0
- package/.ai/docs/demos/dropdown/basic/dropdown-basic.html +8 -0
- package/.ai/docs/demos/dropdown/basic/dropdown-basic.ts +15 -0
- package/.ai/docs/demos/dropdown/sizes/dropdown-sizes.html +9 -0
- package/.ai/docs/demos/dropdown/sizes/dropdown-sizes.ts +21 -0
- package/.ai/docs/demos/dropdown/split/dropdown-split.html +9 -0
- package/.ai/docs/demos/dropdown/split/dropdown-split.ts +11 -0
- package/.ai/docs/demos/dropdown/toggle/dropdown-toggle.html +22 -0
- package/.ai/docs/demos/dropdown/toggle/dropdown-toggle.ts +10 -0
- package/.ai/docs/demos/sidenav/sidenav-basic-no-icon/routes.ts +95 -0
- package/.ai/docs/demos/sidenav/sidenav-basic-no-icon/sidenav-basic-no-icon.html +42 -0
- package/.ai/docs/demos/sidenav/sidenav-basic-no-icon/sidenav-basic-no-icon.ts +12 -0
- package/.ai/docs/demos/sidenav/sidenav-basic-with-icon/routes.ts +41 -0
- package/.ai/docs/demos/sidenav/sidenav-basic-with-icon/sidenav-basic-with-icon.html +34 -0
- package/.ai/docs/demos/sidenav/sidenav-basic-with-icon/sidenav-basic-with-icon.ts +12 -0
- package/.ai/docs/demos/tooltip/basic/tooltip-basic.html +1 -0
- package/.ai/docs/demos/tooltip/basic/tooltip-basic.ts +10 -0
- package/.ai/docs/demos/tooltip/placements/tooltip-placements.html +35 -0
- package/.ai/docs/demos/tooltip/placements/tooltip-placements.ts +12 -0
- package/.ai/docs/demos/tooltip/sizes/tooltip-sizes.html +5 -0
- package/.ai/docs/demos/tooltip/sizes/tooltip-sizes.ts +10 -0
- package/.ai/docs/demos/topnav/brand/topnav-brand.ts +64 -0
- package/.ai/docs/demos/topnav/environment-banner/topnav-environment-banner.ts +20 -0
- package/.ai/docs/demos/topnav/navigation/routes.ts +35 -0
- package/.ai/docs/demos/topnav/navigation/topnav-navigation-flat.ts +67 -0
- package/.ai/docs/demos/topnav/navigation/topnav-navigation-tree.ts +82 -0
- package/.ai/docs/demos/topnav/quick-actions/notifications.ts +75 -0
- package/.ai/docs/demos/topnav/quick-actions/topnav-quick-actions.ts +108 -0
- package/.ai/docs/demos/topnav/quick-actions/user-account.ts +23 -0
- package/.ai/index.md +26 -0
- package/fesm2022/design-factory-angular-accordion.mjs +1153 -0
- package/fesm2022/design-factory-angular-accordion.mjs.map +1 -0
- package/fesm2022/design-factory-angular-alert.mjs +312 -0
- package/fesm2022/design-factory-angular-alert.mjs.map +1 -0
- package/fesm2022/design-factory-angular-breakpoints.mjs +53 -0
- package/fesm2022/design-factory-angular-breakpoints.mjs.map +1 -0
- package/fesm2022/design-factory-angular-button.mjs +240 -0
- package/fesm2022/design-factory-angular-button.mjs.map +1 -0
- package/fesm2022/design-factory-angular-buttongroup.mjs +75 -0
- package/fesm2022/design-factory-angular-buttongroup.mjs.map +1 -0
- package/fesm2022/design-factory-angular-drawer.mjs +64 -62
- package/fesm2022/design-factory-angular-drawer.mjs.map +1 -1
- package/fesm2022/design-factory-angular-dropdown.mjs +323 -0
- package/fesm2022/design-factory-angular-dropdown.mjs.map +1 -0
- package/fesm2022/design-factory-angular-form-field.mjs +287 -0
- package/fesm2022/design-factory-angular-form-field.mjs.map +1 -0
- package/fesm2022/design-factory-angular-icon.mjs +24 -0
- package/fesm2022/design-factory-angular-icon.mjs.map +1 -0
- package/fesm2022/design-factory-angular-input.mjs +34 -0
- package/fesm2022/design-factory-angular-input.mjs.map +1 -0
- package/fesm2022/design-factory-angular-internals.mjs +119 -39
- package/fesm2022/design-factory-angular-internals.mjs.map +1 -1
- package/fesm2022/design-factory-angular-separator.mjs +43 -0
- package/fesm2022/design-factory-angular-separator.mjs.map +1 -0
- package/fesm2022/design-factory-angular-sidenav.mjs +652 -401
- package/fesm2022/design-factory-angular-sidenav.mjs.map +1 -1
- package/fesm2022/design-factory-angular-slider.mjs +451 -0
- package/fesm2022/design-factory-angular-slider.mjs.map +1 -0
- package/fesm2022/design-factory-angular-theme.mjs +29 -19
- package/fesm2022/design-factory-angular-theme.mjs.map +1 -1
- package/fesm2022/design-factory-angular-toggle.mjs +172 -0
- package/fesm2022/design-factory-angular-toggle.mjs.map +1 -0
- package/fesm2022/design-factory-angular-tooltip.mjs +138 -0
- package/fesm2022/design-factory-angular-tooltip.mjs.map +1 -0
- package/fesm2022/design-factory-angular-topnav.mjs +589 -589
- package/fesm2022/design-factory-angular-topnav.mjs.map +1 -1
- package/package.json +61 -8
- package/schematics/collection.json +35 -0
- package/schematics/component-migration/accordion/constants.d.ts +10 -0
- package/schematics/component-migration/accordion/constants.js +46 -0
- package/schematics/component-migration/accordion/guide.md +257 -0
- package/schematics/component-migration/accordion/index.d.ts +2 -0
- package/schematics/component-migration/accordion/index.js +5 -0
- package/schematics/component-migration/accordion/migration.d.ts +2 -0
- package/schematics/component-migration/accordion/migration.js +13 -0
- package/schematics/component-migration/accordion/schema.json +25 -0
- package/schematics/component-migration/accordion/steps/accordion-imports.d.ts +3 -0
- package/schematics/component-migration/accordion/steps/accordion-imports.js +41 -0
- package/schematics/component-migration/accordion/steps/template-migration.d.ts +3 -0
- package/schematics/component-migration/accordion/steps/template-migration.js +554 -0
- package/schematics/component-migration/accordion/steps/title-content.d.ts +9 -0
- package/schematics/component-migration/accordion/steps/title-content.js +75 -0
- package/schematics/component-migration/ai/prompt.md +83 -0
- package/schematics/component-migration/alert/guide.md +246 -0
- package/schematics/component-migration/alert/index.d.ts +2 -0
- package/schematics/component-migration/alert/index.js +5 -0
- package/schematics/component-migration/alert/migration.d.ts +2 -0
- package/schematics/component-migration/alert/migration.js +50 -0
- package/schematics/component-migration/alert/schema.json +25 -0
- package/schematics/component-migration/alert/steps/alert-imports.d.ts +4 -0
- package/schematics/component-migration/alert/steps/alert-imports.js +97 -0
- package/schematics/component-migration/alert/steps/animation-input.d.ts +3 -0
- package/schematics/component-migration/alert/steps/animation-input.js +17 -0
- package/schematics/component-migration/alert/steps/close-output.d.ts +3 -0
- package/schematics/component-migration/alert/steps/close-output.js +17 -0
- package/schematics/component-migration/alert/steps/icon-directive-imports.d.ts +3 -0
- package/schematics/component-migration/alert/steps/icon-directive-imports.js +84 -0
- package/schematics/component-migration/alert/steps/icon-directive.d.ts +3 -0
- package/schematics/component-migration/alert/steps/icon-directive.js +10 -0
- package/schematics/component-migration/alert/steps/legacy-module-imports.d.ts +3 -0
- package/schematics/component-migration/alert/steps/legacy-module-imports.js +57 -0
- package/schematics/component-migration/alert/steps/programmatic-close.d.ts +3 -0
- package/schematics/component-migration/alert/steps/programmatic-close.js +44 -0
- package/schematics/component-migration/alert/steps/selector.d.ts +3 -0
- package/schematics/component-migration/alert/steps/selector.js +18 -0
- package/schematics/component-migration/alert/steps/static-classes.d.ts +3 -0
- package/schematics/component-migration/alert/steps/static-classes.js +97 -0
- package/schematics/component-migration/alert/steps/static-type.d.ts +3 -0
- package/schematics/component-migration/alert/steps/static-type.js +28 -0
- package/schematics/component-migration/alert/steps/template-reference.d.ts +3 -0
- package/schematics/component-migration/alert/steps/template-reference.js +15 -0
- package/schematics/component-migration/alert/steps/template-todos.d.ts +3 -0
- package/schematics/component-migration/alert/steps/template-todos.js +78 -0
- package/schematics/component-migration/button/guide.md +278 -0
- package/schematics/component-migration/button/index.d.ts +2 -0
- package/schematics/component-migration/button/index.js +5 -0
- package/schematics/component-migration/button/migration.d.ts +2 -0
- package/schematics/component-migration/button/migration.js +180 -0
- package/schematics/component-migration/button/schema.json +25 -0
- package/schematics/component-migration/button/steps/static-classes.d.ts +10 -0
- package/schematics/component-migration/button/steps/static-classes.js +128 -0
- package/schematics/component-migration/button/steps/template-todos.d.ts +19 -0
- package/schematics/component-migration/button/steps/template-todos.js +120 -0
- package/schematics/component-migration/button/types.d.ts +7 -0
- package/schematics/component-migration/button/types.js +2 -0
- package/schematics/component-migration/dropdown/guide.md +252 -0
- package/schematics/component-migration/dropdown/index.d.ts +2 -0
- package/schematics/component-migration/dropdown/index.js +5 -0
- package/schematics/component-migration/dropdown/migration.d.ts +2 -0
- package/schematics/component-migration/dropdown/migration.js +41 -0
- package/schematics/component-migration/dropdown/schema.json +25 -0
- package/schematics/component-migration/dropdown/steps/dropdown-imports.d.ts +3 -0
- package/schematics/component-migration/dropdown/steps/dropdown-imports.js +308 -0
- package/schematics/component-migration/dropdown/steps/template-attributes.d.ts +10 -0
- package/schematics/component-migration/dropdown/steps/template-attributes.js +57 -0
- package/schematics/component-migration/dropdown/steps/template-helpers.d.ts +20 -0
- package/schematics/component-migration/dropdown/steps/template-helpers.js +125 -0
- package/schematics/component-migration/dropdown/steps/template-imports.d.ts +22 -0
- package/schematics/component-migration/dropdown/steps/template-imports.js +12 -0
- package/schematics/component-migration/dropdown/steps/template-items.d.ts +7 -0
- package/schematics/component-migration/dropdown/steps/template-items.js +58 -0
- package/schematics/component-migration/dropdown/steps/template-menu.d.ts +14 -0
- package/schematics/component-migration/dropdown/steps/template-menu.js +107 -0
- package/schematics/component-migration/dropdown/steps/template-todos.d.ts +19 -0
- package/schematics/component-migration/dropdown/steps/template-todos.js +118 -0
- package/schematics/component-migration/dropdown/steps/template-toggle.d.ts +9 -0
- package/schematics/component-migration/dropdown/steps/template-toggle.js +70 -0
- package/schematics/component-migration/dropdown/steps/template-wrapper.d.ts +12 -0
- package/schematics/component-migration/dropdown/steps/template-wrapper.js +105 -0
- package/schematics/component-migration/index.d.ts +3 -0
- package/schematics/component-migration/index.js +26 -0
- package/schematics/component-migration/next-steps/index.d.ts +13 -0
- package/schematics/component-migration/next-steps/index.js +34 -0
- package/schematics/component-migration/registry.d.ts +1 -0
- package/schematics/component-migration/registry.js +15 -0
- package/schematics/component-migration/schema.json +20 -0
- package/schematics/component-migration/shared/ai-handoff.d.ts +2 -0
- package/schematics/component-migration/shared/ai-handoff.js +28 -0
- package/schematics/component-migration/shared/angular-component.d.ts +10 -0
- package/schematics/component-migration/shared/angular-component.js +125 -0
- package/schematics/component-migration/shared/button-visual-classes.d.ts +24 -0
- package/schematics/component-migration/shared/button-visual-classes.js +111 -0
- package/schematics/component-migration/shared/component-context.d.ts +7 -0
- package/schematics/component-migration/shared/component-context.js +24 -0
- package/schematics/component-migration/shared/component-imports.d.ts +45 -0
- package/schematics/component-migration/shared/component-imports.js +380 -0
- package/schematics/component-migration/shared/create-component-schematic.d.ts +3 -0
- package/schematics/component-migration/shared/create-component-schematic.js +55 -0
- package/schematics/component-migration/shared/import-edits.d.ts +11 -0
- package/schematics/component-migration/shared/import-edits.js +157 -0
- package/schematics/component-migration/shared/legacy-config-todos.d.ts +3 -0
- package/schematics/component-migration/shared/legacy-config-todos.js +90 -0
- package/schematics/component-migration/shared/migrate-project.d.ts +12 -0
- package/schematics/component-migration/shared/migrate-project.js +151 -0
- package/schematics/component-migration/shared/project-templates.d.ts +15 -0
- package/schematics/component-migration/shared/project-templates.js +43 -0
- package/schematics/component-migration/shared/scan-project.d.ts +3 -0
- package/schematics/component-migration/shared/scan-project.js +24 -0
- package/schematics/component-migration/shared/static-placement.d.ts +1 -0
- package/schematics/component-migration/shared/static-placement.js +45 -0
- package/schematics/component-migration/shared/template-edits.d.ts +28 -0
- package/schematics/component-migration/shared/template-edits.js +153 -0
- package/schematics/component-migration/shared/template-result.d.ts +3 -0
- package/schematics/component-migration/shared/template-result.js +11 -0
- package/schematics/component-migration/shared/testing.d.ts +13 -0
- package/schematics/component-migration/shared/testing.js +59 -0
- package/schematics/component-migration/shared/todo-comments.d.ts +10 -0
- package/schematics/component-migration/shared/todo-comments.js +81 -0
- package/schematics/component-migration/shared/types.d.ts +41 -0
- package/schematics/component-migration/shared/types.js +2 -0
- package/schematics/component-migration/tooltip/guide.md +196 -0
- package/schematics/component-migration/tooltip/index.d.ts +2 -0
- package/schematics/component-migration/tooltip/index.js +5 -0
- package/schematics/component-migration/tooltip/migration.d.ts +2 -0
- package/schematics/component-migration/tooltip/migration.js +50 -0
- package/schematics/component-migration/tooltip/schema.json +25 -0
- package/schematics/component-migration/tooltip/steps/template-attributes.d.ts +13 -0
- package/schematics/component-migration/tooltip/steps/template-attributes.js +266 -0
- package/schematics/component-migration/tooltip/steps/template-todos.d.ts +24 -0
- package/schematics/component-migration/tooltip/steps/template-todos.js +115 -0
- package/schematics/component-migration/tooltip/steps/tooltip-imports.d.ts +3 -0
- package/schematics/component-migration/tooltip/steps/tooltip-imports.js +79 -0
- package/schematics/component-migration/utils/component-resource-collector.d.ts +34 -0
- package/schematics/component-migration/utils/component-resource-collector.js +107 -0
- package/schematics/component-migration/utils/project_tsconfig_paths.d.ts +18 -0
- package/schematics/component-migration/utils/project_tsconfig_paths.js +105 -0
- package/schematics/component-migration/utils/typescript/compiler_host.d.ts +44 -0
- package/schematics/component-migration/utils/typescript/compiler_host.js +87 -0
- package/schematics/component-migration/utils/typescript/decorators.d.ts +22 -0
- package/schematics/component-migration/utils/typescript/decorators.js +41 -0
- package/schematics/component-migration/utils/typescript/functions.d.ts +14 -0
- package/schematics/component-migration/utils/typescript/functions.js +20 -0
- package/schematics/component-migration/utils/typescript/imports.d.ts +17 -0
- package/schematics/component-migration/utils/typescript/imports.js +110 -0
- package/schematics/component-migration/utils/typescript/parse_tsconfig.d.ts +9 -0
- package/schematics/component-migration/utils/typescript/parse_tsconfig.js +29 -0
- package/schematics/component-migration/utils/typescript/property-name.d.ts +13 -0
- package/schematics/component-migration/utils/typescript/property-name.js +22 -0
- package/schematics/package.json +3 -0
- package/types/design-factory-angular-accordion.d.ts +553 -0
- package/types/design-factory-angular-alert.d.ts +166 -0
- package/types/design-factory-angular-breakpoints.d.ts +13 -0
- package/types/design-factory-angular-button.d.ts +166 -0
- package/types/design-factory-angular-buttongroup.d.ts +45 -0
- package/types/design-factory-angular-drawer.d.ts +10 -16
- package/types/design-factory-angular-dropdown.d.ts +148 -0
- package/types/design-factory-angular-form-field.d.ts +122 -0
- package/types/design-factory-angular-icon.d.ts +11 -0
- package/types/design-factory-angular-input.d.ts +16 -0
- package/types/design-factory-angular-internals.d.ts +78 -19
- package/types/design-factory-angular-separator.d.ts +29 -0
- package/types/design-factory-angular-sidenav.d.ts +98 -14
- package/types/design-factory-angular-slider.d.ts +239 -0
- package/types/design-factory-angular-toggle.d.ts +93 -0
- package/types/design-factory-angular-tooltip.d.ts +113 -0
- package/types/design-factory-angular-topnav.d.ts +35 -47
- package/drawer/README.md +0 -54
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, output, inject, DestroyRef, forwardRef, ViewEncapsulation, Component } from '@angular/core';
|
|
3
|
+
import { AgnosWidgetDirective, callWidgetFactory, useDirectiveForHost, auBooleanAttribute, UseDirective, provideDfComponentConfig, injectDfComponentConfig } from '@design-factory/angular/internals';
|
|
4
|
+
import { createSlider } from '@design-factory/core/components/slider';
|
|
5
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
6
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
7
|
+
|
|
8
|
+
const DF_SLIDER_I18N_DEFAULTS = {
|
|
9
|
+
ariaLabel: () => $localize `:@@df.slider.value:Value`
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Slider component for selecting a single value or a range of values.
|
|
13
|
+
*
|
|
14
|
+
* Supports one or more handles, ticks, value and min/max labels, RTL/flip directions and vertical orientation.
|
|
15
|
+
*
|
|
16
|
+
* @experimental 22.0.0
|
|
17
|
+
*/
|
|
18
|
+
class DfSlider extends AgnosWidgetDirective {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(callWidgetFactory(createSlider, {
|
|
21
|
+
defaultConfig: {
|
|
22
|
+
...DF_SLIDER_I18N_DEFAULTS
|
|
23
|
+
},
|
|
24
|
+
events: {
|
|
25
|
+
onValuesChange: (event) => {
|
|
26
|
+
this.onChange(event);
|
|
27
|
+
this.onTouched();
|
|
28
|
+
this.valuesChange.emit(event);
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
afterInit: (widget) => {
|
|
32
|
+
useDirectiveForHost(widget.directives.containerDirective);
|
|
33
|
+
}
|
|
34
|
+
}));
|
|
35
|
+
/**
|
|
36
|
+
* Size of the slider.
|
|
37
|
+
*
|
|
38
|
+
* @defaultValue `'md'`
|
|
39
|
+
*/
|
|
40
|
+
this.size = input('md', /* @ts-ignore */
|
|
41
|
+
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
42
|
+
/**
|
|
43
|
+
* Minimum value that can be assigned to the slider.
|
|
44
|
+
*
|
|
45
|
+
* @defaultValue `0`
|
|
46
|
+
*/
|
|
47
|
+
this.min = input(/* @ts-ignore */
|
|
48
|
+
...(ngDevMode ? [undefined, { debugName: "min" }] : /* istanbul ignore next */ []));
|
|
49
|
+
/**
|
|
50
|
+
* Maximum value that can be assigned to the slider.
|
|
51
|
+
*
|
|
52
|
+
* @defaultValue `100`
|
|
53
|
+
*/
|
|
54
|
+
this.max = input(/* @ts-ignore */
|
|
55
|
+
...(ngDevMode ? [undefined, { debugName: "max" }] : /* istanbul ignore next */ []));
|
|
56
|
+
/**
|
|
57
|
+
* Unit value between slider steps.
|
|
58
|
+
*
|
|
59
|
+
* @defaultValue `1`
|
|
60
|
+
*/
|
|
61
|
+
this.stepSize = input(/* @ts-ignore */
|
|
62
|
+
...(ngDevMode ? [undefined, { debugName: "stepSize" }] : /* istanbul ignore next */ []));
|
|
63
|
+
/**
|
|
64
|
+
* Current slider values.
|
|
65
|
+
*
|
|
66
|
+
* @defaultValue `[0]`
|
|
67
|
+
*/
|
|
68
|
+
this.values = input(/* @ts-ignore */
|
|
69
|
+
...(ngDevMode ? [undefined, { debugName: "values" }] : /* istanbul ignore next */ []));
|
|
70
|
+
/**
|
|
71
|
+
* If `true`, slider value cannot be changed but the slider is still focusable.
|
|
72
|
+
*
|
|
73
|
+
* @defaultValue `false`
|
|
74
|
+
*/
|
|
75
|
+
this.readonly = input(undefined, { ...(ngDevMode ? { debugName: "readonly" } : /* istanbul ignore next */ {}), transform: auBooleanAttribute });
|
|
76
|
+
/**
|
|
77
|
+
* If `true`, slider value cannot be changed and the slider cannot be focused.
|
|
78
|
+
*
|
|
79
|
+
* @defaultValue `false`
|
|
80
|
+
*/
|
|
81
|
+
this.disabled = input(undefined, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: auBooleanAttribute });
|
|
82
|
+
/**
|
|
83
|
+
* If `true`, the slider is vertically positioned; otherwise it is horizontal.
|
|
84
|
+
*
|
|
85
|
+
* @defaultValue `false`
|
|
86
|
+
*/
|
|
87
|
+
this.vertical = input(undefined, { ...(ngDevMode ? { debugName: "vertical" } : /* istanbul ignore next */ {}), transform: auBooleanAttribute });
|
|
88
|
+
/**
|
|
89
|
+
* If set, overrides the auto-detected RTL direction.
|
|
90
|
+
* When not set, RTL is auto-detected from the element's computed CSS direction.
|
|
91
|
+
*
|
|
92
|
+
* @defaultValue `false`
|
|
93
|
+
*/
|
|
94
|
+
this.rtl = input(undefined, { ...(ngDevMode ? { debugName: "rtl" } : /* istanbul ignore next */ {}), transform: auBooleanAttribute });
|
|
95
|
+
/**
|
|
96
|
+
* If `true`, visually flips the slider direction (both horizontal and vertical).
|
|
97
|
+
*
|
|
98
|
+
* @defaultValue `false`
|
|
99
|
+
*/
|
|
100
|
+
this.flip = input(undefined, { ...(ngDevMode ? { debugName: "flip" } : /* istanbul ignore next */ {}), transform: auBooleanAttribute });
|
|
101
|
+
/**
|
|
102
|
+
* If `true`, the value labels are displayed on the slider.
|
|
103
|
+
*
|
|
104
|
+
* @defaultValue `true`
|
|
105
|
+
*/
|
|
106
|
+
this.showValueLabels = input(undefined, { ...(ngDevMode ? { debugName: "showValueLabels" } : /* istanbul ignore next */ {}), transform: auBooleanAttribute });
|
|
107
|
+
/**
|
|
108
|
+
* If `true`, the min and max labels are displayed on the slider.
|
|
109
|
+
*
|
|
110
|
+
* @defaultValue `true`
|
|
111
|
+
*/
|
|
112
|
+
this.showMinMaxLabels = input(undefined, { ...(ngDevMode ? { debugName: "showMinMaxLabels" } : /* istanbul ignore next */ {}), transform: auBooleanAttribute });
|
|
113
|
+
/**
|
|
114
|
+
* If `true`, the ticks are displayed on the slider.
|
|
115
|
+
*
|
|
116
|
+
* @defaultValue `false`
|
|
117
|
+
*/
|
|
118
|
+
this.showTicks = input(undefined, { ...(ngDevMode ? { debugName: "showTicks" } : /* istanbul ignore next */ {}), transform: auBooleanAttribute });
|
|
119
|
+
/**
|
|
120
|
+
* Unit value between the ticks.
|
|
121
|
+
* If set to `0`, the {@link stepSize} is used to space the ticks.
|
|
122
|
+
*
|
|
123
|
+
* @defaultValue `0`
|
|
124
|
+
*/
|
|
125
|
+
this.tickInterval = input(/* @ts-ignore */
|
|
126
|
+
...(ngDevMode ? [undefined, { debugName: "tickInterval" }] : /* istanbul ignore next */ []));
|
|
127
|
+
/**
|
|
128
|
+
* If `true`, the tick values are displayed on the slider.
|
|
129
|
+
*
|
|
130
|
+
* @defaultValue `true`
|
|
131
|
+
*/
|
|
132
|
+
this.showTickValues = input(undefined, { ...(ngDevMode ? { debugName: "showTickValues" } : /* istanbul ignore next */ {}), transform: auBooleanAttribute });
|
|
133
|
+
/**
|
|
134
|
+
* Minimum distance between two handle values.
|
|
135
|
+
* When set to `0`, no minimum distance constraint is applied.
|
|
136
|
+
*
|
|
137
|
+
* Note: constraints are only enforced when a handle value changes (via user interaction or programmatic update),
|
|
138
|
+
* not on the initial values. If the initial values violate the constraint, they are rendered as-is until a handle moves.
|
|
139
|
+
*
|
|
140
|
+
* @defaultValue `0`
|
|
141
|
+
*/
|
|
142
|
+
this.minRange = input(/* @ts-ignore */
|
|
143
|
+
...(ngDevMode ? [undefined, { debugName: "minRange" }] : /* istanbul ignore next */ []));
|
|
144
|
+
/**
|
|
145
|
+
* Maximum distance between two handle values.
|
|
146
|
+
* When set to `0`, no maximum distance constraint is applied.
|
|
147
|
+
*
|
|
148
|
+
* Note: constraints are only enforced when a handle value changes (via user interaction or programmatic update),
|
|
149
|
+
* not on the initial values. If the initial values violate the constraint, they are rendered as-is until a handle moves.
|
|
150
|
+
*
|
|
151
|
+
* @defaultValue `0`
|
|
152
|
+
*/
|
|
153
|
+
this.maxRange = input(/* @ts-ignore */
|
|
154
|
+
...(ngDevMode ? [undefined, { debugName: "maxRange" }] : /* istanbul ignore next */ []));
|
|
155
|
+
/**
|
|
156
|
+
* When `true`, if moving a handle would break the {@link minRange} or {@link maxRange} constraint,
|
|
157
|
+
* it will push or pull the neighboring handles to maintain the allowed range.
|
|
158
|
+
*
|
|
159
|
+
* @defaultValue `false`
|
|
160
|
+
*/
|
|
161
|
+
this.pushRange = input(undefined, { ...(ngDevMode ? { debugName: "pushRange" } : /* istanbul ignore next */ {}), transform: auBooleanAttribute });
|
|
162
|
+
/**
|
|
163
|
+
* Returns the value for the `aria-label` attribute of each slider handle.
|
|
164
|
+
*
|
|
165
|
+
* @param sortedIndex - index of the handle in the sorted list
|
|
166
|
+
*
|
|
167
|
+
* @defaultValue `() => 'Value'`
|
|
168
|
+
*/
|
|
169
|
+
this.ariaLabel = input(/* @ts-ignore */
|
|
170
|
+
...(ngDevMode ? [undefined, { debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
|
|
171
|
+
/**
|
|
172
|
+
* Returns the value for the `aria-labelledby` attribute of each slider handle.
|
|
173
|
+
*
|
|
174
|
+
* @param sortedIndex - index of the handle in the sorted list
|
|
175
|
+
*
|
|
176
|
+
* @defaultValue `() => ''`
|
|
177
|
+
*/
|
|
178
|
+
this.ariaLabelledBy = input(/* @ts-ignore */
|
|
179
|
+
...(ngDevMode ? [undefined, { debugName: "ariaLabelledBy" }] : /* istanbul ignore next */ []));
|
|
180
|
+
/**
|
|
181
|
+
* Returns the value for the `aria-valuetext` attribute of each slider handle.
|
|
182
|
+
*
|
|
183
|
+
* @param value - current value of the handle
|
|
184
|
+
* @param sortedIndex - index of the handle in the sorted list
|
|
185
|
+
*
|
|
186
|
+
* @defaultValue `() => ''`
|
|
187
|
+
*/
|
|
188
|
+
this.ariaValueText = input(/* @ts-ignore */
|
|
189
|
+
...(ngDevMode ? [undefined, { debugName: "ariaValueText" }] : /* istanbul ignore next */ []));
|
|
190
|
+
/**
|
|
191
|
+
* Emitted when slider values are changed.
|
|
192
|
+
*
|
|
193
|
+
* Event payload equals the updated slider values.
|
|
194
|
+
*/
|
|
195
|
+
this.valuesChange = output();
|
|
196
|
+
/**
|
|
197
|
+
* Control value accessor methods
|
|
198
|
+
*/
|
|
199
|
+
this.onChange = (_) => { };
|
|
200
|
+
this.onTouched = () => { };
|
|
201
|
+
inject(DestroyRef).onDestroy(() => clearTimeout(this.updateTimeout));
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Key handler that sets the refocus element only on the keystrokes that move
|
|
205
|
+
* the element up the DOM
|
|
206
|
+
* @param event object containing keystroke and the target element
|
|
207
|
+
*/
|
|
208
|
+
onKeyDown(event) {
|
|
209
|
+
switch (event.key) {
|
|
210
|
+
case 'ArrowDown':
|
|
211
|
+
case 'ArrowLeft':
|
|
212
|
+
case 'Home':
|
|
213
|
+
case 'ArrowUp':
|
|
214
|
+
case 'ArrowRight':
|
|
215
|
+
case 'End':
|
|
216
|
+
clearTimeout(this.updateTimeout);
|
|
217
|
+
this.updateTimeout = setTimeout(() => {
|
|
218
|
+
event.target?.focus();
|
|
219
|
+
});
|
|
220
|
+
break;
|
|
221
|
+
default:
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
registerOnChange(fn) {
|
|
226
|
+
this.onChange = fn;
|
|
227
|
+
}
|
|
228
|
+
registerOnTouched(fn) {
|
|
229
|
+
this.onTouched = fn;
|
|
230
|
+
}
|
|
231
|
+
writeValue(value) {
|
|
232
|
+
if (Array.isArray(value)) {
|
|
233
|
+
this['_agnosWidget'].patch({
|
|
234
|
+
values: value
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
this['_agnosWidget'].patch({
|
|
239
|
+
values: [value]
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
setDisabledState(isDisabled) {
|
|
244
|
+
this['_agnosWidget'].patch({
|
|
245
|
+
disabled: isDisabled
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
handleBlur() {
|
|
249
|
+
this.onTouched();
|
|
250
|
+
}
|
|
251
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: DfSlider, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
252
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: DfSlider, isStandalone: true, selector: "df-slider", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, stepSize: { classPropertyName: "stepSize", publicName: "stepSize", isSignal: true, isRequired: false, transformFunction: null }, values: { classPropertyName: "values", publicName: "values", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, vertical: { classPropertyName: "vertical", publicName: "vertical", isSignal: true, isRequired: false, transformFunction: null }, rtl: { classPropertyName: "rtl", publicName: "rtl", isSignal: true, isRequired: false, transformFunction: null }, flip: { classPropertyName: "flip", publicName: "flip", isSignal: true, isRequired: false, transformFunction: null }, showValueLabels: { classPropertyName: "showValueLabels", publicName: "showValueLabels", isSignal: true, isRequired: false, transformFunction: null }, showMinMaxLabels: { classPropertyName: "showMinMaxLabels", publicName: "showMinMaxLabels", isSignal: true, isRequired: false, transformFunction: null }, showTicks: { classPropertyName: "showTicks", publicName: "showTicks", isSignal: true, isRequired: false, transformFunction: null }, tickInterval: { classPropertyName: "tickInterval", publicName: "tickInterval", isSignal: true, isRequired: false, transformFunction: null }, showTickValues: { classPropertyName: "showTickValues", publicName: "showTickValues", isSignal: true, isRequired: false, transformFunction: null }, minRange: { classPropertyName: "minRange", publicName: "minRange", isSignal: true, isRequired: false, transformFunction: null }, maxRange: { classPropertyName: "maxRange", publicName: "maxRange", isSignal: true, isRequired: false, transformFunction: null }, pushRange: { classPropertyName: "pushRange", publicName: "pushRange", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: true, isRequired: false, transformFunction: null }, ariaValueText: { classPropertyName: "ariaValueText", publicName: "ariaValueText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valuesChange: "valuesChange" }, host: { listeners: { "blur": "handleBlur()" }, properties: { "class.df-slider-sm": "size() === \"sm\"", "class.df-slider-lg": "size() === \"lg\"" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DfSlider), multi: true }], usesInheritance: true, ngImport: i0, template: `
|
|
253
|
+
<div [dfUse]="directives.sliderDirective">
|
|
254
|
+
@for (option of state.progressDisplayOptions(); track option.id) {
|
|
255
|
+
<div [dfUse]="[directives.progressDisplayDirective, { option }]"></div>
|
|
256
|
+
}
|
|
257
|
+
<div [dfUse]="directives.clickableAreaDirective"></div>
|
|
258
|
+
@if (state.showMinMaxLabels()) {
|
|
259
|
+
<div [dfUse]="directives.minLabelDirective">
|
|
260
|
+
<ng-template [ngTemplateOutlet]="sliderLabel" [ngTemplateOutletContext]="{ $implicit: state.min() }" />
|
|
261
|
+
</div>
|
|
262
|
+
<div [dfUse]="directives.maxLabelDirective">
|
|
263
|
+
<ng-template [ngTemplateOutlet]="sliderLabel" [ngTemplateOutletContext]="{ $implicit: state.max() }" />
|
|
264
|
+
</div>
|
|
265
|
+
}
|
|
266
|
+
@if (state.showValueLabels() && state.combinedLabelDisplay()) {
|
|
267
|
+
<div [dfUse]="directives.combinedHandleLabelDisplayDirective">
|
|
268
|
+
@if (state.rtl()) {
|
|
269
|
+
<ng-template
|
|
270
|
+
[ngTemplateOutlet]="sliderLabel"
|
|
271
|
+
[ngTemplateOutletContext]="{ $implicit: state.sortedValues()[1] }"
|
|
272
|
+
/>
|
|
273
|
+
-
|
|
274
|
+
<ng-template
|
|
275
|
+
[ngTemplateOutlet]="sliderLabel"
|
|
276
|
+
[ngTemplateOutletContext]="{ $implicit: state.sortedValues()[0] }"
|
|
277
|
+
/>
|
|
278
|
+
} @else {
|
|
279
|
+
<ng-template
|
|
280
|
+
[ngTemplateOutlet]="sliderLabel"
|
|
281
|
+
[ngTemplateOutletContext]="{ $implicit: state.sortedValues()[0] }"
|
|
282
|
+
/>
|
|
283
|
+
-
|
|
284
|
+
<ng-template
|
|
285
|
+
[ngTemplateOutlet]="sliderLabel"
|
|
286
|
+
[ngTemplateOutletContext]="{ $implicit: state.sortedValues()[1] }"
|
|
287
|
+
/>
|
|
288
|
+
}
|
|
289
|
+
</div>
|
|
290
|
+
}
|
|
291
|
+
@for (tick of state.ticks(); track tick.position) {
|
|
292
|
+
@if (tick.displayLabel) {
|
|
293
|
+
<span [dfUse]="[directives.tickLabelDirective, { tick }]">
|
|
294
|
+
{{ tick.value }}
|
|
295
|
+
</span>
|
|
296
|
+
}
|
|
297
|
+
<span [dfUse]="[directives.tickDirective, { tick }]">
|
|
298
|
+
<svg xmlns="http://www.w3.org/2000/svg">
|
|
299
|
+
<circle
|
|
300
|
+
class="df-slider-tick-outer"
|
|
301
|
+
[class.df-slider-tick-disabled]="state.disabled()"
|
|
302
|
+
[class.df-slider-tick-selected]="tick.selected"
|
|
303
|
+
/>
|
|
304
|
+
@if (tick.selected) {
|
|
305
|
+
<circle class="df-slider-tick-inner df-slider-tick-selected" />
|
|
306
|
+
}
|
|
307
|
+
</svg>
|
|
308
|
+
</span>
|
|
309
|
+
}
|
|
310
|
+
@for (item of state.sortedHandles(); track item.id; let i = $index) {
|
|
311
|
+
<span [dfUse]="[directives.handleDirective, { item }]" (keydown)="onKeyDown($event)" tabindex="0"></span>
|
|
312
|
+
@if (state.showValueLabels()) {
|
|
313
|
+
<div [dfUse]="[directives.handleLabelDisplayDirective, { index: i }]">
|
|
314
|
+
<ng-template
|
|
315
|
+
[ngTemplateOutlet]="sliderLabel"
|
|
316
|
+
[ngTemplateOutletContext]="{ $implicit: state.values()[i] }"
|
|
317
|
+
/>
|
|
318
|
+
</div>
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
</div>
|
|
322
|
+
|
|
323
|
+
<ng-template #sliderLabel let-value> {{ value }}</ng-template>
|
|
324
|
+
`, isInline: true, styles: [":host{display:block}.df-slider{touch-action:none;height:100%;display:block}.df-slider.df-slider-horizontal{padding-inline:.625rem;padding-block:.75rem}.df-slider.df-slider-horizontal:has(.df-slider-with-labels){padding-block-start:2.1875rem}.df-slider.df-slider-vertical{padding-block:.625rem;padding-inline:.75rem calc(.5rem + 4ch)}.df-slider .df-slider-content{border-radius:.125rem;font-size:1rem;line-height:1.5}.df-slider .df-slider-content.df-slider-horizontal{height:.25rem}.df-slider .df-slider-content.df-slider-horizontal .df-slider-handle-horizontal{top:calc(50% - .625rem)}.df-slider .df-slider-content.df-slider-horizontal .df-slider-tick-horizontal{top:calc(50% - .5rem)}.df-slider .df-slider-content.df-slider-vertical{width:.25rem}.df-slider .df-slider-content.df-slider-vertical .df-slider-handle-vertical{left:calc(50% - .625rem)}.df-slider .df-slider-content.df-slider-vertical .df-slider-tick-vertical{left:calc(50% - .5rem)}.df-slider .df-slider-content .df-slider-handle{width:1.25rem;height:1.25rem}.df-slider .df-slider-content .df-slider-progress{border-radius:.125rem}.df-slider .df-slider-content .df-slider-label{margin-block-start:-2rem}.df-slider .df-slider-content .df-slider-label-vertical{margin-inline-start:1rem}.df-slider .df-slider-content .df-slider-tick{height:1rem;width:1rem}.df-slider .df-slider-content .df-slider-tick svg{width:1rem;height:1rem}.df-slider .df-slider-content .df-slider-tick-label{margin-block-start:-2rem}.df-slider .df-slider-content .df-slider-tick-label-vertical{margin-inline-start:1rem}.df-slider.df-slider-sm.df-slider-horizontal{padding-inline:.5rem;padding-block:.6rem}.df-slider.df-slider-sm.df-slider-horizontal:has(.df-slider-with-labels){padding-block-start:1.9rem}.df-slider.df-slider-sm.df-slider-vertical{padding-block:.5rem;padding-inline:.6rem calc(.4rem + 4ch)}.df-slider.df-slider-sm .df-slider-content{border-radius:.1rem;font-size:.875rem;line-height:1.5}.df-slider.df-slider-sm .df-slider-content.df-slider-horizontal{height:.2rem}.df-slider.df-slider-sm .df-slider-content.df-slider-horizontal .df-slider-handle-horizontal{top:calc(50% - .5rem)}.df-slider.df-slider-sm .df-slider-content.df-slider-horizontal .df-slider-tick-horizontal{top:calc(50% - .375rem)}.df-slider.df-slider-sm .df-slider-content.df-slider-vertical{width:.2rem}.df-slider.df-slider-sm .df-slider-content.df-slider-vertical .df-slider-handle-vertical{left:calc(50% - .5rem)}.df-slider.df-slider-sm .df-slider-content.df-slider-vertical .df-slider-tick-vertical{left:calc(50% - .375rem)}.df-slider.df-slider-sm .df-slider-content .df-slider-handle{width:1rem;height:1rem}.df-slider.df-slider-sm .df-slider-content .df-slider-progress{border-radius:.1rem}.df-slider.df-slider-sm .df-slider-content .df-slider-label{margin-block-start:-1.7125rem}.df-slider.df-slider-sm .df-slider-content .df-slider-label-vertical{margin-inline-start:.85rem}.df-slider.df-slider-sm .df-slider-content .df-slider-tick{height:.75rem;width:.75rem}.df-slider.df-slider-sm .df-slider-content .df-slider-tick svg{width:.75rem;height:.75rem}.df-slider.df-slider-sm .df-slider-content .df-slider-tick-label{margin-block-start:-1.7125rem}.df-slider.df-slider-sm .df-slider-content .df-slider-tick-label-vertical{margin-inline-start:.85rem}.df-slider.df-slider-lg.df-slider-horizontal{padding-inline:.75rem;padding-block:.890625rem}.df-slider.df-slider-lg.df-slider-horizontal:has(.df-slider-with-labels){padding-block-start:2.46875rem}.df-slider.df-slider-lg.df-slider-vertical{padding-block:.75rem;padding-inline:.890625rem calc(.59375rem + 4ch)}.df-slider.df-slider-lg .df-slider-content{border-radius:.15625rem;font-size:1.125rem;line-height:1.5}.df-slider.df-slider-lg .df-slider-content.df-slider-horizontal{height:.3125rem}.df-slider.df-slider-lg .df-slider-content.df-slider-horizontal .df-slider-handle-horizontal{top:calc(50% - .75rem)}.df-slider.df-slider-lg .df-slider-content.df-slider-horizontal .df-slider-tick-horizontal{top:calc(50% - .625rem)}.df-slider.df-slider-lg .df-slider-content.df-slider-vertical{width:.3125rem}.df-slider.df-slider-lg .df-slider-content.df-slider-vertical .df-slider-handle-vertical{left:calc(50% - .75rem)}.df-slider.df-slider-lg .df-slider-content.df-slider-vertical .df-slider-tick-vertical{left:calc(50% - .625rem)}.df-slider.df-slider-lg .df-slider-content .df-slider-handle{width:1.5rem;height:1.5rem}.df-slider.df-slider-lg .df-slider-content .df-slider-progress{border-radius:.15625rem}.df-slider.df-slider-lg .df-slider-content .df-slider-label{margin-block-start:-2.28125rem}.df-slider.df-slider-lg .df-slider-content .df-slider-label-vertical{margin-inline-start:1.15625rem}.df-slider.df-slider-lg .df-slider-content .df-slider-tick{height:1.25rem;width:1.25rem}.df-slider.df-slider-lg .df-slider-content .df-slider-tick svg{width:1.25rem;height:1.25rem}.df-slider.df-slider-lg .df-slider-content .df-slider-tick-label{margin-block-start:-2.28125rem}.df-slider.df-slider-lg .df-slider-content .df-slider-tick-label-vertical{margin-inline-start:1.15625rem}.df-slider .df-slider-content{display:flex;position:relative;background-color:var(--df-color-disabled-main-foreground)}.df-slider .df-slider-content.df-slider-horizontal{width:100%}.df-slider .df-slider-content.df-slider-horizontal .df-slider-handle-horizontal,.df-slider .df-slider-content.df-slider-horizontal .df-slider-tick-horizontal{transform:translate(-50%)}.df-slider .df-slider-content.df-slider-vertical{height:100%}.df-slider .df-slider-content.df-slider-vertical .df-slider-handle-vertical,.df-slider .df-slider-content.df-slider-vertical .df-slider-tick-vertical{transform:translateY(-50%)}.df-slider .df-slider-content .df-slider-handle{position:absolute;background-color:var(--df-color-primary-main-default-background);border:none;border-radius:50%;outline:none;padding:0;cursor:pointer}.df-slider .df-slider-content .df-slider-handle:not([disabled]):hover{background-color:var(--df-color-primary-main-hovered-background)}.df-slider .df-slider-content .df-slider-handle:not([disabled]):hover:focus-visible{box-shadow:0 0 0 2px var(--df-color-inert-neutral-main-background),0 0 0 4px var(--df-color-primary-main-hovered-border)}.df-slider .df-slider-content .df-slider-handle:focus-visible{box-shadow:0 0 0 2px var(--df-color-inert-neutral-main-background),0 0 0 4px var(--df-color-primary-main-default-border)}.df-slider .df-slider-content .df-slider-progress{position:absolute;background-color:var(--df-color-primary-main-default-background)}.df-slider .df-slider-content .df-slider-label{position:absolute;font-weight:var(--df-typo-weight-regular);text-wrap:nowrap}.df-slider .df-slider-content .df-slider-label.df-slider-label-min:not(.df-slider-rtl){left:0}.df-slider .df-slider-content .df-slider-label.df-slider-label-min.df-slider-rtl{right:0}.df-slider .df-slider-content .df-slider-label.df-slider-label-max:not(.df-slider-rtl){right:0}.df-slider .df-slider-content .df-slider-label.df-slider-label-max.df-slider-rtl{left:0}.df-slider .df-slider-content .df-slider-label.df-slider-label-now{font-weight:var(--df-typo-weight-medium);transform:translate(-50%)}.df-slider .df-slider-content .df-slider-label.df-slider-invisible{visibility:hidden}.df-slider .df-slider-content .df-slider-label-vertical{position:absolute;white-space:nowrap}.df-slider .df-slider-content .df-slider-label-vertical.df-slider-label-vertical-min:not(.df-slider-rtl){top:calc(100% - .5rem);transform:translateY(-75%)}.df-slider .df-slider-content .df-slider-label-vertical.df-slider-label-vertical-min.df-slider-rtl{top:.25rem;transform:translateY(-25%)}.df-slider .df-slider-content .df-slider-label-vertical.df-slider-label-vertical-max:not(.df-slider-rtl){top:.25rem;transform:translateY(-25%)}.df-slider .df-slider-content .df-slider-label-vertical.df-slider-label-vertical-max.df-slider-rtl{top:calc(100% - .5rem);transform:translateY(-75%)}.df-slider .df-slider-content .df-slider-label-vertical.df-slider-label-vertical-now{transform:translateY(-50%)}.df-slider .df-slider-content .df-slider-label-vertical.df-slider-invisible{visibility:hidden}.df-slider .df-slider-content .df-slider-tick{position:absolute;cursor:pointer}.df-slider .df-slider-content .df-slider-tick svg{display:block;fill:none}.df-slider .df-slider-content .df-slider-tick svg circle{cx:50%;cy:50%;fill:var(--df-color-neutral-alt-default-background)}.df-slider .df-slider-content .df-slider-tick svg circle.df-slider-tick-outer{r:45%;stroke:var(--df-color-neutral-main-default-border);stroke-width:1.5}.df-slider .df-slider-content .df-slider-tick svg circle.df-slider-tick-outer.df-slider-tick-disabled{stroke:var(--df-color-disabled-main-border)}.df-slider .df-slider-content .df-slider-tick svg circle.df-slider-tick-selected.df-slider-tick-outer{fill:var(--df-color-primary-main-default-border);stroke:none;r:50%}.df-slider .df-slider-content .df-slider-tick svg circle.df-slider-tick-selected.df-slider-tick-outer.df-slider-tick-disabled{fill:var(--df-color-disabled-main-border)}.df-slider .df-slider-content .df-slider-tick svg circle.df-slider-tick-selected.df-slider-tick-inner{r:25%}.df-slider .df-slider-content .df-slider-tick-label{position:absolute;text-wrap:nowrap;transform:translate(-50%)}.df-slider .df-slider-content .df-slider-tick-label-vertical{position:absolute;transform:translateY(75%)}.df-slider .df-slider-content .df-slider-tick-label-now{font-weight:var(--df-typo-weight-medium)}.df-slider .df-slider-content .df-slider-clickable-area{height:1.5rem;width:100%;transform:translateY(-50%);cursor:pointer}.df-slider .df-slider-content .df-slider-clickable-area-vertical{width:1.5rem;height:100%;transform:translate(-50%);flex-shrink:0;cursor:pointer}.df-slider .df-slider-content .df-slider-clickable-area-with-ticks{cursor:default}.df-slider .df-slider-content.df-slider-disabled{cursor:not-allowed;background-color:var(--df-color-disabled-main-background)}.df-slider .df-slider-content.df-slider-disabled .df-slider-label,.df-slider .df-slider-content.df-slider-disabled .df-slider-label-vertical,.df-slider .df-slider-content.df-slider-disabled .df-slider-tick-label,.df-slider .df-slider-content.df-slider-disabled .df-slider-tick-label-vertical{color:var(--df-color-disabled-main-foreground)}.df-slider .df-slider-content.df-slider-disabled .df-slider-progress,.df-slider .df-slider-content.df-slider-disabled .df-slider-handle{background-color:var(--df-color-disabled-main-foreground);cursor:not-allowed}.df-slider .df-slider-content.df-slider-disabled .df-slider-clickable-area,.df-slider .df-slider-content.df-slider-disabled .df-slider-clickable-area-vertical,.df-slider .df-slider-content.df-slider-disabled .df-slider-tick{cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: UseDirective, selector: "[dfUse]", inputs: ["dfUse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
325
|
+
}
|
|
326
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: DfSlider, decorators: [{
|
|
327
|
+
type: Component,
|
|
328
|
+
args: [{ selector: 'df-slider', encapsulation: ViewEncapsulation.None, imports: [UseDirective, NgTemplateOutlet], providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DfSlider), multi: true }], host: {
|
|
329
|
+
'[class.df-slider-sm]': 'size() === "sm"',
|
|
330
|
+
'[class.df-slider-lg]': 'size() === "lg"',
|
|
331
|
+
'(blur)': 'handleBlur()'
|
|
332
|
+
}, template: `
|
|
333
|
+
<div [dfUse]="directives.sliderDirective">
|
|
334
|
+
@for (option of state.progressDisplayOptions(); track option.id) {
|
|
335
|
+
<div [dfUse]="[directives.progressDisplayDirective, { option }]"></div>
|
|
336
|
+
}
|
|
337
|
+
<div [dfUse]="directives.clickableAreaDirective"></div>
|
|
338
|
+
@if (state.showMinMaxLabels()) {
|
|
339
|
+
<div [dfUse]="directives.minLabelDirective">
|
|
340
|
+
<ng-template [ngTemplateOutlet]="sliderLabel" [ngTemplateOutletContext]="{ $implicit: state.min() }" />
|
|
341
|
+
</div>
|
|
342
|
+
<div [dfUse]="directives.maxLabelDirective">
|
|
343
|
+
<ng-template [ngTemplateOutlet]="sliderLabel" [ngTemplateOutletContext]="{ $implicit: state.max() }" />
|
|
344
|
+
</div>
|
|
345
|
+
}
|
|
346
|
+
@if (state.showValueLabels() && state.combinedLabelDisplay()) {
|
|
347
|
+
<div [dfUse]="directives.combinedHandleLabelDisplayDirective">
|
|
348
|
+
@if (state.rtl()) {
|
|
349
|
+
<ng-template
|
|
350
|
+
[ngTemplateOutlet]="sliderLabel"
|
|
351
|
+
[ngTemplateOutletContext]="{ $implicit: state.sortedValues()[1] }"
|
|
352
|
+
/>
|
|
353
|
+
-
|
|
354
|
+
<ng-template
|
|
355
|
+
[ngTemplateOutlet]="sliderLabel"
|
|
356
|
+
[ngTemplateOutletContext]="{ $implicit: state.sortedValues()[0] }"
|
|
357
|
+
/>
|
|
358
|
+
} @else {
|
|
359
|
+
<ng-template
|
|
360
|
+
[ngTemplateOutlet]="sliderLabel"
|
|
361
|
+
[ngTemplateOutletContext]="{ $implicit: state.sortedValues()[0] }"
|
|
362
|
+
/>
|
|
363
|
+
-
|
|
364
|
+
<ng-template
|
|
365
|
+
[ngTemplateOutlet]="sliderLabel"
|
|
366
|
+
[ngTemplateOutletContext]="{ $implicit: state.sortedValues()[1] }"
|
|
367
|
+
/>
|
|
368
|
+
}
|
|
369
|
+
</div>
|
|
370
|
+
}
|
|
371
|
+
@for (tick of state.ticks(); track tick.position) {
|
|
372
|
+
@if (tick.displayLabel) {
|
|
373
|
+
<span [dfUse]="[directives.tickLabelDirective, { tick }]">
|
|
374
|
+
{{ tick.value }}
|
|
375
|
+
</span>
|
|
376
|
+
}
|
|
377
|
+
<span [dfUse]="[directives.tickDirective, { tick }]">
|
|
378
|
+
<svg xmlns="http://www.w3.org/2000/svg">
|
|
379
|
+
<circle
|
|
380
|
+
class="df-slider-tick-outer"
|
|
381
|
+
[class.df-slider-tick-disabled]="state.disabled()"
|
|
382
|
+
[class.df-slider-tick-selected]="tick.selected"
|
|
383
|
+
/>
|
|
384
|
+
@if (tick.selected) {
|
|
385
|
+
<circle class="df-slider-tick-inner df-slider-tick-selected" />
|
|
386
|
+
}
|
|
387
|
+
</svg>
|
|
388
|
+
</span>
|
|
389
|
+
}
|
|
390
|
+
@for (item of state.sortedHandles(); track item.id; let i = $index) {
|
|
391
|
+
<span [dfUse]="[directives.handleDirective, { item }]" (keydown)="onKeyDown($event)" tabindex="0"></span>
|
|
392
|
+
@if (state.showValueLabels()) {
|
|
393
|
+
<div [dfUse]="[directives.handleLabelDisplayDirective, { index: i }]">
|
|
394
|
+
<ng-template
|
|
395
|
+
[ngTemplateOutlet]="sliderLabel"
|
|
396
|
+
[ngTemplateOutletContext]="{ $implicit: state.values()[i] }"
|
|
397
|
+
/>
|
|
398
|
+
</div>
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
</div>
|
|
402
|
+
|
|
403
|
+
<ng-template #sliderLabel let-value> {{ value }}</ng-template>
|
|
404
|
+
`, styles: [":host{display:block}.df-slider{touch-action:none;height:100%;display:block}.df-slider.df-slider-horizontal{padding-inline:.625rem;padding-block:.75rem}.df-slider.df-slider-horizontal:has(.df-slider-with-labels){padding-block-start:2.1875rem}.df-slider.df-slider-vertical{padding-block:.625rem;padding-inline:.75rem calc(.5rem + 4ch)}.df-slider .df-slider-content{border-radius:.125rem;font-size:1rem;line-height:1.5}.df-slider .df-slider-content.df-slider-horizontal{height:.25rem}.df-slider .df-slider-content.df-slider-horizontal .df-slider-handle-horizontal{top:calc(50% - .625rem)}.df-slider .df-slider-content.df-slider-horizontal .df-slider-tick-horizontal{top:calc(50% - .5rem)}.df-slider .df-slider-content.df-slider-vertical{width:.25rem}.df-slider .df-slider-content.df-slider-vertical .df-slider-handle-vertical{left:calc(50% - .625rem)}.df-slider .df-slider-content.df-slider-vertical .df-slider-tick-vertical{left:calc(50% - .5rem)}.df-slider .df-slider-content .df-slider-handle{width:1.25rem;height:1.25rem}.df-slider .df-slider-content .df-slider-progress{border-radius:.125rem}.df-slider .df-slider-content .df-slider-label{margin-block-start:-2rem}.df-slider .df-slider-content .df-slider-label-vertical{margin-inline-start:1rem}.df-slider .df-slider-content .df-slider-tick{height:1rem;width:1rem}.df-slider .df-slider-content .df-slider-tick svg{width:1rem;height:1rem}.df-slider .df-slider-content .df-slider-tick-label{margin-block-start:-2rem}.df-slider .df-slider-content .df-slider-tick-label-vertical{margin-inline-start:1rem}.df-slider.df-slider-sm.df-slider-horizontal{padding-inline:.5rem;padding-block:.6rem}.df-slider.df-slider-sm.df-slider-horizontal:has(.df-slider-with-labels){padding-block-start:1.9rem}.df-slider.df-slider-sm.df-slider-vertical{padding-block:.5rem;padding-inline:.6rem calc(.4rem + 4ch)}.df-slider.df-slider-sm .df-slider-content{border-radius:.1rem;font-size:.875rem;line-height:1.5}.df-slider.df-slider-sm .df-slider-content.df-slider-horizontal{height:.2rem}.df-slider.df-slider-sm .df-slider-content.df-slider-horizontal .df-slider-handle-horizontal{top:calc(50% - .5rem)}.df-slider.df-slider-sm .df-slider-content.df-slider-horizontal .df-slider-tick-horizontal{top:calc(50% - .375rem)}.df-slider.df-slider-sm .df-slider-content.df-slider-vertical{width:.2rem}.df-slider.df-slider-sm .df-slider-content.df-slider-vertical .df-slider-handle-vertical{left:calc(50% - .5rem)}.df-slider.df-slider-sm .df-slider-content.df-slider-vertical .df-slider-tick-vertical{left:calc(50% - .375rem)}.df-slider.df-slider-sm .df-slider-content .df-slider-handle{width:1rem;height:1rem}.df-slider.df-slider-sm .df-slider-content .df-slider-progress{border-radius:.1rem}.df-slider.df-slider-sm .df-slider-content .df-slider-label{margin-block-start:-1.7125rem}.df-slider.df-slider-sm .df-slider-content .df-slider-label-vertical{margin-inline-start:.85rem}.df-slider.df-slider-sm .df-slider-content .df-slider-tick{height:.75rem;width:.75rem}.df-slider.df-slider-sm .df-slider-content .df-slider-tick svg{width:.75rem;height:.75rem}.df-slider.df-slider-sm .df-slider-content .df-slider-tick-label{margin-block-start:-1.7125rem}.df-slider.df-slider-sm .df-slider-content .df-slider-tick-label-vertical{margin-inline-start:.85rem}.df-slider.df-slider-lg.df-slider-horizontal{padding-inline:.75rem;padding-block:.890625rem}.df-slider.df-slider-lg.df-slider-horizontal:has(.df-slider-with-labels){padding-block-start:2.46875rem}.df-slider.df-slider-lg.df-slider-vertical{padding-block:.75rem;padding-inline:.890625rem calc(.59375rem + 4ch)}.df-slider.df-slider-lg .df-slider-content{border-radius:.15625rem;font-size:1.125rem;line-height:1.5}.df-slider.df-slider-lg .df-slider-content.df-slider-horizontal{height:.3125rem}.df-slider.df-slider-lg .df-slider-content.df-slider-horizontal .df-slider-handle-horizontal{top:calc(50% - .75rem)}.df-slider.df-slider-lg .df-slider-content.df-slider-horizontal .df-slider-tick-horizontal{top:calc(50% - .625rem)}.df-slider.df-slider-lg .df-slider-content.df-slider-vertical{width:.3125rem}.df-slider.df-slider-lg .df-slider-content.df-slider-vertical .df-slider-handle-vertical{left:calc(50% - .75rem)}.df-slider.df-slider-lg .df-slider-content.df-slider-vertical .df-slider-tick-vertical{left:calc(50% - .625rem)}.df-slider.df-slider-lg .df-slider-content .df-slider-handle{width:1.5rem;height:1.5rem}.df-slider.df-slider-lg .df-slider-content .df-slider-progress{border-radius:.15625rem}.df-slider.df-slider-lg .df-slider-content .df-slider-label{margin-block-start:-2.28125rem}.df-slider.df-slider-lg .df-slider-content .df-slider-label-vertical{margin-inline-start:1.15625rem}.df-slider.df-slider-lg .df-slider-content .df-slider-tick{height:1.25rem;width:1.25rem}.df-slider.df-slider-lg .df-slider-content .df-slider-tick svg{width:1.25rem;height:1.25rem}.df-slider.df-slider-lg .df-slider-content .df-slider-tick-label{margin-block-start:-2.28125rem}.df-slider.df-slider-lg .df-slider-content .df-slider-tick-label-vertical{margin-inline-start:1.15625rem}.df-slider .df-slider-content{display:flex;position:relative;background-color:var(--df-color-disabled-main-foreground)}.df-slider .df-slider-content.df-slider-horizontal{width:100%}.df-slider .df-slider-content.df-slider-horizontal .df-slider-handle-horizontal,.df-slider .df-slider-content.df-slider-horizontal .df-slider-tick-horizontal{transform:translate(-50%)}.df-slider .df-slider-content.df-slider-vertical{height:100%}.df-slider .df-slider-content.df-slider-vertical .df-slider-handle-vertical,.df-slider .df-slider-content.df-slider-vertical .df-slider-tick-vertical{transform:translateY(-50%)}.df-slider .df-slider-content .df-slider-handle{position:absolute;background-color:var(--df-color-primary-main-default-background);border:none;border-radius:50%;outline:none;padding:0;cursor:pointer}.df-slider .df-slider-content .df-slider-handle:not([disabled]):hover{background-color:var(--df-color-primary-main-hovered-background)}.df-slider .df-slider-content .df-slider-handle:not([disabled]):hover:focus-visible{box-shadow:0 0 0 2px var(--df-color-inert-neutral-main-background),0 0 0 4px var(--df-color-primary-main-hovered-border)}.df-slider .df-slider-content .df-slider-handle:focus-visible{box-shadow:0 0 0 2px var(--df-color-inert-neutral-main-background),0 0 0 4px var(--df-color-primary-main-default-border)}.df-slider .df-slider-content .df-slider-progress{position:absolute;background-color:var(--df-color-primary-main-default-background)}.df-slider .df-slider-content .df-slider-label{position:absolute;font-weight:var(--df-typo-weight-regular);text-wrap:nowrap}.df-slider .df-slider-content .df-slider-label.df-slider-label-min:not(.df-slider-rtl){left:0}.df-slider .df-slider-content .df-slider-label.df-slider-label-min.df-slider-rtl{right:0}.df-slider .df-slider-content .df-slider-label.df-slider-label-max:not(.df-slider-rtl){right:0}.df-slider .df-slider-content .df-slider-label.df-slider-label-max.df-slider-rtl{left:0}.df-slider .df-slider-content .df-slider-label.df-slider-label-now{font-weight:var(--df-typo-weight-medium);transform:translate(-50%)}.df-slider .df-slider-content .df-slider-label.df-slider-invisible{visibility:hidden}.df-slider .df-slider-content .df-slider-label-vertical{position:absolute;white-space:nowrap}.df-slider .df-slider-content .df-slider-label-vertical.df-slider-label-vertical-min:not(.df-slider-rtl){top:calc(100% - .5rem);transform:translateY(-75%)}.df-slider .df-slider-content .df-slider-label-vertical.df-slider-label-vertical-min.df-slider-rtl{top:.25rem;transform:translateY(-25%)}.df-slider .df-slider-content .df-slider-label-vertical.df-slider-label-vertical-max:not(.df-slider-rtl){top:.25rem;transform:translateY(-25%)}.df-slider .df-slider-content .df-slider-label-vertical.df-slider-label-vertical-max.df-slider-rtl{top:calc(100% - .5rem);transform:translateY(-75%)}.df-slider .df-slider-content .df-slider-label-vertical.df-slider-label-vertical-now{transform:translateY(-50%)}.df-slider .df-slider-content .df-slider-label-vertical.df-slider-invisible{visibility:hidden}.df-slider .df-slider-content .df-slider-tick{position:absolute;cursor:pointer}.df-slider .df-slider-content .df-slider-tick svg{display:block;fill:none}.df-slider .df-slider-content .df-slider-tick svg circle{cx:50%;cy:50%;fill:var(--df-color-neutral-alt-default-background)}.df-slider .df-slider-content .df-slider-tick svg circle.df-slider-tick-outer{r:45%;stroke:var(--df-color-neutral-main-default-border);stroke-width:1.5}.df-slider .df-slider-content .df-slider-tick svg circle.df-slider-tick-outer.df-slider-tick-disabled{stroke:var(--df-color-disabled-main-border)}.df-slider .df-slider-content .df-slider-tick svg circle.df-slider-tick-selected.df-slider-tick-outer{fill:var(--df-color-primary-main-default-border);stroke:none;r:50%}.df-slider .df-slider-content .df-slider-tick svg circle.df-slider-tick-selected.df-slider-tick-outer.df-slider-tick-disabled{fill:var(--df-color-disabled-main-border)}.df-slider .df-slider-content .df-slider-tick svg circle.df-slider-tick-selected.df-slider-tick-inner{r:25%}.df-slider .df-slider-content .df-slider-tick-label{position:absolute;text-wrap:nowrap;transform:translate(-50%)}.df-slider .df-slider-content .df-slider-tick-label-vertical{position:absolute;transform:translateY(75%)}.df-slider .df-slider-content .df-slider-tick-label-now{font-weight:var(--df-typo-weight-medium)}.df-slider .df-slider-content .df-slider-clickable-area{height:1.5rem;width:100%;transform:translateY(-50%);cursor:pointer}.df-slider .df-slider-content .df-slider-clickable-area-vertical{width:1.5rem;height:100%;transform:translate(-50%);flex-shrink:0;cursor:pointer}.df-slider .df-slider-content .df-slider-clickable-area-with-ticks{cursor:default}.df-slider .df-slider-content.df-slider-disabled{cursor:not-allowed;background-color:var(--df-color-disabled-main-background)}.df-slider .df-slider-content.df-slider-disabled .df-slider-label,.df-slider .df-slider-content.df-slider-disabled .df-slider-label-vertical,.df-slider .df-slider-content.df-slider-disabled .df-slider-tick-label,.df-slider .df-slider-content.df-slider-disabled .df-slider-tick-label-vertical{color:var(--df-color-disabled-main-foreground)}.df-slider .df-slider-content.df-slider-disabled .df-slider-progress,.df-slider .df-slider-content.df-slider-disabled .df-slider-handle{background-color:var(--df-color-disabled-main-foreground);cursor:not-allowed}.df-slider .df-slider-content.df-slider-disabled .df-slider-clickable-area,.df-slider .df-slider-content.df-slider-disabled .df-slider-clickable-area-vertical,.df-slider .df-slider-content.df-slider-disabled .df-slider-tick{cursor:not-allowed}\n"] }]
|
|
405
|
+
}], ctorParameters: () => [], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], stepSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "stepSize", required: false }] }], values: [{ type: i0.Input, args: [{ isSignal: true, alias: "values", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], vertical: [{ type: i0.Input, args: [{ isSignal: true, alias: "vertical", required: false }] }], rtl: [{ type: i0.Input, args: [{ isSignal: true, alias: "rtl", required: false }] }], flip: [{ type: i0.Input, args: [{ isSignal: true, alias: "flip", required: false }] }], showValueLabels: [{ type: i0.Input, args: [{ isSignal: true, alias: "showValueLabels", required: false }] }], showMinMaxLabels: [{ type: i0.Input, args: [{ isSignal: true, alias: "showMinMaxLabels", required: false }] }], showTicks: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTicks", required: false }] }], tickInterval: [{ type: i0.Input, args: [{ isSignal: true, alias: "tickInterval", required: false }] }], showTickValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTickValues", required: false }] }], minRange: [{ type: i0.Input, args: [{ isSignal: true, alias: "minRange", required: false }] }], maxRange: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxRange", required: false }] }], pushRange: [{ type: i0.Input, args: [{ isSignal: true, alias: "pushRange", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], ariaLabelledBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabelledBy", required: false }] }], ariaValueText: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaValueText", required: false }] }], valuesChange: [{ type: i0.Output, args: ["valuesChange"] }] } });
|
|
406
|
+
|
|
407
|
+
/**
|
|
408
|
+
* Slider config key in the global DF component config.
|
|
409
|
+
*/
|
|
410
|
+
const SLIDER_CONFIG_KEY = 'slider';
|
|
411
|
+
/**
|
|
412
|
+
* Provides the configuration for the slider component.
|
|
413
|
+
*
|
|
414
|
+
* @example
|
|
415
|
+
* ```ts
|
|
416
|
+
* @Component({
|
|
417
|
+
* providers: [provideDfSliderConfig({ ariaLabel: () => 'Custom label' })]
|
|
418
|
+
* })
|
|
419
|
+
* export class MyHomeComponent {}
|
|
420
|
+
* ```
|
|
421
|
+
*
|
|
422
|
+
* @param config - Partial configuration or a function that receives the parent configuration and returns a partial configuration.
|
|
423
|
+
*
|
|
424
|
+
* @since 22.0.0
|
|
425
|
+
*/
|
|
426
|
+
const provideDfSliderConfig = provideDfComponentConfig(SLIDER_CONFIG_KEY);
|
|
427
|
+
/**
|
|
428
|
+
* Injects the configuration for the slider component.
|
|
429
|
+
*
|
|
430
|
+
* @example
|
|
431
|
+
* ```ts
|
|
432
|
+
* @Component({
|
|
433
|
+
* providers: [provideDfSliderConfig()]
|
|
434
|
+
* })
|
|
435
|
+
* export class MySliderComponent {
|
|
436
|
+
* readonly sliderConfig = injectDfSliderConfig();
|
|
437
|
+
* }
|
|
438
|
+
* ```
|
|
439
|
+
*
|
|
440
|
+
* @returns A writable signal containing the slider configuration.
|
|
441
|
+
*
|
|
442
|
+
* @since 22.0.0
|
|
443
|
+
*/
|
|
444
|
+
const injectDfSliderConfig = injectDfComponentConfig(SLIDER_CONFIG_KEY);
|
|
445
|
+
|
|
446
|
+
/**
|
|
447
|
+
* Generated bundle index. Do not edit.
|
|
448
|
+
*/
|
|
449
|
+
|
|
450
|
+
export { DfSlider, SLIDER_CONFIG_KEY, injectDfSliderConfig, provideDfSliderConfig };
|
|
451
|
+
//# sourceMappingURL=design-factory-angular-slider.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-factory-angular-slider.mjs","sources":["../../slider/slider.ts","../../slider/slider.config.ts","../../slider/design-factory-angular-slider.ts"],"sourcesContent":["import { Component, DestroyRef, forwardRef, inject, input, output, ViewEncapsulation } from '@angular/core';\nimport {\n AgnosWidgetDirective,\n UseDirective,\n useDirectiveForHost,\n callWidgetFactory,\n auBooleanAttribute\n} from '@design-factory/angular/internals';\nimport { SliderWidget, createSlider } from '@design-factory/core/components/slider';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * Available slider sizes.\n *\n * @experimental 22.0.0\n */\nexport type DfSliderSize = 'sm' | 'md' | 'lg';\n\nconst DF_SLIDER_I18N_DEFAULTS = {\n ariaLabel: () => $localize`:@@df.slider.value:Value`\n};\n\n/**\n * Slider component for selecting a single value or a range of values.\n *\n * Supports one or more handles, ticks, value and min/max labels, RTL/flip directions and vertical orientation.\n *\n * @experimental 22.0.0\n */\n@Component({\n selector: 'df-slider',\n encapsulation: ViewEncapsulation.None,\n imports: [UseDirective, NgTemplateOutlet],\n styles: \"@use '@design-factory/components-styles/slider';\",\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DfSlider), multi: true }],\n host: {\n '[class.df-slider-sm]': 'size() === \"sm\"',\n '[class.df-slider-lg]': 'size() === \"lg\"',\n '(blur)': 'handleBlur()'\n },\n template: `\n <div [dfUse]=\"directives.sliderDirective\">\n @for (option of state.progressDisplayOptions(); track option.id) {\n <div [dfUse]=\"[directives.progressDisplayDirective, { option }]\"></div>\n }\n <div [dfUse]=\"directives.clickableAreaDirective\"></div>\n @if (state.showMinMaxLabels()) {\n <div [dfUse]=\"directives.minLabelDirective\">\n <ng-template [ngTemplateOutlet]=\"sliderLabel\" [ngTemplateOutletContext]=\"{ $implicit: state.min() }\" />\n </div>\n <div [dfUse]=\"directives.maxLabelDirective\">\n <ng-template [ngTemplateOutlet]=\"sliderLabel\" [ngTemplateOutletContext]=\"{ $implicit: state.max() }\" />\n </div>\n }\n @if (state.showValueLabels() && state.combinedLabelDisplay()) {\n <div [dfUse]=\"directives.combinedHandleLabelDisplayDirective\">\n @if (state.rtl()) {\n <ng-template\n [ngTemplateOutlet]=\"sliderLabel\"\n [ngTemplateOutletContext]=\"{ $implicit: state.sortedValues()[1] }\"\n />\n -\n <ng-template\n [ngTemplateOutlet]=\"sliderLabel\"\n [ngTemplateOutletContext]=\"{ $implicit: state.sortedValues()[0] }\"\n />\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"sliderLabel\"\n [ngTemplateOutletContext]=\"{ $implicit: state.sortedValues()[0] }\"\n />\n -\n <ng-template\n [ngTemplateOutlet]=\"sliderLabel\"\n [ngTemplateOutletContext]=\"{ $implicit: state.sortedValues()[1] }\"\n />\n }\n </div>\n }\n @for (tick of state.ticks(); track tick.position) {\n @if (tick.displayLabel) {\n <span [dfUse]=\"[directives.tickLabelDirective, { tick }]\">\n {{ tick.value }}\n </span>\n }\n <span [dfUse]=\"[directives.tickDirective, { tick }]\">\n <svg xmlns=\"http://www.w3.org/2000/svg\">\n <circle\n class=\"df-slider-tick-outer\"\n [class.df-slider-tick-disabled]=\"state.disabled()\"\n [class.df-slider-tick-selected]=\"tick.selected\"\n />\n @if (tick.selected) {\n <circle class=\"df-slider-tick-inner df-slider-tick-selected\" />\n }\n </svg>\n </span>\n }\n @for (item of state.sortedHandles(); track item.id; let i = $index) {\n <span [dfUse]=\"[directives.handleDirective, { item }]\" (keydown)=\"onKeyDown($event)\" tabindex=\"0\"></span>\n @if (state.showValueLabels()) {\n <div [dfUse]=\"[directives.handleLabelDisplayDirective, { index: i }]\">\n <ng-template\n [ngTemplateOutlet]=\"sliderLabel\"\n [ngTemplateOutletContext]=\"{ $implicit: state.values()[i] }\"\n />\n </div>\n }\n }\n </div>\n\n <ng-template #sliderLabel let-value> {{ value }}</ng-template>\n `\n})\nexport class DfSlider extends AgnosWidgetDirective<SliderWidget> implements ControlValueAccessor {\n private updateTimeout?: ReturnType<typeof setTimeout>;\n\n /**\n * Size of the slider.\n *\n * @defaultValue `'md'`\n */\n readonly size = input<DfSliderSize>('md');\n\n /**\n * Minimum value that can be assigned to the slider.\n *\n * @defaultValue `0`\n */\n readonly min = input<number>();\n\n /**\n * Maximum value that can be assigned to the slider.\n *\n * @defaultValue `100`\n */\n readonly max = input<number>();\n\n /**\n * Unit value between slider steps.\n *\n * @defaultValue `1`\n */\n readonly stepSize = input<number>();\n\n /**\n * Current slider values.\n *\n * @defaultValue `[0]`\n */\n readonly values = input<number[]>();\n\n /**\n * If `true`, slider value cannot be changed but the slider is still focusable.\n *\n * @defaultValue `false`\n */\n readonly readonly = input(undefined, { transform: auBooleanAttribute });\n\n /**\n * If `true`, slider value cannot be changed and the slider cannot be focused.\n *\n * @defaultValue `false`\n */\n readonly disabled = input(undefined, { transform: auBooleanAttribute });\n\n /**\n * If `true`, the slider is vertically positioned; otherwise it is horizontal.\n *\n * @defaultValue `false`\n */\n readonly vertical = input(undefined, { transform: auBooleanAttribute });\n\n /**\n * If set, overrides the auto-detected RTL direction.\n * When not set, RTL is auto-detected from the element's computed CSS direction.\n *\n * @defaultValue `false`\n */\n readonly rtl = input(undefined, { transform: auBooleanAttribute });\n\n /**\n * If `true`, visually flips the slider direction (both horizontal and vertical).\n *\n * @defaultValue `false`\n */\n readonly flip = input(undefined, { transform: auBooleanAttribute });\n\n /**\n * If `true`, the value labels are displayed on the slider.\n *\n * @defaultValue `true`\n */\n readonly showValueLabels = input(undefined, { transform: auBooleanAttribute });\n\n /**\n * If `true`, the min and max labels are displayed on the slider.\n *\n * @defaultValue `true`\n */\n readonly showMinMaxLabels = input(undefined, { transform: auBooleanAttribute });\n\n /**\n * If `true`, the ticks are displayed on the slider.\n *\n * @defaultValue `false`\n */\n readonly showTicks = input(undefined, { transform: auBooleanAttribute });\n\n /**\n * Unit value between the ticks.\n * If set to `0`, the {@link stepSize} is used to space the ticks.\n *\n * @defaultValue `0`\n */\n readonly tickInterval = input<number>();\n\n /**\n * If `true`, the tick values are displayed on the slider.\n *\n * @defaultValue `true`\n */\n readonly showTickValues = input(undefined, { transform: auBooleanAttribute });\n\n /**\n * Minimum distance between two handle values.\n * When set to `0`, no minimum distance constraint is applied.\n *\n * Note: constraints are only enforced when a handle value changes (via user interaction or programmatic update),\n * not on the initial values. If the initial values violate the constraint, they are rendered as-is until a handle moves.\n *\n * @defaultValue `0`\n */\n readonly minRange = input<number>();\n\n /**\n * Maximum distance between two handle values.\n * When set to `0`, no maximum distance constraint is applied.\n *\n * Note: constraints are only enforced when a handle value changes (via user interaction or programmatic update),\n * not on the initial values. If the initial values violate the constraint, they are rendered as-is until a handle moves.\n *\n * @defaultValue `0`\n */\n readonly maxRange = input<number>();\n\n /**\n * When `true`, if moving a handle would break the {@link minRange} or {@link maxRange} constraint,\n * it will push or pull the neighboring handles to maintain the allowed range.\n *\n * @defaultValue `false`\n */\n readonly pushRange = input(undefined, { transform: auBooleanAttribute });\n\n /**\n * Returns the value for the `aria-label` attribute of each slider handle.\n *\n * @param sortedIndex - index of the handle in the sorted list\n *\n * @defaultValue `() => 'Value'`\n */\n readonly ariaLabel = input<(sortedIndex: number) => string>();\n\n /**\n * Returns the value for the `aria-labelledby` attribute of each slider handle.\n *\n * @param sortedIndex - index of the handle in the sorted list\n *\n * @defaultValue `() => ''`\n */\n readonly ariaLabelledBy = input<(sortedIndex: number) => string>();\n\n /**\n * Returns the value for the `aria-valuetext` attribute of each slider handle.\n *\n * @param value - current value of the handle\n * @param sortedIndex - index of the handle in the sorted list\n *\n * @defaultValue `() => ''`\n */\n readonly ariaValueText = input<(value: number, sortedIndex: number) => string>();\n\n /**\n * Emitted when slider values are changed.\n *\n * Event payload equals the updated slider values.\n */\n readonly valuesChange = output<number[]>();\n\n constructor() {\n super(\n callWidgetFactory(createSlider, {\n defaultConfig: {\n ...DF_SLIDER_I18N_DEFAULTS\n },\n events: {\n onValuesChange: (event) => {\n this.onChange(event);\n this.onTouched();\n this.valuesChange.emit(event);\n }\n },\n afterInit: (widget) => {\n useDirectiveForHost(widget.directives.containerDirective);\n }\n })\n );\n inject(DestroyRef).onDestroy(() => clearTimeout(this.updateTimeout));\n }\n\n /**\n * Key handler that sets the refocus element only on the keystrokes that move\n * the element up the DOM\n * @param event object containing keystroke and the target element\n */\n onKeyDown(event: KeyboardEvent) {\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowLeft':\n case 'Home':\n case 'ArrowUp':\n case 'ArrowRight':\n case 'End':\n clearTimeout(this.updateTimeout);\n this.updateTimeout = setTimeout(() => {\n (event.target as HTMLElement)?.focus();\n });\n break;\n default:\n break;\n }\n }\n\n /**\n * Control value accessor methods\n */\n onChange = (_: any) => {};\n\n onTouched = () => {};\n\n registerOnChange(fn: (value: any) => any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => any): void {\n this.onTouched = fn;\n }\n\n writeValue(value: any): void {\n if (Array.isArray(value)) {\n this['_agnosWidget'].patch({\n values: value\n });\n } else {\n this['_agnosWidget'].patch({\n values: [value]\n });\n }\n }\n\n setDisabledState(isDisabled: boolean) {\n this['_agnosWidget'].patch({\n disabled: isDisabled\n });\n }\n\n handleBlur() {\n this.onTouched();\n }\n}\n","import type { SliderProps } from '@design-factory/core/components/slider';\nimport { injectDfComponentConfig, provideDfComponentConfig } from '@design-factory/angular/internals';\n\n/**\n * Configuration options supported by `provideDfSliderConfig`.\n *\n * These defaults apply to every `DfSlider` instance within the providing injector, unless explicitly overridden on\n * the component itself.\n */\nexport type DfSliderConfig = Pick<SliderProps, 'ariaLabel' | 'ariaValueText'>;\n\n/**\n * Slider config key in the global DF component config.\n */\nexport const SLIDER_CONFIG_KEY = 'slider' as const;\n\n/**\n * Provides the configuration for the slider component.\n *\n * @example\n * ```ts\n * @Component({\n * providers: [provideDfSliderConfig({ ariaLabel: () => 'Custom label' })]\n * })\n * export class MyHomeComponent {}\n * ```\n *\n * @param config - Partial configuration or a function that receives the parent configuration and returns a partial configuration.\n *\n * @since 22.0.0\n */\nexport const provideDfSliderConfig = provideDfComponentConfig<DfSliderConfig>(SLIDER_CONFIG_KEY);\n\n/**\n * Injects the configuration for the slider component.\n *\n * @example\n * ```ts\n * @Component({\n * providers: [provideDfSliderConfig()]\n * })\n * export class MySliderComponent {\n * readonly sliderConfig = injectDfSliderConfig();\n * }\n * ```\n *\n * @returns A writable signal containing the slider configuration.\n *\n * @since 22.0.0\n */\nexport const injectDfSliderConfig = injectDfComponentConfig<DfSliderConfig>(SLIDER_CONFIG_KEY);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|