@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.
Files changed (331) hide show
  1. package/.ai/docs/components/accordion/accessibility.md +45 -0
  2. package/.ai/docs/components/accordion/api.md +279 -0
  3. package/.ai/docs/components/accordion/developer.md +43 -0
  4. package/.ai/docs/components/accordion/guidelines.md +99 -0
  5. package/.ai/docs/components/accordion/overview.md +17 -0
  6. package/.ai/docs/components/alert/accessibility.md +24 -0
  7. package/.ai/docs/components/alert/api.md +65 -0
  8. package/.ai/docs/components/alert/developer.md +63 -0
  9. package/.ai/docs/components/alert/guidelines.md +62 -0
  10. package/.ai/docs/components/alert/overview.md +12 -0
  11. package/.ai/docs/components/button/accessibility.md +25 -0
  12. package/.ai/docs/components/button/api.md +71 -0
  13. package/.ai/docs/components/button/developer.md +52 -0
  14. package/.ai/docs/components/button/guidelines.md +75 -0
  15. package/.ai/docs/components/button/overview.md +15 -0
  16. package/.ai/docs/components/buttongroup/api.md +16 -0
  17. package/.ai/docs/components/buttongroup/developer.md +32 -0
  18. package/.ai/docs/components/drawer/accessibility.md +15 -0
  19. package/.ai/docs/components/drawer/api.md +56 -0
  20. package/.ai/docs/components/drawer/developer.md +36 -0
  21. package/.ai/docs/components/drawer/examples.md +9 -0
  22. package/.ai/docs/components/drawer/guidelines.md +58 -0
  23. package/.ai/docs/components/drawer/overview.md +19 -0
  24. package/.ai/docs/components/dropdown/accessibility.md +27 -0
  25. package/.ai/docs/components/dropdown/api.md +85 -0
  26. package/.ai/docs/components/dropdown/developer.md +59 -0
  27. package/.ai/docs/components/dropdown/guidelines.md +80 -0
  28. package/.ai/docs/components/dropdown/overview.md +16 -0
  29. package/.ai/docs/components/sidenav/accessibility.md +48 -0
  30. package/.ai/docs/components/sidenav/api.md +110 -0
  31. package/.ai/docs/components/sidenav/developer.md +14 -0
  32. package/.ai/docs/components/sidenav/guidelines.md +83 -0
  33. package/.ai/docs/components/sidenav/overview.md +16 -0
  34. package/.ai/docs/components/tooltip/accessibility.md +11 -0
  35. package/.ai/docs/components/tooltip/api.md +39 -0
  36. package/.ai/docs/components/tooltip/developer.md +16 -0
  37. package/.ai/docs/components/tooltip/guidelines.md +84 -0
  38. package/.ai/docs/components/tooltip/overview.md +23 -0
  39. package/.ai/docs/components/topnav/accessibility.md +51 -0
  40. package/.ai/docs/components/topnav/api.md +190 -0
  41. package/.ai/docs/components/topnav/developer.md +43 -0
  42. package/.ai/docs/components/topnav/guidelines.md +121 -0
  43. package/.ai/docs/components/topnav/overview.md +17 -0
  44. package/.ai/docs/demos/accordion/addons-subtitle/accordion-addons-subtitle.html +75 -0
  45. package/.ai/docs/demos/accordion/addons-subtitle/accordion-addons-subtitle.ts +27 -0
  46. package/.ai/docs/demos/accordion/basic/accordion-basic.html +16 -0
  47. package/.ai/docs/demos/accordion/basic/accordion-basic.ts +14 -0
  48. package/.ai/docs/demos/accordion/close-others/accordion-close-others.html +16 -0
  49. package/.ai/docs/demos/accordion/close-others/accordion-close-others.ts +14 -0
  50. package/.ai/docs/demos/accordion/interactive/accordion-interactive.html +84 -0
  51. package/.ai/docs/demos/accordion/interactive/accordion-interactive.ts +30 -0
  52. package/.ai/docs/demos/accordion/interactive-addons-subtitle/accordion-interactive-addons-subtitle.html +126 -0
  53. package/.ai/docs/demos/accordion/interactive-addons-subtitle/accordion-interactive-addons-subtitle.ts +33 -0
  54. package/.ai/docs/demos/accordion/programmatic-control/accordion-programmatic-control.html +36 -0
  55. package/.ai/docs/demos/accordion/programmatic-control/accordion-programmatic-control.ts +15 -0
  56. package/.ai/docs/demos/accordion/selectable/accordion-selectable.html +16 -0
  57. package/.ai/docs/demos/accordion/selectable/accordion-selectable.ts +14 -0
  58. package/.ai/docs/demos/accordion/selectable-extended/accordion-selectable-extended.html +28 -0
  59. package/.ai/docs/demos/accordion/selectable-extended/accordion-selectable-extended.ts +80 -0
  60. package/.ai/docs/demos/accordion/separator/accordion-separator.html +16 -0
  61. package/.ai/docs/demos/accordion/separator/accordion-separator.ts +14 -0
  62. package/.ai/docs/demos/alert/banner/alert-banner.html +15 -0
  63. package/.ai/docs/demos/alert/banner/alert-banner.ts +16 -0
  64. package/.ai/docs/demos/alert/basic/alert-basic.html +6 -0
  65. package/.ai/docs/demos/alert/basic/alert-basic.ts +9 -0
  66. package/.ai/docs/demos/alert/card/alert-card.html +15 -0
  67. package/.ai/docs/demos/alert/card/alert-card.ts +9 -0
  68. package/.ai/docs/demos/alert/dismissal/alert-dismissal.html +5 -0
  69. package/.ai/docs/demos/alert/dismissal/alert-dismissal.ts +27 -0
  70. package/.ai/docs/demos/alert/expandable/alert-expandable.html +9 -0
  71. package/.ai/docs/demos/alert/expandable/alert-expandable.ts +11 -0
  72. package/.ai/docs/demos/button/basic/button-basic.html +4 -0
  73. package/.ai/docs/demos/button/basic/button-basic.ts +9 -0
  74. package/.ai/docs/demos/button/disabled/button-disabled.html +18 -0
  75. package/.ai/docs/demos/button/disabled/button-disabled.ts +12 -0
  76. package/.ai/docs/demos/button/icons/button-icons.html +17 -0
  77. package/.ai/docs/demos/button/icons/button-icons.ts +10 -0
  78. package/.ai/docs/demos/button/surfaces/button-surfaces.html +13 -0
  79. package/.ai/docs/demos/button/surfaces/button-surfaces.ts +9 -0
  80. package/.ai/docs/demos/button/variants/button-variants.html +49 -0
  81. package/.ai/docs/demos/button/variants/button-variants.ts +9 -0
  82. package/.ai/docs/demos/buttongroup/basic/buttongroup-basic.html +6 -0
  83. package/.ai/docs/demos/buttongroup/basic/buttongroup-basic.ts +10 -0
  84. package/.ai/docs/demos/buttongroup/disabled/buttongroup-disabled.html +6 -0
  85. package/.ai/docs/demos/buttongroup/disabled/buttongroup-disabled.ts +10 -0
  86. package/.ai/docs/demos/buttongroup/mirror/buttongroup-mirror.html +8 -0
  87. package/.ai/docs/demos/buttongroup/mirror/buttongroup-mirror.ts +10 -0
  88. package/.ai/docs/demos/buttongroup/orientation/buttongroup-orientation.html +19 -0
  89. package/.ai/docs/demos/buttongroup/orientation/buttongroup-orientation.ts +10 -0
  90. package/.ai/docs/demos/buttongroup/sizing/buttongroup-sizing.html +19 -0
  91. package/.ai/docs/demos/buttongroup/sizing/buttongroup-sizing.ts +10 -0
  92. package/.ai/docs/demos/drawer/inline/drawer-inline-basic.html +46 -0
  93. package/.ai/docs/demos/drawer/inline/drawer-inline-basic.ts +33 -0
  94. package/.ai/docs/demos/drawer/overlay/drawer-overlay-basic.html +30 -0
  95. package/.ai/docs/demos/drawer/overlay/drawer-overlay-basic.ts +25 -0
  96. package/.ai/docs/demos/dropdown/basic/dropdown-basic.html +8 -0
  97. package/.ai/docs/demos/dropdown/basic/dropdown-basic.ts +15 -0
  98. package/.ai/docs/demos/dropdown/sizes/dropdown-sizes.html +9 -0
  99. package/.ai/docs/demos/dropdown/sizes/dropdown-sizes.ts +21 -0
  100. package/.ai/docs/demos/dropdown/split/dropdown-split.html +9 -0
  101. package/.ai/docs/demos/dropdown/split/dropdown-split.ts +11 -0
  102. package/.ai/docs/demos/dropdown/toggle/dropdown-toggle.html +22 -0
  103. package/.ai/docs/demos/dropdown/toggle/dropdown-toggle.ts +10 -0
  104. package/.ai/docs/demos/sidenav/sidenav-basic-no-icon/routes.ts +95 -0
  105. package/.ai/docs/demos/sidenav/sidenav-basic-no-icon/sidenav-basic-no-icon.html +42 -0
  106. package/.ai/docs/demos/sidenav/sidenav-basic-no-icon/sidenav-basic-no-icon.ts +12 -0
  107. package/.ai/docs/demos/sidenav/sidenav-basic-with-icon/routes.ts +41 -0
  108. package/.ai/docs/demos/sidenav/sidenav-basic-with-icon/sidenav-basic-with-icon.html +34 -0
  109. package/.ai/docs/demos/sidenav/sidenav-basic-with-icon/sidenav-basic-with-icon.ts +12 -0
  110. package/.ai/docs/demos/tooltip/basic/tooltip-basic.html +1 -0
  111. package/.ai/docs/demos/tooltip/basic/tooltip-basic.ts +10 -0
  112. package/.ai/docs/demos/tooltip/placements/tooltip-placements.html +35 -0
  113. package/.ai/docs/demos/tooltip/placements/tooltip-placements.ts +12 -0
  114. package/.ai/docs/demos/tooltip/sizes/tooltip-sizes.html +5 -0
  115. package/.ai/docs/demos/tooltip/sizes/tooltip-sizes.ts +10 -0
  116. package/.ai/docs/demos/topnav/brand/topnav-brand.ts +64 -0
  117. package/.ai/docs/demos/topnav/environment-banner/topnav-environment-banner.ts +20 -0
  118. package/.ai/docs/demos/topnav/navigation/routes.ts +35 -0
  119. package/.ai/docs/demos/topnav/navigation/topnav-navigation-flat.ts +67 -0
  120. package/.ai/docs/demos/topnav/navigation/topnav-navigation-tree.ts +82 -0
  121. package/.ai/docs/demos/topnav/quick-actions/notifications.ts +75 -0
  122. package/.ai/docs/demos/topnav/quick-actions/topnav-quick-actions.ts +108 -0
  123. package/.ai/docs/demos/topnav/quick-actions/user-account.ts +23 -0
  124. package/.ai/index.md +26 -0
  125. package/fesm2022/design-factory-angular-accordion.mjs +1153 -0
  126. package/fesm2022/design-factory-angular-accordion.mjs.map +1 -0
  127. package/fesm2022/design-factory-angular-alert.mjs +312 -0
  128. package/fesm2022/design-factory-angular-alert.mjs.map +1 -0
  129. package/fesm2022/design-factory-angular-breakpoints.mjs +53 -0
  130. package/fesm2022/design-factory-angular-breakpoints.mjs.map +1 -0
  131. package/fesm2022/design-factory-angular-button.mjs +240 -0
  132. package/fesm2022/design-factory-angular-button.mjs.map +1 -0
  133. package/fesm2022/design-factory-angular-buttongroup.mjs +75 -0
  134. package/fesm2022/design-factory-angular-buttongroup.mjs.map +1 -0
  135. package/fesm2022/design-factory-angular-drawer.mjs +64 -62
  136. package/fesm2022/design-factory-angular-drawer.mjs.map +1 -1
  137. package/fesm2022/design-factory-angular-dropdown.mjs +323 -0
  138. package/fesm2022/design-factory-angular-dropdown.mjs.map +1 -0
  139. package/fesm2022/design-factory-angular-form-field.mjs +287 -0
  140. package/fesm2022/design-factory-angular-form-field.mjs.map +1 -0
  141. package/fesm2022/design-factory-angular-icon.mjs +24 -0
  142. package/fesm2022/design-factory-angular-icon.mjs.map +1 -0
  143. package/fesm2022/design-factory-angular-input.mjs +34 -0
  144. package/fesm2022/design-factory-angular-input.mjs.map +1 -0
  145. package/fesm2022/design-factory-angular-internals.mjs +119 -39
  146. package/fesm2022/design-factory-angular-internals.mjs.map +1 -1
  147. package/fesm2022/design-factory-angular-separator.mjs +43 -0
  148. package/fesm2022/design-factory-angular-separator.mjs.map +1 -0
  149. package/fesm2022/design-factory-angular-sidenav.mjs +652 -401
  150. package/fesm2022/design-factory-angular-sidenav.mjs.map +1 -1
  151. package/fesm2022/design-factory-angular-slider.mjs +451 -0
  152. package/fesm2022/design-factory-angular-slider.mjs.map +1 -0
  153. package/fesm2022/design-factory-angular-theme.mjs +29 -19
  154. package/fesm2022/design-factory-angular-theme.mjs.map +1 -1
  155. package/fesm2022/design-factory-angular-toggle.mjs +172 -0
  156. package/fesm2022/design-factory-angular-toggle.mjs.map +1 -0
  157. package/fesm2022/design-factory-angular-tooltip.mjs +138 -0
  158. package/fesm2022/design-factory-angular-tooltip.mjs.map +1 -0
  159. package/fesm2022/design-factory-angular-topnav.mjs +589 -589
  160. package/fesm2022/design-factory-angular-topnav.mjs.map +1 -1
  161. package/package.json +61 -8
  162. package/schematics/collection.json +35 -0
  163. package/schematics/component-migration/accordion/constants.d.ts +10 -0
  164. package/schematics/component-migration/accordion/constants.js +46 -0
  165. package/schematics/component-migration/accordion/guide.md +257 -0
  166. package/schematics/component-migration/accordion/index.d.ts +2 -0
  167. package/schematics/component-migration/accordion/index.js +5 -0
  168. package/schematics/component-migration/accordion/migration.d.ts +2 -0
  169. package/schematics/component-migration/accordion/migration.js +13 -0
  170. package/schematics/component-migration/accordion/schema.json +25 -0
  171. package/schematics/component-migration/accordion/steps/accordion-imports.d.ts +3 -0
  172. package/schematics/component-migration/accordion/steps/accordion-imports.js +41 -0
  173. package/schematics/component-migration/accordion/steps/template-migration.d.ts +3 -0
  174. package/schematics/component-migration/accordion/steps/template-migration.js +554 -0
  175. package/schematics/component-migration/accordion/steps/title-content.d.ts +9 -0
  176. package/schematics/component-migration/accordion/steps/title-content.js +75 -0
  177. package/schematics/component-migration/ai/prompt.md +83 -0
  178. package/schematics/component-migration/alert/guide.md +246 -0
  179. package/schematics/component-migration/alert/index.d.ts +2 -0
  180. package/schematics/component-migration/alert/index.js +5 -0
  181. package/schematics/component-migration/alert/migration.d.ts +2 -0
  182. package/schematics/component-migration/alert/migration.js +50 -0
  183. package/schematics/component-migration/alert/schema.json +25 -0
  184. package/schematics/component-migration/alert/steps/alert-imports.d.ts +4 -0
  185. package/schematics/component-migration/alert/steps/alert-imports.js +97 -0
  186. package/schematics/component-migration/alert/steps/animation-input.d.ts +3 -0
  187. package/schematics/component-migration/alert/steps/animation-input.js +17 -0
  188. package/schematics/component-migration/alert/steps/close-output.d.ts +3 -0
  189. package/schematics/component-migration/alert/steps/close-output.js +17 -0
  190. package/schematics/component-migration/alert/steps/icon-directive-imports.d.ts +3 -0
  191. package/schematics/component-migration/alert/steps/icon-directive-imports.js +84 -0
  192. package/schematics/component-migration/alert/steps/icon-directive.d.ts +3 -0
  193. package/schematics/component-migration/alert/steps/icon-directive.js +10 -0
  194. package/schematics/component-migration/alert/steps/legacy-module-imports.d.ts +3 -0
  195. package/schematics/component-migration/alert/steps/legacy-module-imports.js +57 -0
  196. package/schematics/component-migration/alert/steps/programmatic-close.d.ts +3 -0
  197. package/schematics/component-migration/alert/steps/programmatic-close.js +44 -0
  198. package/schematics/component-migration/alert/steps/selector.d.ts +3 -0
  199. package/schematics/component-migration/alert/steps/selector.js +18 -0
  200. package/schematics/component-migration/alert/steps/static-classes.d.ts +3 -0
  201. package/schematics/component-migration/alert/steps/static-classes.js +97 -0
  202. package/schematics/component-migration/alert/steps/static-type.d.ts +3 -0
  203. package/schematics/component-migration/alert/steps/static-type.js +28 -0
  204. package/schematics/component-migration/alert/steps/template-reference.d.ts +3 -0
  205. package/schematics/component-migration/alert/steps/template-reference.js +15 -0
  206. package/schematics/component-migration/alert/steps/template-todos.d.ts +3 -0
  207. package/schematics/component-migration/alert/steps/template-todos.js +78 -0
  208. package/schematics/component-migration/button/guide.md +278 -0
  209. package/schematics/component-migration/button/index.d.ts +2 -0
  210. package/schematics/component-migration/button/index.js +5 -0
  211. package/schematics/component-migration/button/migration.d.ts +2 -0
  212. package/schematics/component-migration/button/migration.js +180 -0
  213. package/schematics/component-migration/button/schema.json +25 -0
  214. package/schematics/component-migration/button/steps/static-classes.d.ts +10 -0
  215. package/schematics/component-migration/button/steps/static-classes.js +128 -0
  216. package/schematics/component-migration/button/steps/template-todos.d.ts +19 -0
  217. package/schematics/component-migration/button/steps/template-todos.js +120 -0
  218. package/schematics/component-migration/button/types.d.ts +7 -0
  219. package/schematics/component-migration/button/types.js +2 -0
  220. package/schematics/component-migration/dropdown/guide.md +252 -0
  221. package/schematics/component-migration/dropdown/index.d.ts +2 -0
  222. package/schematics/component-migration/dropdown/index.js +5 -0
  223. package/schematics/component-migration/dropdown/migration.d.ts +2 -0
  224. package/schematics/component-migration/dropdown/migration.js +41 -0
  225. package/schematics/component-migration/dropdown/schema.json +25 -0
  226. package/schematics/component-migration/dropdown/steps/dropdown-imports.d.ts +3 -0
  227. package/schematics/component-migration/dropdown/steps/dropdown-imports.js +308 -0
  228. package/schematics/component-migration/dropdown/steps/template-attributes.d.ts +10 -0
  229. package/schematics/component-migration/dropdown/steps/template-attributes.js +57 -0
  230. package/schematics/component-migration/dropdown/steps/template-helpers.d.ts +20 -0
  231. package/schematics/component-migration/dropdown/steps/template-helpers.js +125 -0
  232. package/schematics/component-migration/dropdown/steps/template-imports.d.ts +22 -0
  233. package/schematics/component-migration/dropdown/steps/template-imports.js +12 -0
  234. package/schematics/component-migration/dropdown/steps/template-items.d.ts +7 -0
  235. package/schematics/component-migration/dropdown/steps/template-items.js +58 -0
  236. package/schematics/component-migration/dropdown/steps/template-menu.d.ts +14 -0
  237. package/schematics/component-migration/dropdown/steps/template-menu.js +107 -0
  238. package/schematics/component-migration/dropdown/steps/template-todos.d.ts +19 -0
  239. package/schematics/component-migration/dropdown/steps/template-todos.js +118 -0
  240. package/schematics/component-migration/dropdown/steps/template-toggle.d.ts +9 -0
  241. package/schematics/component-migration/dropdown/steps/template-toggle.js +70 -0
  242. package/schematics/component-migration/dropdown/steps/template-wrapper.d.ts +12 -0
  243. package/schematics/component-migration/dropdown/steps/template-wrapper.js +105 -0
  244. package/schematics/component-migration/index.d.ts +3 -0
  245. package/schematics/component-migration/index.js +26 -0
  246. package/schematics/component-migration/next-steps/index.d.ts +13 -0
  247. package/schematics/component-migration/next-steps/index.js +34 -0
  248. package/schematics/component-migration/registry.d.ts +1 -0
  249. package/schematics/component-migration/registry.js +15 -0
  250. package/schematics/component-migration/schema.json +20 -0
  251. package/schematics/component-migration/shared/ai-handoff.d.ts +2 -0
  252. package/schematics/component-migration/shared/ai-handoff.js +28 -0
  253. package/schematics/component-migration/shared/angular-component.d.ts +10 -0
  254. package/schematics/component-migration/shared/angular-component.js +125 -0
  255. package/schematics/component-migration/shared/button-visual-classes.d.ts +24 -0
  256. package/schematics/component-migration/shared/button-visual-classes.js +111 -0
  257. package/schematics/component-migration/shared/component-context.d.ts +7 -0
  258. package/schematics/component-migration/shared/component-context.js +24 -0
  259. package/schematics/component-migration/shared/component-imports.d.ts +45 -0
  260. package/schematics/component-migration/shared/component-imports.js +380 -0
  261. package/schematics/component-migration/shared/create-component-schematic.d.ts +3 -0
  262. package/schematics/component-migration/shared/create-component-schematic.js +55 -0
  263. package/schematics/component-migration/shared/import-edits.d.ts +11 -0
  264. package/schematics/component-migration/shared/import-edits.js +157 -0
  265. package/schematics/component-migration/shared/legacy-config-todos.d.ts +3 -0
  266. package/schematics/component-migration/shared/legacy-config-todos.js +90 -0
  267. package/schematics/component-migration/shared/migrate-project.d.ts +12 -0
  268. package/schematics/component-migration/shared/migrate-project.js +151 -0
  269. package/schematics/component-migration/shared/project-templates.d.ts +15 -0
  270. package/schematics/component-migration/shared/project-templates.js +43 -0
  271. package/schematics/component-migration/shared/scan-project.d.ts +3 -0
  272. package/schematics/component-migration/shared/scan-project.js +24 -0
  273. package/schematics/component-migration/shared/static-placement.d.ts +1 -0
  274. package/schematics/component-migration/shared/static-placement.js +45 -0
  275. package/schematics/component-migration/shared/template-edits.d.ts +28 -0
  276. package/schematics/component-migration/shared/template-edits.js +153 -0
  277. package/schematics/component-migration/shared/template-result.d.ts +3 -0
  278. package/schematics/component-migration/shared/template-result.js +11 -0
  279. package/schematics/component-migration/shared/testing.d.ts +13 -0
  280. package/schematics/component-migration/shared/testing.js +59 -0
  281. package/schematics/component-migration/shared/todo-comments.d.ts +10 -0
  282. package/schematics/component-migration/shared/todo-comments.js +81 -0
  283. package/schematics/component-migration/shared/types.d.ts +41 -0
  284. package/schematics/component-migration/shared/types.js +2 -0
  285. package/schematics/component-migration/tooltip/guide.md +196 -0
  286. package/schematics/component-migration/tooltip/index.d.ts +2 -0
  287. package/schematics/component-migration/tooltip/index.js +5 -0
  288. package/schematics/component-migration/tooltip/migration.d.ts +2 -0
  289. package/schematics/component-migration/tooltip/migration.js +50 -0
  290. package/schematics/component-migration/tooltip/schema.json +25 -0
  291. package/schematics/component-migration/tooltip/steps/template-attributes.d.ts +13 -0
  292. package/schematics/component-migration/tooltip/steps/template-attributes.js +266 -0
  293. package/schematics/component-migration/tooltip/steps/template-todos.d.ts +24 -0
  294. package/schematics/component-migration/tooltip/steps/template-todos.js +115 -0
  295. package/schematics/component-migration/tooltip/steps/tooltip-imports.d.ts +3 -0
  296. package/schematics/component-migration/tooltip/steps/tooltip-imports.js +79 -0
  297. package/schematics/component-migration/utils/component-resource-collector.d.ts +34 -0
  298. package/schematics/component-migration/utils/component-resource-collector.js +107 -0
  299. package/schematics/component-migration/utils/project_tsconfig_paths.d.ts +18 -0
  300. package/schematics/component-migration/utils/project_tsconfig_paths.js +105 -0
  301. package/schematics/component-migration/utils/typescript/compiler_host.d.ts +44 -0
  302. package/schematics/component-migration/utils/typescript/compiler_host.js +87 -0
  303. package/schematics/component-migration/utils/typescript/decorators.d.ts +22 -0
  304. package/schematics/component-migration/utils/typescript/decorators.js +41 -0
  305. package/schematics/component-migration/utils/typescript/functions.d.ts +14 -0
  306. package/schematics/component-migration/utils/typescript/functions.js +20 -0
  307. package/schematics/component-migration/utils/typescript/imports.d.ts +17 -0
  308. package/schematics/component-migration/utils/typescript/imports.js +110 -0
  309. package/schematics/component-migration/utils/typescript/parse_tsconfig.d.ts +9 -0
  310. package/schematics/component-migration/utils/typescript/parse_tsconfig.js +29 -0
  311. package/schematics/component-migration/utils/typescript/property-name.d.ts +13 -0
  312. package/schematics/component-migration/utils/typescript/property-name.js +22 -0
  313. package/schematics/package.json +3 -0
  314. package/types/design-factory-angular-accordion.d.ts +553 -0
  315. package/types/design-factory-angular-alert.d.ts +166 -0
  316. package/types/design-factory-angular-breakpoints.d.ts +13 -0
  317. package/types/design-factory-angular-button.d.ts +166 -0
  318. package/types/design-factory-angular-buttongroup.d.ts +45 -0
  319. package/types/design-factory-angular-drawer.d.ts +10 -16
  320. package/types/design-factory-angular-dropdown.d.ts +148 -0
  321. package/types/design-factory-angular-form-field.d.ts +122 -0
  322. package/types/design-factory-angular-icon.d.ts +11 -0
  323. package/types/design-factory-angular-input.d.ts +16 -0
  324. package/types/design-factory-angular-internals.d.ts +78 -19
  325. package/types/design-factory-angular-separator.d.ts +29 -0
  326. package/types/design-factory-angular-sidenav.d.ts +98 -14
  327. package/types/design-factory-angular-slider.d.ts +239 -0
  328. package/types/design-factory-angular-toggle.d.ts +93 -0
  329. package/types/design-factory-angular-tooltip.d.ts +113 -0
  330. package/types/design-factory-angular-topnav.d.ts +35 -47
  331. 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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"}