@radix-ng/primitives 0.12.0 → 0.12.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (492) hide show
  1. package/README.md +6 -2
  2. package/accordion/src/accordion-content.directive.d.ts +11 -0
  3. package/accordion/src/accordion-header.directive.d.ts +7 -0
  4. package/accordion/src/accordion-item.directive.d.ts +82 -0
  5. package/accordion/src/accordion-root.directive.d.ts +93 -0
  6. package/accordion/src/accordion-trigger.directive.d.ts +15 -0
  7. package/alert-dialog/{index.ts → index.d.ts} +0 -1
  8. package/alert-dialog/src/alert-dialog-cancel.directive.d.ts +7 -0
  9. package/alert-dialog/src/alert-dialog-content.directive.d.ts +9 -0
  10. package/alert-dialog/src/alert-dialog-root.directive.d.ts +9 -0
  11. package/alert-dialog/src/alert-dialog-title.directive.d.ts +5 -0
  12. package/alert-dialog/src/alert-dialog-trigger.directive.d.ts +7 -0
  13. package/alert-dialog/src/alert-dialog.service.d.ts +14 -0
  14. package/avatar/src/avatar-fallback.directive.d.ts +28 -0
  15. package/avatar/src/avatar-image.directive.d.ts +21 -0
  16. package/avatar/src/avatar-root.directive.d.ts +21 -0
  17. package/avatar/src/avatar.config.d.ts +13 -0
  18. package/checkbox/src/checkbox-button.directive.d.ts +8 -0
  19. package/checkbox/src/checkbox-indicator.directive.d.ts +6 -0
  20. package/checkbox/src/checkbox-input.directive.d.ts +9 -0
  21. package/checkbox/src/checkbox.directive.d.ts +75 -0
  22. package/checkbox/src/checkbox.token.d.ts +4 -0
  23. package/collapsible/src/collapsible-content.directive.d.ts +17 -0
  24. package/collapsible/src/collapsible-content.token.d.ts +3 -0
  25. package/collapsible/src/collapsible-root.directive.d.ts +55 -0
  26. package/collapsible/src/collapsible-trigger.directive.d.ts +26 -0
  27. package/compodoc/documentation.json +13895 -0
  28. package/context-menu/src/context-menu-content.directive.d.ts +15 -0
  29. package/context-menu/src/context-menu-item-checkbox.directive.d.ts +9 -0
  30. package/context-menu/src/context-menu-item-indicator.directive.d.ts +7 -0
  31. package/context-menu/src/context-menu-item-radio-group.directive.d.ts +12 -0
  32. package/context-menu/src/context-menu-item-radio.directive.d.ts +19 -0
  33. package/context-menu/src/context-menu-item-selectable.d.ts +12 -0
  34. package/context-menu/src/context-menu-item.directive.d.ts +17 -0
  35. package/context-menu/src/context-menu-label.directive.d.ts +5 -0
  36. package/context-menu/src/context-menu-separator.directive.d.ts +6 -0
  37. package/context-menu/src/context-menu-trigger.directive.d.ts +31 -0
  38. package/dialog/index.d.ts +23 -0
  39. package/dialog/src/dialog-close.directive.d.ts +7 -0
  40. package/dialog/src/dialog-content.directive.d.ts +21 -0
  41. package/dialog/src/dialog-description.directive.d.ts +5 -0
  42. package/dialog/src/dialog-dismiss.directive.d.ts +7 -0
  43. package/dialog/src/dialog-ref.d.ts +37 -0
  44. package/dialog/src/dialog-title.directive.d.ts +5 -0
  45. package/dialog/src/dialog-trigger.directive.d.ts +16 -0
  46. package/dialog/src/{dialog.config.ts → dialog.config.d.ts} +17 -33
  47. package/dialog/src/dialog.injectors.d.ts +4 -0
  48. package/dialog/src/{dialog.providers.ts → dialog.providers.d.ts} +3 -11
  49. package/dialog/src/dialog.service.d.ts +26 -0
  50. package/dropdown-menu/src/dropdown-menu-content.directive.d.ts +15 -0
  51. package/dropdown-menu/src/dropdown-menu-item-checkbox.directive.d.ts +9 -0
  52. package/dropdown-menu/src/dropdown-menu-item-indicator.directive.d.ts +7 -0
  53. package/dropdown-menu/src/dropdown-menu-item-radio-group.directive.d.ts +12 -0
  54. package/dropdown-menu/src/dropdown-menu-item-radio.directive.d.ts +19 -0
  55. package/dropdown-menu/src/dropdown-menu-item-selectable.d.ts +12 -0
  56. package/dropdown-menu/src/dropdown-menu-item.directive.d.ts +17 -0
  57. package/dropdown-menu/src/dropdown-menu-label.directive.d.ts +5 -0
  58. package/dropdown-menu/src/dropdown-menu-separator.directive.d.ts +6 -0
  59. package/dropdown-menu/src/dropdown-menu-trigger.directive.d.ts +46 -0
  60. package/esm2022/accordion/index.mjs +6 -0
  61. package/esm2022/accordion/radix-ng-primitives-accordion.mjs +5 -0
  62. package/esm2022/accordion/src/accordion-content.directive.mjs +42 -0
  63. package/esm2022/accordion/src/accordion-header.directive.mjs +23 -0
  64. package/esm2022/accordion/src/accordion-item.directive.mjs +187 -0
  65. package/esm2022/accordion/src/accordion-root.directive.mjs +172 -0
  66. package/esm2022/accordion/src/accordion-trigger.directive.mjs +42 -0
  67. package/esm2022/alert-dialog/index.mjs +7 -0
  68. package/esm2022/alert-dialog/radix-ng-primitives-alert-dialog.mjs +5 -0
  69. package/esm2022/alert-dialog/src/alert-dialog-cancel.directive.mjs +24 -0
  70. package/esm2022/alert-dialog/src/alert-dialog-content.directive.mjs +34 -0
  71. package/esm2022/alert-dialog/src/alert-dialog-root.directive.mjs +24 -0
  72. package/esm2022/alert-dialog/src/alert-dialog-title.directive.mjs +14 -0
  73. package/esm2022/alert-dialog/src/alert-dialog-trigger.directive.mjs +24 -0
  74. package/esm2022/alert-dialog/src/alert-dialog.service.mjs +46 -0
  75. package/esm2022/avatar/index.mjs +5 -0
  76. package/esm2022/avatar/radix-ng-primitives-avatar.mjs +5 -0
  77. package/esm2022/avatar/src/avatar-fallback.directive.mjs +60 -0
  78. package/esm2022/avatar/src/avatar-image.directive.mjs +52 -0
  79. package/esm2022/avatar/src/avatar-root.directive.mjs +38 -0
  80. package/esm2022/avatar/src/avatar.config.mjs +17 -0
  81. package/esm2022/checkbox/index.mjs +6 -0
  82. package/esm2022/checkbox/radix-ng-primitives-checkbox.mjs +5 -0
  83. package/esm2022/checkbox/src/checkbox-button.directive.mjs +33 -0
  84. package/esm2022/checkbox/src/checkbox-indicator.directive.mjs +24 -0
  85. package/esm2022/checkbox/src/checkbox-input.directive.mjs +41 -0
  86. package/esm2022/checkbox/src/checkbox.directive.mjs +141 -0
  87. package/esm2022/checkbox/src/checkbox.token.mjs +6 -0
  88. package/esm2022/collapsible/index.mjs +4 -0
  89. package/esm2022/collapsible/radix-ng-primitives-collapsible.mjs +5 -0
  90. package/esm2022/collapsible/src/collapsible-content.directive.mjs +45 -0
  91. package/esm2022/collapsible/src/collapsible-content.token.mjs +3 -0
  92. package/esm2022/collapsible/src/collapsible-root.directive.mjs +118 -0
  93. package/esm2022/collapsible/src/collapsible-trigger.directive.mjs +49 -0
  94. package/esm2022/context-menu/index.mjs +11 -0
  95. package/esm2022/context-menu/radix-ng-primitives-context-menu.mjs +5 -0
  96. package/esm2022/context-menu/src/context-menu-content.directive.mjs +56 -0
  97. package/esm2022/context-menu/src/context-menu-item-checkbox.directive.mjs +39 -0
  98. package/esm2022/context-menu/src/context-menu-item-indicator.directive.mjs +22 -0
  99. package/esm2022/context-menu/src/context-menu-item-radio-group.directive.mjs +37 -0
  100. package/esm2022/context-menu/src/context-menu-item-radio.directive.mjs +67 -0
  101. package/esm2022/context-menu/src/context-menu-item-selectable.mjs +31 -0
  102. package/esm2022/context-menu/src/context-menu-item.directive.mjs +70 -0
  103. package/esm2022/context-menu/src/context-menu-label.directive.mjs +14 -0
  104. package/esm2022/context-menu/src/context-menu-separator.directive.mjs +21 -0
  105. package/esm2022/context-menu/src/context-menu-trigger.directive.mjs +92 -0
  106. package/esm2022/dialog/index.mjs +47 -0
  107. package/esm2022/dialog/radix-ng-primitives-dialog.mjs +5 -0
  108. package/esm2022/dialog/src/dialog-close.directive.mjs +25 -0
  109. package/esm2022/dialog/src/dialog-content.directive.mjs +46 -0
  110. package/esm2022/dialog/src/dialog-description.directive.mjs +14 -0
  111. package/esm2022/dialog/src/dialog-dismiss.directive.mjs +25 -0
  112. package/esm2022/dialog/src/dialog-ref.mjs +46 -0
  113. package/esm2022/dialog/src/dialog-title.directive.mjs +14 -0
  114. package/esm2022/dialog/src/dialog-trigger.directive.mjs +54 -0
  115. package/esm2022/dialog/src/dialog.config.mjs +6 -0
  116. package/esm2022/dialog/src/dialog.injectors.mjs +10 -0
  117. package/esm2022/dialog/src/dialog.providers.mjs +26 -0
  118. package/esm2022/dialog/src/dialog.service.mjs +87 -0
  119. package/esm2022/dropdown-menu/index.mjs +11 -0
  120. package/esm2022/dropdown-menu/radix-ng-primitives-dropdown-menu.mjs +5 -0
  121. package/esm2022/dropdown-menu/src/dropdown-menu-content.directive.mjs +56 -0
  122. package/esm2022/dropdown-menu/src/dropdown-menu-item-checkbox.directive.mjs +39 -0
  123. package/esm2022/dropdown-menu/src/dropdown-menu-item-indicator.directive.mjs +22 -0
  124. package/esm2022/dropdown-menu/src/dropdown-menu-item-radio-group.directive.mjs +37 -0
  125. package/esm2022/dropdown-menu/src/dropdown-menu-item-radio.directive.mjs +67 -0
  126. package/esm2022/dropdown-menu/src/dropdown-menu-item-selectable.mjs +31 -0
  127. package/esm2022/dropdown-menu/src/dropdown-menu-item.directive.mjs +71 -0
  128. package/esm2022/dropdown-menu/src/dropdown-menu-label.directive.mjs +14 -0
  129. package/esm2022/dropdown-menu/src/dropdown-menu-separator.directive.mjs +21 -0
  130. package/esm2022/dropdown-menu/src/dropdown-menu-trigger.directive.mjs +179 -0
  131. package/esm2022/index.mjs +2 -0
  132. package/esm2022/label/index.mjs +2 -0
  133. package/esm2022/label/radix-ng-primitives-label.mjs +5 -0
  134. package/esm2022/label/src/label.directive.mjs +59 -0
  135. package/esm2022/menu/index.mjs +45 -0
  136. package/esm2022/menu/radix-ng-primitives-menu.mjs +5 -0
  137. package/esm2022/menu/src/menu-content.directive.mjs +17 -0
  138. package/esm2022/menu/src/menu-directive.mjs +18 -0
  139. package/esm2022/menu/src/menu-group.directive.mjs +20 -0
  140. package/esm2022/menu/src/menu-item.directive.mjs +46 -0
  141. package/esm2022/menu/src/menu-label.directive.mjs +14 -0
  142. package/esm2022/menu/src/menu-separator.directive.mjs +21 -0
  143. package/esm2022/menubar/index.mjs +60 -0
  144. package/esm2022/menubar/radix-ng-primitives-menubar.mjs +5 -0
  145. package/esm2022/menubar/src/menubar-content.directive.mjs +17 -0
  146. package/esm2022/menubar/src/menubar-item-checkbox.directive.mjs +34 -0
  147. package/esm2022/menubar/src/menubar-item-indicator.directive.mjs +17 -0
  148. package/esm2022/menubar/src/menubar-item-radio.directive.mjs +35 -0
  149. package/esm2022/menubar/src/menubar-item.directive.mjs +20 -0
  150. package/esm2022/menubar/src/menubar-radio-group.directive.mjs +17 -0
  151. package/esm2022/menubar/src/menubar-root.directive.mjs +24 -0
  152. package/esm2022/menubar/src/menubar-separator.directive.mjs +17 -0
  153. package/esm2022/menubar/src/menubar-trigger.directive.mjs +45 -0
  154. package/esm2022/progress/index.mjs +3 -0
  155. package/esm2022/progress/radix-ng-primitives-progress.mjs +5 -0
  156. package/esm2022/progress/src/progress-indicator.directive.mjs +34 -0
  157. package/esm2022/progress/src/progress-root.directive.mjs +127 -0
  158. package/esm2022/radio/index.mjs +4 -0
  159. package/esm2022/radio/radix-ng-primitives-radio.mjs +5 -0
  160. package/esm2022/radio/src/radio-indicator.directive.mjs +25 -0
  161. package/esm2022/radio/src/radio-item.directive.mjs +70 -0
  162. package/esm2022/radio/src/radio-root.directive.mjs +194 -0
  163. package/esm2022/radio/src/radio-tokens.mjs +3 -0
  164. package/esm2022/radix-ng-primitives.mjs +5 -0
  165. package/esm2022/separator/index.mjs +2 -0
  166. package/esm2022/separator/radix-ng-primitives-separator.mjs +5 -0
  167. package/esm2022/separator/src/separator.directive.mjs +32 -0
  168. package/esm2022/switch/index.mjs +30 -0
  169. package/esm2022/switch/radix-ng-primitives-switch.mjs +5 -0
  170. package/esm2022/switch/src/switch-input.directive.mjs +32 -0
  171. package/esm2022/switch/src/switch-root.directive.mjs +95 -0
  172. package/esm2022/switch/src/switch-thumb.directive.mjs +23 -0
  173. package/esm2022/tabs/index.mjs +38 -0
  174. package/esm2022/tabs/radix-ng-primitives-tabs.mjs +5 -0
  175. package/esm2022/tabs/src/tabs-content.directive.mjs +29 -0
  176. package/esm2022/tabs/src/tabs-context.service.mjs +43 -0
  177. package/esm2022/tabs/src/tabs-list.directive.mjs +23 -0
  178. package/esm2022/tabs/src/tabs-root.directive.mjs +54 -0
  179. package/esm2022/tabs/src/tabs-trigger.directive.mjs +52 -0
  180. package/esm2022/toggle/index.mjs +2 -0
  181. package/esm2022/toggle/radix-ng-primitives-toggle.mjs +5 -0
  182. package/esm2022/toggle/src/toggle.directive.mjs +39 -0
  183. package/esm2022/toggle-group/index.mjs +6 -0
  184. package/esm2022/toggle-group/radix-ng-primitives-toggle-group.mjs +5 -0
  185. package/esm2022/toggle-group/src/toggle-group-button.directive.mjs +75 -0
  186. package/esm2022/toggle-group/src/toggle-group-button.token.mjs +6 -0
  187. package/esm2022/toggle-group/src/toggle-group-multi.directive.mjs +143 -0
  188. package/esm2022/toggle-group/src/toggle-group.directive.mjs +134 -0
  189. package/esm2022/toggle-group/src/toggle-group.token.mjs +6 -0
  190. package/fesm2022/radix-ng-primitives-accordion.mjs +455 -0
  191. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -0
  192. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +159 -0
  193. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -0
  194. package/fesm2022/radix-ng-primitives-avatar.mjs +166 -0
  195. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -0
  196. package/fesm2022/radix-ng-primitives-checkbox.mjs +241 -0
  197. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -0
  198. package/fesm2022/radix-ng-primitives-collapsible.mjs +213 -0
  199. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -0
  200. package/fesm2022/radix-ng-primitives-context-menu.mjs +420 -0
  201. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -0
  202. package/fesm2022/radix-ng-primitives-dialog.mjs +361 -0
  203. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -0
  204. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +509 -0
  205. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +1 -0
  206. package/fesm2022/radix-ng-primitives-label.mjs +66 -0
  207. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -0
  208. package/fesm2022/radix-ng-primitives-menu.mjs +158 -0
  209. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -0
  210. package/fesm2022/radix-ng-primitives-menubar.mjs +245 -0
  211. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -0
  212. package/fesm2022/radix-ng-primitives-progress.mjs +165 -0
  213. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -0
  214. package/fesm2022/radix-ng-primitives-radio.mjs +289 -0
  215. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -0
  216. package/fesm2022/radix-ng-primitives-separator.mjs +39 -0
  217. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -0
  218. package/fesm2022/radix-ng-primitives-switch.mjs +173 -0
  219. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -0
  220. package/fesm2022/radix-ng-primitives-tabs.mjs +222 -0
  221. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -0
  222. package/fesm2022/radix-ng-primitives-toggle-group.mjs +358 -0
  223. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -0
  224. package/fesm2022/radix-ng-primitives-toggle.mjs +46 -0
  225. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -0
  226. package/fesm2022/radix-ng-primitives.mjs +4 -0
  227. package/fesm2022/radix-ng-primitives.mjs.map +1 -0
  228. package/label/src/label.directive.d.ts +29 -0
  229. package/menu/index.d.ts +18 -0
  230. package/menu/src/menu-content.directive.d.ts +6 -0
  231. package/menu/src/menu-directive.d.ts +6 -0
  232. package/menu/src/menu-group.directive.d.ts +6 -0
  233. package/menu/src/menu-item.directive.d.ts +12 -0
  234. package/menu/src/menu-label.directive.d.ts +5 -0
  235. package/menu/src/menu-separator.directive.d.ts +6 -0
  236. package/menubar/index.d.ts +24 -0
  237. package/menubar/src/menubar-content.directive.d.ts +6 -0
  238. package/menubar/src/menubar-item-checkbox.directive.d.ts +14 -0
  239. package/menubar/src/menubar-item-indicator.directive.d.ts +5 -0
  240. package/menubar/src/menubar-item-radio.directive.d.ts +14 -0
  241. package/menubar/src/menubar-item.directive.d.ts +8 -0
  242. package/menubar/src/menubar-radio-group.directive.d.ts +6 -0
  243. package/menubar/src/menubar-root.directive.d.ts +7 -0
  244. package/menubar/src/menubar-separator.directive.d.ts +6 -0
  245. package/menubar/src/menubar-trigger.directive.d.ts +11 -0
  246. package/package.json +124 -4
  247. package/progress/{index.ts → index.d.ts} +0 -1
  248. package/progress/src/progress-indicator.directive.d.ts +16 -0
  249. package/progress/src/progress-root.directive.d.ts +63 -0
  250. package/radio/{index.ts → index.d.ts} +0 -1
  251. package/radio/src/radio-indicator.directive.d.ts +9 -0
  252. package/radio/src/radio-item.directive.d.ts +21 -0
  253. package/radio/src/radio-root.directive.d.ts +72 -0
  254. package/radio/src/{radio-tokens.ts → radio-tokens.d.ts} +1 -5
  255. package/separator/src/separator.directive.d.ts +22 -0
  256. package/switch/index.d.ts +13 -0
  257. package/switch/src/switch-input.directive.d.ts +6 -0
  258. package/switch/src/switch-root.directive.d.ts +51 -0
  259. package/switch/src/switch-thumb.directive.d.ts +6 -0
  260. package/tabs/index.d.ts +15 -0
  261. package/tabs/src/tabs-content.directive.d.ts +8 -0
  262. package/tabs/src/tabs-context.service.d.ts +22 -0
  263. package/tabs/src/tabs-list.directive.d.ts +6 -0
  264. package/tabs/src/tabs-root.directive.d.ts +37 -0
  265. package/tabs/src/tabs-trigger.directive.d.ts +19 -0
  266. package/toggle/src/toggle.directive.d.ts +30 -0
  267. package/toggle-group/src/toggle-group-button.directive.d.ts +39 -0
  268. package/toggle-group/src/toggle-group-button.token.d.ts +4 -0
  269. package/toggle-group/src/toggle-group-multi.directive.d.ts +93 -0
  270. package/toggle-group/src/toggle-group.directive.d.ts +84 -0
  271. package/toggle-group/src/toggle-group.token.d.ts +5 -0
  272. package/.compodocrc.json +0 -12
  273. package/CHANGELOG.md +0 -182
  274. package/accordion/__tests__/accordion-content.directive.spec.ts +0 -8
  275. package/accordion/__tests__/accordion-header.directive.spec.ts +0 -8
  276. package/accordion/__tests__/accordion-item.directive.spec.ts +0 -8
  277. package/accordion/__tests__/accordion-root.directive.spec.ts +0 -8
  278. package/accordion/__tests__/accordion-trigger.directive.spec.ts +0 -8
  279. package/accordion/ng-package.json +0 -5
  280. package/accordion/src/accordion-content.directive.ts +0 -46
  281. package/accordion/src/accordion-header.directive.ts +0 -15
  282. package/accordion/src/accordion-item.directive.ts +0 -216
  283. package/accordion/src/accordion-root.directive.ts +0 -205
  284. package/accordion/src/accordion-trigger.directive.ts +0 -37
  285. package/accordion/stories/accordion.docs.mdx +0 -77
  286. package/accordion/stories/accordion.stories.ts +0 -340
  287. package/alert-dialog/ng-package.json +0 -5
  288. package/alert-dialog/src/alert-dialog-cancel.directive.ts +0 -17
  289. package/alert-dialog/src/alert-dialog-content.directive.ts +0 -24
  290. package/alert-dialog/src/alert-dialog-root.directive.ts +0 -15
  291. package/alert-dialog/src/alert-dialog-title.directive.ts +0 -7
  292. package/alert-dialog/src/alert-dialog-trigger.directive.ts +0 -17
  293. package/alert-dialog/src/alert-dialog.service.ts +0 -51
  294. package/alert-dialog/stories/alert-dialog.stories.ts +0 -139
  295. package/avatar/__tests__/avatar-fallback.directive.spec.ts +0 -31
  296. package/avatar/__tests__/avatar-image.directive.spec.ts +0 -36
  297. package/avatar/ng-package.json +0 -5
  298. package/avatar/src/avatar-fallback.directive.ts +0 -62
  299. package/avatar/src/avatar-image.directive.ts +0 -55
  300. package/avatar/src/avatar-root.directive.ts +0 -35
  301. package/avatar/src/avatar.config.ts +0 -29
  302. package/avatar/stories/avatar.docs.mdx +0 -37
  303. package/avatar/stories/avatar.stories.ts +0 -87
  304. package/button/__tests__/.gitkeep +0 -0
  305. package/button/src/button-abstract.directive.ts +0 -46
  306. package/checkbox/ng-package.json +0 -5
  307. package/checkbox/src/checkbox-button.directive.ts +0 -26
  308. package/checkbox/src/checkbox-indicator.directive.ts +0 -16
  309. package/checkbox/src/checkbox-input.directive.ts +0 -36
  310. package/checkbox/src/checkbox.directive.ts +0 -146
  311. package/checkbox/src/checkbox.token.ts +0 -8
  312. package/checkbox/stories/checkbox-group.component.ts +0 -87
  313. package/checkbox/stories/checkbox-group.styles.scss +0 -49
  314. package/checkbox/stories/checkbox-indeterminate.component.ts +0 -52
  315. package/checkbox/stories/checkbox.docs.mdx +0 -58
  316. package/checkbox/stories/checkbox.stories.ts +0 -105
  317. package/collapsible/__tests__/collapsible-content.directive.spec.ts +0 -30
  318. package/collapsible/__tests__/collapsible-root.directive.spec.ts +0 -27
  319. package/collapsible/__tests__/collapsible-trigger.directive.spec.ts +0 -30
  320. package/collapsible/ng-package.json +0 -5
  321. package/collapsible/src/collapsible-content.directive.ts +0 -34
  322. package/collapsible/src/collapsible-content.token.ts +0 -6
  323. package/collapsible/src/collapsible-root.directive.ts +0 -120
  324. package/collapsible/src/collapsible-trigger.directive.ts +0 -44
  325. package/collapsible/stories/collapsible-animation.component.ts +0 -116
  326. package/collapsible/stories/collapsible-external-triggering.component.ts +0 -86
  327. package/collapsible/stories/collapsible.docs.mdx +0 -53
  328. package/collapsible/stories/collapsible.stories.ts +0 -151
  329. package/context-menu/ng-package.json +0 -5
  330. package/context-menu/src/context-menu-content.directive.ts +0 -47
  331. package/context-menu/src/context-menu-item-checkbox.directive.ts +0 -30
  332. package/context-menu/src/context-menu-item-indicator.directive.ts +0 -14
  333. package/context-menu/src/context-menu-item-radio-group.directive.ts +0 -31
  334. package/context-menu/src/context-menu-item-radio.directive.ts +0 -69
  335. package/context-menu/src/context-menu-item-selectable.ts +0 -18
  336. package/context-menu/src/context-menu-item.directive.ts +0 -65
  337. package/context-menu/src/context-menu-label.directive.ts +0 -7
  338. package/context-menu/src/context-menu-separator.directive.ts +0 -13
  339. package/context-menu/src/context-menu-trigger.directive.ts +0 -82
  340. package/context-menu/stories/context-menu.docs.mdx +0 -23
  341. package/context-menu/stories/context-menu.stories.ts +0 -253
  342. package/core/index.ts +0 -3
  343. package/core/src/accessor/provide-value-accessor.ts +0 -20
  344. package/core/src/auto-focus.directive.ts +0 -81
  345. package/core/src/inject-ng-control.ts +0 -28
  346. package/core/src/mount.ts +0 -27
  347. package/dialog/__tests__/dialog-content.directive.spec.ts +0 -77
  348. package/dialog/__tests__/dialog-trigger.directive.spec.ts +0 -85
  349. package/dialog/index.ts +0 -31
  350. package/dialog/ng-package.json +0 -5
  351. package/dialog/src/dialog-close.directive.ts +0 -18
  352. package/dialog/src/dialog-content.directive.ts +0 -45
  353. package/dialog/src/dialog-description.directive.ts +0 -7
  354. package/dialog/src/dialog-dismiss.directive.ts +0 -18
  355. package/dialog/src/dialog-ref.ts +0 -70
  356. package/dialog/src/dialog-title.directive.ts +0 -7
  357. package/dialog/src/dialog-trigger.directive.ts +0 -52
  358. package/dialog/src/dialog.injectors.ts +0 -12
  359. package/dialog/src/dialog.service.ts +0 -94
  360. package/dialog/stories/dialog.docs.mdx +0 -32
  361. package/dialog/stories/dialog.stories.ts +0 -233
  362. package/dropdown-menu/ng-package.json +0 -5
  363. package/dropdown-menu/src/dropdown-menu-content.directive.ts +0 -47
  364. package/dropdown-menu/src/dropdown-menu-item-checkbox.directive.ts +0 -30
  365. package/dropdown-menu/src/dropdown-menu-item-indicator.directive.ts +0 -14
  366. package/dropdown-menu/src/dropdown-menu-item-radio-group.directive.ts +0 -31
  367. package/dropdown-menu/src/dropdown-menu-item-radio.directive.ts +0 -72
  368. package/dropdown-menu/src/dropdown-menu-item-selectable.ts +0 -18
  369. package/dropdown-menu/src/dropdown-menu-item.directive.ts +0 -66
  370. package/dropdown-menu/src/dropdown-menu-label.directive.ts +0 -7
  371. package/dropdown-menu/src/dropdown-menu-separator.directive.ts +0 -13
  372. package/dropdown-menu/src/dropdown-menu-trigger.directive.ts +0 -185
  373. package/dropdown-menu/stories/dropdown-menu-item-checkbox.component.ts +0 -104
  374. package/dropdown-menu/stories/dropdown-menu-item-checkbox.styles.scss +0 -106
  375. package/dropdown-menu/stories/dropdown-menu-item-radio.component.ts +0 -95
  376. package/dropdown-menu/stories/dropdown-menu-item-radio.styles.scss +0 -106
  377. package/dropdown-menu/stories/dropdown.docs.mdx +0 -27
  378. package/dropdown-menu/stories/dropdown.stories.ts +0 -212
  379. package/form-field/index.ts +0 -1
  380. package/form-field/src/.gitkeep +0 -0
  381. package/jest.config.ts +0 -21
  382. package/label/__tests__/label-root.directive.spec.ts +0 -99
  383. package/label/ng-package.json +0 -5
  384. package/label/src/label.directive.ts +0 -58
  385. package/label/stories/label.docs.mdx +0 -40
  386. package/label/stories/label.stories.ts +0 -76
  387. package/menu/index.ts +0 -29
  388. package/menu/ng-package.json +0 -5
  389. package/menu/src/menu-content.directive.ts +0 -9
  390. package/menu/src/menu-directive.ts +0 -10
  391. package/menu/src/menu-group.directive.ts +0 -12
  392. package/menu/src/menu-item.directive.ts +0 -44
  393. package/menu/src/menu-label.directive.ts +0 -7
  394. package/menu/src/menu-separator.directive.ts +0 -13
  395. package/menubar/index.ts +0 -38
  396. package/menubar/ng-package.json +0 -5
  397. package/menubar/src/menubar-content.directive.ts +0 -9
  398. package/menubar/src/menubar-item-checkbox.directive.ts +0 -32
  399. package/menubar/src/menubar-item-indicator.directive.ts +0 -10
  400. package/menubar/src/menubar-item-radio.directive.ts +0 -33
  401. package/menubar/src/menubar-item.directive.ts +0 -12
  402. package/menubar/src/menubar-radio-group.directive.ts +0 -9
  403. package/menubar/src/menubar-root.directive.ts +0 -15
  404. package/menubar/src/menubar-separator.directive.ts +0 -9
  405. package/menubar/src/menubar-trigger.directive.ts +0 -40
  406. package/menubar/stories/menubar.stories.ts +0 -229
  407. package/ng-package.json +0 -8
  408. package/portal/stories/portal.docs.mdx +0 -85
  409. package/presence/__test__/presence-test.component.ts +0 -51
  410. package/presence/__test__/presence.spec.ts +0 -50
  411. package/presence/index.ts +0 -4
  412. package/presence/src/presence.ts +0 -119
  413. package/presence/src/transitions/transition.collapse.ts +0 -99
  414. package/presence/src/transitions/transition.toast.ts +0 -27
  415. package/presence/src/types.ts +0 -20
  416. package/presence/src/utils.ts +0 -63
  417. package/presence/stories/presence-story.componen.ts +0 -69
  418. package/presence/stories/presence.docs.mdx +0 -40
  419. package/presence/stories/presence.stories.ts +0 -29
  420. package/progress/__test__/progress.spec.ts +0 -55
  421. package/progress/ng-package.json +0 -5
  422. package/progress/src/progress-indicator.directive.ts +0 -26
  423. package/progress/src/progress-root.directive.ts +0 -134
  424. package/progress/stories/progress.docs.mdx +0 -65
  425. package/progress/stories/progress.stories.ts +0 -66
  426. package/project.json +0 -39
  427. package/radio/ng-package.json +0 -5
  428. package/radio/src/radio-indicator.directive.ts +0 -17
  429. package/radio/src/radio-item.directive.ts +0 -68
  430. package/radio/src/radio-root.directive.ts +0 -207
  431. package/radio/stories/radio-group.component.ts +0 -39
  432. package/radio/stories/radio-group.styles.scss +0 -70
  433. package/radio/stories/radio.docs.mdx +0 -68
  434. package/radio/stories/radio.stories.ts +0 -155
  435. package/separator/__tests__/separator.directive.spec.ts +0 -58
  436. package/separator/ng-package.json +0 -5
  437. package/separator/src/separator.directive.ts +0 -35
  438. package/separator/stories/separator.docs.mdx +0 -37
  439. package/separator/stories/separator.stories.ts +0 -82
  440. package/slider/src/slider-input.directive.ts +0 -0
  441. package/slider/src/slider-thumb.directives.ts +0 -60
  442. package/slider/src/slider-track.directive.ts +0 -11
  443. package/slider/src/slider.directive.ts +0 -59
  444. package/slider/src/slider.types.ts +0 -4
  445. package/switch/index.ts +0 -22
  446. package/switch/ng-package.json +0 -5
  447. package/switch/src/switch-input.directive.ts +0 -24
  448. package/switch/src/switch-root.directive.ts +0 -127
  449. package/switch/src/switch-thumb.directive.ts +0 -15
  450. package/switch/stories/switch.docs.mdx +0 -83
  451. package/switch/stories/switch.stories.ts +0 -149
  452. package/tabs/__tests__/tabs-context.service.spec.ts +0 -35
  453. package/tabs/index.ts +0 -26
  454. package/tabs/ng-package.json +0 -5
  455. package/tabs/src/tabs-content.directive.ts +0 -23
  456. package/tabs/src/tabs-context.service.ts +0 -43
  457. package/tabs/src/tabs-list.directive.ts +0 -21
  458. package/tabs/src/tabs-root.directive.ts +0 -70
  459. package/tabs/src/tabs-trigger.directive.ts +0 -55
  460. package/tabs/stories/tabs.stories.ts +0 -213
  461. package/test-setup.ts +0 -1
  462. package/toggle/__tests__/toggle.directive.spec.ts +0 -87
  463. package/toggle/ng-package.json +0 -5
  464. package/toggle/src/toggle.directive.ts +0 -49
  465. package/toggle/stories/toggle.docs.mdx +0 -60
  466. package/toggle/stories/toggle.stories.ts +0 -84
  467. package/toggle-group/ng-package.json +0 -5
  468. package/toggle-group/src/toggle-group-button.directive.ts +0 -73
  469. package/toggle-group/src/toggle-group-button.token.ts +0 -8
  470. package/toggle-group/src/toggle-group-multi.directive.ts +0 -158
  471. package/toggle-group/src/toggle-group.directive.ts +0 -148
  472. package/toggle-group/src/toggle-group.token.ts +0 -11
  473. package/toggle-group/stories/toggle-group.docs.mdx +0 -87
  474. package/toggle-group/stories/toggle-group.stories.ts +0 -95
  475. package/tsconfig.doc.json +0 -11
  476. package/tsconfig.json +0 -29
  477. package/tsconfig.lib.json +0 -19
  478. package/tsconfig.lib.prod.json +0 -12
  479. package/tsconfig.spec.json +0 -11
  480. package/visually-hidden/README.md +0 -3
  481. package/visually-hidden/stories/visually-hidden.docs.mdx +0 -36
  482. /package/accordion/{index.ts → index.d.ts} +0 -0
  483. /package/avatar/{index.ts → index.d.ts} +0 -0
  484. /package/checkbox/{index.ts → index.d.ts} +0 -0
  485. /package/collapsible/{index.ts → index.d.ts} +0 -0
  486. /package/context-menu/{index.ts → index.d.ts} +0 -0
  487. /package/dropdown-menu/{index.ts → index.d.ts} +0 -0
  488. /package/{index.ts → index.d.ts} +0 -0
  489. /package/label/{index.ts → index.d.ts} +0 -0
  490. /package/separator/{index.ts → index.d.ts} +0 -0
  491. /package/toggle/{index.ts → index.d.ts} +0 -0
  492. /package/toggle-group/{index.ts → index.d.ts} +0 -0
@@ -0,0 +1,38 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { RdxTabsContentDirective } from './src/tabs-content.directive';
3
+ import { RdxTabsContextService } from './src/tabs-context.service';
4
+ import { RdxTabsListDirective } from './src/tabs-list.directive';
5
+ import { RdxTabsRootDirective } from './src/tabs-root.directive';
6
+ import { RdxTabsTriggerDirective } from './src/tabs-trigger.directive';
7
+ import * as i0 from "@angular/core";
8
+ export * from './src/tabs-content.directive';
9
+ export * from './src/tabs-context.service';
10
+ export * from './src/tabs-list.directive';
11
+ export * from './src/tabs-root.directive';
12
+ export * from './src/tabs-trigger.directive';
13
+ const tabsImports = [
14
+ RdxTabsRootDirective,
15
+ RdxTabsContentDirective,
16
+ RdxTabsListDirective,
17
+ RdxTabsTriggerDirective
18
+ ];
19
+ export class RdxTabsModule {
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
21
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.1", ngImport: i0, type: RdxTabsModule, imports: [RdxTabsRootDirective,
22
+ RdxTabsContentDirective,
23
+ RdxTabsListDirective,
24
+ RdxTabsTriggerDirective], exports: [RdxTabsRootDirective,
25
+ RdxTabsContentDirective,
26
+ RdxTabsListDirective,
27
+ RdxTabsTriggerDirective] }); }
28
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxTabsModule, providers: [RdxTabsContextService] }); }
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxTabsModule, decorators: [{
31
+ type: NgModule,
32
+ args: [{
33
+ imports: [...tabsImports],
34
+ exports: [...tabsImports],
35
+ providers: [RdxTabsContextService]
36
+ }]
37
+ }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3RhYnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFFdkUsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDhCQUE4QixDQUFDO0FBRTdDLE1BQU0sV0FBVyxHQUFHO0lBQ2hCLG9CQUFvQjtJQUNwQix1QkFBdUI7SUFDdkIsb0JBQW9CO0lBQ3BCLHVCQUF1QjtDQUMxQixDQUFDO0FBT0YsTUFBTSxPQUFPLGFBQWE7OEdBQWIsYUFBYTsrR0FBYixhQUFhLFlBWHRCLG9CQUFvQjtZQUNwQix1QkFBdUI7WUFDdkIsb0JBQW9CO1lBQ3BCLHVCQUF1QixhQUh2QixvQkFBb0I7WUFDcEIsdUJBQXVCO1lBQ3ZCLG9CQUFvQjtZQUNwQix1QkFBdUI7K0dBUWQsYUFBYSxhQUZYLENBQUMscUJBQXFCLENBQUM7OzJGQUV6QixhQUFhO2tCQUx6QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLEdBQUcsV0FBVyxDQUFDO29CQUN6QixPQUFPLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQztvQkFDekIsU0FBUyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ3JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkeFRhYnNDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9zcmMvdGFicy1jb250ZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSZHhUYWJzQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuL3NyYy90YWJzLWNvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBSZHhUYWJzTGlzdERpcmVjdGl2ZSB9IGZyb20gJy4vc3JjL3RhYnMtbGlzdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmR4VGFic1Jvb3REaXJlY3RpdmUgfSBmcm9tICcuL3NyYy90YWJzLXJvb3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJkeFRhYnNUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSAnLi9zcmMvdGFicy10cmlnZ2VyLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc3JjL3RhYnMtY29udGVudC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvdGFicy1jb250ZXh0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvdGFicy1saXN0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy90YWJzLXJvb3QuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3RhYnMtdHJpZ2dlci5kaXJlY3RpdmUnO1xuXG5jb25zdCB0YWJzSW1wb3J0cyA9IFtcbiAgICBSZHhUYWJzUm9vdERpcmVjdGl2ZSxcbiAgICBSZHhUYWJzQ29udGVudERpcmVjdGl2ZSxcbiAgICBSZHhUYWJzTGlzdERpcmVjdGl2ZSxcbiAgICBSZHhUYWJzVHJpZ2dlckRpcmVjdGl2ZVxuXTtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbLi4udGFic0ltcG9ydHNdLFxuICAgIGV4cG9ydHM6IFsuLi50YWJzSW1wb3J0c10sXG4gICAgcHJvdmlkZXJzOiBbUmR4VGFic0NvbnRleHRTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBSZHhUYWJzTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaXgtbmctcHJpbWl0aXZlcy10YWJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy90YWJzL3JhZGl4LW5nLXByaW1pdGl2ZXMtdGFicy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,29 @@
1
+ import { computed, Directive, inject, input } from '@angular/core';
2
+ import { TABS_CONTEXT_TOKEN } from './tabs-context.service';
3
+ import * as i0 from "@angular/core";
4
+ export class RdxTabsContentDirective {
5
+ constructor() {
6
+ this.tabsContext = inject(TABS_CONTEXT_TOKEN);
7
+ this.value = input.required();
8
+ this.selected = computed(() => this.tabsContext.value$() === this.value());
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxTabsContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
11
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.1", type: RdxTabsContentDirective, isStandalone: true, selector: "[rdxTabsContent]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "role": "tabpanel", "tabindex": "0" }, properties: { "id": "tabsContext.getBaseId()", "attr.aria-labelledby": "tabsContext.getBaseId()", "attr.data-state": "selected() ? \"active\" : \"inactive\"", "attr.data-orientation": "tabsContext.orientation$()", "hidden": "!selected()" } }, ngImport: i0 }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxTabsContentDirective, decorators: [{
14
+ type: Directive,
15
+ args: [{
16
+ selector: '[rdxTabsContent]',
17
+ standalone: true,
18
+ host: {
19
+ role: 'tabpanel',
20
+ tabindex: '0',
21
+ '[id]': 'tabsContext.getBaseId()',
22
+ '[attr.aria-labelledby]': 'tabsContext.getBaseId()',
23
+ '[attr.data-state]': 'selected() ? "active" : "inactive"',
24
+ '[attr.data-orientation]': 'tabsContext.orientation$()',
25
+ '[hidden]': '!selected()'
26
+ }
27
+ }]
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy1jb250ZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvdGFicy9zcmMvdGFicy1jb250ZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQWU1RCxNQUFNLE9BQU8sdUJBQXVCO0lBYnBDO1FBY3VCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFbkQsVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUV2QixhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDNUY7OEdBTlksdUJBQXVCO2tHQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBYm5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDRixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsUUFBUSxFQUFFLEdBQUc7d0JBQ2IsTUFBTSxFQUFFLHlCQUF5Qjt3QkFDakMsd0JBQXdCLEVBQUUseUJBQXlCO3dCQUNuRCxtQkFBbUIsRUFBRSxvQ0FBb0M7d0JBQ3pELHlCQUF5QixFQUFFLDRCQUE0Qjt3QkFDdkQsVUFBVSxFQUFFLGFBQWE7cUJBQzVCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIERpcmVjdGl2ZSwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVEFCU19DT05URVhUX1RPS0VOIH0gZnJvbSAnLi90YWJzLWNvbnRleHQuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JkeFRhYnNDb250ZW50XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBob3N0OiB7XG4gICAgICAgIHJvbGU6ICd0YWJwYW5lbCcsXG4gICAgICAgIHRhYmluZGV4OiAnMCcsXG4gICAgICAgICdbaWRdJzogJ3RhYnNDb250ZXh0LmdldEJhc2VJZCgpJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtbGFiZWxsZWRieV0nOiAndGFic0NvbnRleHQuZ2V0QmFzZUlkKCknLFxuICAgICAgICAnW2F0dHIuZGF0YS1zdGF0ZV0nOiAnc2VsZWN0ZWQoKSA/IFwiYWN0aXZlXCIgOiBcImluYWN0aXZlXCInLFxuICAgICAgICAnW2F0dHIuZGF0YS1vcmllbnRhdGlvbl0nOiAndGFic0NvbnRleHQub3JpZW50YXRpb24kKCknLFxuICAgICAgICAnW2hpZGRlbl0nOiAnIXNlbGVjdGVkKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBSZHhUYWJzQ29udGVudERpcmVjdGl2ZSB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRhYnNDb250ZXh0ID0gaW5qZWN0KFRBQlNfQ09OVEVYVF9UT0tFTik7XG5cbiAgICByZWFkb25seSB2YWx1ZSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBzZWxlY3RlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMudGFic0NvbnRleHQudmFsdWUkKCkgPT09IHRoaXMudmFsdWUoKSk7XG59XG4iXX0=
@@ -0,0 +1,43 @@
1
+ import { computed, Injectable, InjectionToken, signal } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export const TABS_CONTEXT_TOKEN = new InjectionToken('TabsContext');
4
+ export class RdxTabsContextService {
5
+ constructor() {
6
+ this.baseId = this.generateId();
7
+ this.value = signal(undefined);
8
+ this.orientation = signal('horizontal');
9
+ this.dir = signal(undefined);
10
+ this.activationMode = signal('automatic');
11
+ this.value$ = computed(() => this.value());
12
+ this.orientation$ = computed(() => this.orientation());
13
+ this.dir$ = computed(() => this.dir());
14
+ this.activationMode$ = computed(() => this.activationMode());
15
+ }
16
+ setValue(value) {
17
+ this.value.set(value);
18
+ }
19
+ setOrientation(orientation) {
20
+ this.orientation.set(orientation);
21
+ }
22
+ setDir(dir) {
23
+ this.dir.set(dir);
24
+ }
25
+ setActivationMode(mode) {
26
+ this.activationMode.set(mode);
27
+ }
28
+ getBaseId() {
29
+ return this.baseId;
30
+ }
31
+ generateId() {
32
+ return `tabs-${Math.random().toString(36).substr(2, 9)}`;
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxTabsContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
35
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxTabsContextService, providedIn: 'root' }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxTabsContextService, decorators: [{
38
+ type: Injectable,
39
+ args: [{
40
+ providedIn: 'root'
41
+ }]
42
+ }] });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy1jb250ZXh0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3RhYnMvc3JjL3RhYnMtY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTdFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUF3QixhQUFhLENBQUMsQ0FBQztBQUszRixNQUFNLE9BQU8scUJBQXFCO0lBSGxDO1FBSVksV0FBTSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMzQixVQUFLLEdBQUcsTUFBTSxDQUFxQixTQUFTLENBQUMsQ0FBQztRQUM5QyxnQkFBVyxHQUFHLE1BQU0sQ0FBUyxZQUFZLENBQUMsQ0FBQztRQUMzQyxRQUFHLEdBQUcsTUFBTSxDQUFxQixTQUFTLENBQUMsQ0FBQztRQUM1QyxtQkFBYyxHQUFHLE1BQU0sQ0FBUyxXQUFXLENBQUMsQ0FBQztRQUU1QyxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLGlCQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELFNBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbEMsb0JBQWUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7S0F5QnBFO0lBdkJHLFFBQVEsQ0FBQyxLQUFhO1FBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxjQUFjLENBQUMsV0FBbUI7UUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFXO1FBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFNBQVM7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVPLFVBQVU7UUFDZCxPQUFPLFFBQVEsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDN0QsQ0FBQzs4R0FsQ1EscUJBQXFCO2tIQUFyQixxQkFBcUIsY0FGbEIsTUFBTTs7MkZBRVQscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBUQUJTX0NPTlRFWFRfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48UmR4VGFic0NvbnRleHRTZXJ2aWNlPignVGFic0NvbnRleHQnKTtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBSZHhUYWJzQ29udGV4dFNlcnZpY2Uge1xuICAgIHByaXZhdGUgYmFzZUlkID0gdGhpcy5nZW5lcmF0ZUlkKCk7XG4gICAgcHJpdmF0ZSB2YWx1ZSA9IHNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gICAgcHJpdmF0ZSBvcmllbnRhdGlvbiA9IHNpZ25hbDxzdHJpbmc+KCdob3Jpem9udGFsJyk7XG4gICAgcHJpdmF0ZSBkaXIgPSBzaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAgIHByaXZhdGUgYWN0aXZhdGlvbk1vZGUgPSBzaWduYWw8c3RyaW5nPignYXV0b21hdGljJyk7XG5cbiAgICByZWFkb25seSB2YWx1ZSQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnZhbHVlKCkpO1xuICAgIHJlYWRvbmx5IG9yaWVudGF0aW9uJCA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3JpZW50YXRpb24oKSk7XG4gICAgcmVhZG9ubHkgZGlyJCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZGlyKCkpO1xuICAgIHJlYWRvbmx5IGFjdGl2YXRpb25Nb2RlJCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYWN0aXZhdGlvbk1vZGUoKSk7XG5cbiAgICBzZXRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMudmFsdWUuc2V0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBzZXRPcmllbnRhdGlvbihvcmllbnRhdGlvbjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMub3JpZW50YXRpb24uc2V0KG9yaWVudGF0aW9uKTtcbiAgICB9XG5cbiAgICBzZXREaXIoZGlyOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5kaXIuc2V0KGRpcik7XG4gICAgfVxuXG4gICAgc2V0QWN0aXZhdGlvbk1vZGUobW9kZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuYWN0aXZhdGlvbk1vZGUuc2V0KG1vZGUpO1xuICAgIH1cblxuICAgIGdldEJhc2VJZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZUlkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2VuZXJhdGVJZCgpIHtcbiAgICAgICAgcmV0dXJuIGB0YWJzLSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpfWA7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,23 @@
1
+ import { Directive, inject } from '@angular/core';
2
+ import { TABS_CONTEXT_TOKEN } from './tabs-context.service';
3
+ import * as i0 from "@angular/core";
4
+ export class RdxTabsListDirective {
5
+ constructor() {
6
+ this.tabsContext = inject(TABS_CONTEXT_TOKEN);
7
+ }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxTabsListDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.1", type: RdxTabsListDirective, isStandalone: true, selector: "[rdxTabsList]", host: { attributes: { "role": "tablist" }, properties: { "attr.aria-orientation": "tabsContext.orientation$()", "attr.data-orientation": "tabsContext.orientation$()" } }, ngImport: i0 }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxTabsListDirective, decorators: [{
12
+ type: Directive,
13
+ args: [{
14
+ selector: '[rdxTabsList]',
15
+ standalone: true,
16
+ host: {
17
+ role: 'tablist',
18
+ '[attr.aria-orientation]': 'tabsContext.orientation$()',
19
+ '[attr.data-orientation]': 'tabsContext.orientation$()'
20
+ }
21
+ }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy1saXN0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvdGFicy9zcmMvdGFicy1saXN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFpQjVELE1BQU0sT0FBTyxvQkFBb0I7SUFUakM7UUFVdUIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQUMvRDs4R0FGWSxvQkFBb0I7a0dBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFUaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDRixJQUFJLEVBQUUsU0FBUzt3QkFDZix5QkFBeUIsRUFBRSw0QkFBNEI7d0JBQ3ZELHlCQUF5QixFQUFFLDRCQUE0QjtxQkFDMUQ7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVEFCU19DT05URVhUX1RPS0VOIH0gZnJvbSAnLi90YWJzLWNvbnRleHQuc2VydmljZSc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmludGVyZmFjZSBUYWJzTGlzdFByb3BzIHtcbiAgICAvLyBXaGVuIHRydWUsIGtleWJvYXJkIG5hdmlnYXRpb24gd2lsbCBsb29wIGZyb20gbGFzdCB0YWIgdG8gZmlyc3QsIGFuZCB2aWNlIHZlcnNhLlxuICAgIGxvb3A/OiBib29sZWFuO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyZHhUYWJzTGlzdF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdDoge1xuICAgICAgICByb2xlOiAndGFibGlzdCcsXG4gICAgICAgICdbYXR0ci5hcmlhLW9yaWVudGF0aW9uXSc6ICd0YWJzQ29udGV4dC5vcmllbnRhdGlvbiQoKScsXG4gICAgICAgICdbYXR0ci5kYXRhLW9yaWVudGF0aW9uXSc6ICd0YWJzQ29udGV4dC5vcmllbnRhdGlvbiQoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFJkeFRhYnNMaXN0RGlyZWN0aXZlIHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFic0NvbnRleHQgPSBpbmplY3QoVEFCU19DT05URVhUX1RPS0VOKTtcbn1cbiJdfQ==
@@ -0,0 +1,54 @@
1
+ import { Directive, effect, EventEmitter, inject, Input, Output } from '@angular/core';
2
+ import { RdxTabsContextService, TABS_CONTEXT_TOKEN } from './tabs-context.service';
3
+ import * as i0 from "@angular/core";
4
+ export class RdxTabsRootDirective {
5
+ constructor() {
6
+ this.tabsContext = inject(TABS_CONTEXT_TOKEN);
7
+ this.orientation = 'horizontal';
8
+ // Event handler called when the value changes.
9
+ this.onValueChange = new EventEmitter();
10
+ effect(() => {
11
+ const value = this.tabsContext.value$();
12
+ if (value !== undefined) {
13
+ this.onValueChange.emit(value);
14
+ }
15
+ });
16
+ }
17
+ ngOnInit() {
18
+ this.tabsContext.setOrientation(this.orientation);
19
+ if (this.dir) {
20
+ this.tabsContext.setDir(this.dir);
21
+ }
22
+ if (this.value) {
23
+ this.tabsContext.setValue(this.value);
24
+ }
25
+ else if (this.defaultValue) {
26
+ this.tabsContext.setValue(this.defaultValue);
27
+ }
28
+ }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxTabsRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
30
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.1", type: RdxTabsRootDirective, isStandalone: true, selector: "[rdxTabsRoot]", inputs: { value: "value", defaultValue: "defaultValue", orientation: "orientation", dir: "dir" }, outputs: { onValueChange: "onValueChange" }, host: { properties: { "attr.data-orientation": "orientation", "attr.dir": "dir" } }, providers: [{ provide: TABS_CONTEXT_TOKEN, useExisting: RdxTabsContextService }], ngImport: i0 }); }
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxTabsRootDirective, decorators: [{
33
+ type: Directive,
34
+ args: [{
35
+ selector: '[rdxTabsRoot]',
36
+ standalone: true,
37
+ providers: [{ provide: TABS_CONTEXT_TOKEN, useExisting: RdxTabsContextService }],
38
+ host: {
39
+ '[attr.data-orientation]': 'orientation',
40
+ '[attr.dir]': 'dir'
41
+ }
42
+ }]
43
+ }], ctorParameters: () => [], propDecorators: { value: [{
44
+ type: Input
45
+ }], defaultValue: [{
46
+ type: Input
47
+ }], orientation: [{
48
+ type: Input
49
+ }], dir: [{
50
+ type: Input
51
+ }], onValueChange: [{
52
+ type: Output
53
+ }] } });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy1yb290LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvdGFicy9zcmMvdGFicy1yb290LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBbUNuRixNQUFNLE9BQU8sb0JBQW9CO0lBVzdCO1FBVmlCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFJakQsZ0JBQVcsR0FBRyxZQUFZLENBQUM7UUFHcEMsK0NBQStDO1FBQ3JDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUdqRCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4QyxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFbEQsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNMLENBQUM7OEdBaENRLG9CQUFvQjtrR0FBcEIsb0JBQW9CLGdTQU5sQixDQUFDLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBRSxDQUFDOzsyRkFNdkUsb0JBQW9CO2tCQVRoQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLENBQUM7b0JBQ2hGLElBQUksRUFBRTt3QkFDRix5QkFBeUIsRUFBRSxhQUFhO3dCQUN4QyxZQUFZLEVBQUUsS0FBSztxQkFDdEI7aUJBQ0o7d0RBSVksS0FBSztzQkFBYixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBR0ksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgZWZmZWN0LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZHhUYWJzQ29udGV4dFNlcnZpY2UsIFRBQlNfQ09OVEVYVF9UT0tFTiB9IGZyb20gJy4vdGFicy1jb250ZXh0LnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhYnNQcm9wcyB7XG4gICAgLyoqIFRoZSB2YWx1ZSBmb3IgdGhlIHNlbGVjdGVkIHRhYiwgaWYgY29udHJvbGxlZCAqL1xuICAgIHZhbHVlPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgdmFsdWUgb2YgdGhlIHRhYiB0byBzZWxlY3QgYnkgZGVmYXVsdCwgaWYgdW5jb250cm9sbGVkICovXG4gICAgZGVmYXVsdFZhbHVlPzogc3RyaW5nO1xuICAgIC8qKiBBIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIGEgbmV3IHRhYiBpcyBzZWxlY3RlZCAqL1xuICAgIG9uVmFsdWVDaGFuZ2U/OiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBUaGUgb3JpZW50YXRpb24gdGhlIHRhYnMgYXJlIGxheWVkIG91dC5cbiAgICAgKiBNYWlubHkgc28gYXJyb3cgbmF2aWdhdGlvbiBpcyBkb25lIGFjY29yZGluZ2x5IChsZWZ0ICYgcmlnaHQgdnMuIHVwICYgZG93bilcbiAgICAgKiBAZGVmYXVsdFZhbHVlIGhvcml6b250YWxcbiAgICAgKi9cbiAgICBvcmllbnRhdGlvbj86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgZGlyZWN0aW9uIG9mIG5hdmlnYXRpb24gYmV0d2VlbiB0b29sYmFyIGl0ZW1zLlxuICAgICAqL1xuICAgIGRpcj86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIGEgdGFiIGlzIGFjdGl2YXRlZCBhdXRvbWF0aWNhbGx5IG9yIG1hbnVhbGx5LlxuICAgICAqIEBkZWZhdWx0VmFsdWUgYXV0b21hdGljXG4gICAgICogKi9cbiAgICBhY3RpdmF0aW9uTW9kZT86ICdhdXRvbWF0aWMnIHwgJ21hbnVhbCc7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JkeFRhYnNSb290XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFRBQlNfQ09OVEVYVF9UT0tFTiwgdXNlRXhpc3Rpbmc6IFJkeFRhYnNDb250ZXh0U2VydmljZSB9XSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5kYXRhLW9yaWVudGF0aW9uXSc6ICdvcmllbnRhdGlvbicsXG4gICAgICAgICdbYXR0ci5kaXJdJzogJ2RpcidcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFJkeFRhYnNSb290RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRhYnNDb250ZXh0ID0gaW5qZWN0KFRBQlNfQ09OVEVYVF9UT0tFTik7XG5cbiAgICBASW5wdXQoKSB2YWx1ZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgb3JpZW50YXRpb24gPSAnaG9yaXpvbnRhbCc7XG4gICAgQElucHV0KCkgZGlyPzogc3RyaW5nO1xuXG4gICAgLy8gRXZlbnQgaGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgdmFsdWUgY2hhbmdlcy5cbiAgICBAT3V0cHV0KCkgb25WYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudGFic0NvbnRleHQudmFsdWUkKCk7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudGFic0NvbnRleHQuc2V0T3JpZW50YXRpb24odGhpcy5vcmllbnRhdGlvbik7XG5cbiAgICAgICAgaWYgKHRoaXMuZGlyKSB7XG4gICAgICAgICAgICB0aGlzLnRhYnNDb250ZXh0LnNldERpcih0aGlzLmRpcik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy50YWJzQ29udGV4dC5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmRlZmF1bHRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy50YWJzQ29udGV4dC5zZXRWYWx1ZSh0aGlzLmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,52 @@
1
+ import { booleanAttribute, computed, Directive, inject, input } from '@angular/core';
2
+ import { TABS_CONTEXT_TOKEN } from './tabs-context.service';
3
+ import * as i0 from "@angular/core";
4
+ export class RdxTabsTriggerDirective {
5
+ constructor() {
6
+ this.tabsContext = inject(TABS_CONTEXT_TOKEN);
7
+ // A unique value that associates the trigger with a content.
8
+ this.value = input.required();
9
+ // When true, prevents the user from interacting with the tab.
10
+ this.disabled = input(false, {
11
+ transform: booleanAttribute
12
+ });
13
+ this.contentId = computed(() => `${this.tabsContext.getBaseId()}-content-${this.value()}`);
14
+ this.triggerId = computed(() => `${this.tabsContext.getBaseId()}-trigger-${this.value}`);
15
+ this.selected = computed(() => this.tabsContext.value$() === this.value());
16
+ }
17
+ onMouseDown(event) {
18
+ if (!this.disabled() && event.button === 0 && !event.ctrlKey) {
19
+ this.tabsContext?.setValue(this.value());
20
+ }
21
+ else {
22
+ // prevent focus to avoid accidental activation
23
+ event.preventDefault();
24
+ }
25
+ }
26
+ onKeyDown(event) {
27
+ if ([' ', 'Enter'].includes(event.key)) {
28
+ this.tabsContext?.setValue(this.value());
29
+ }
30
+ }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxTabsTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
32
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.1", type: RdxTabsTriggerDirective, isStandalone: true, selector: "[rdxTabsTrigger]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button", "role": "tab" }, listeners: { "mousedown": "onMouseDown($event)", "keydown": "onKeyDown($event)" }, properties: { "id": "triggerId", "attr.aria-selected": "selected()", "attr.aria-controls": "contentId()", "attr.data-disabled": "disabled() ? '' : undefined", "attr.data-state": "selected() ? 'active' : 'inactive'" } }, ngImport: i0 }); }
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxTabsTriggerDirective, decorators: [{
35
+ type: Directive,
36
+ args: [{
37
+ selector: '[rdxTabsTrigger]',
38
+ standalone: true,
39
+ host: {
40
+ type: 'button',
41
+ role: 'tab',
42
+ '[id]': 'triggerId',
43
+ '[attr.aria-selected]': 'selected()',
44
+ '[attr.aria-controls]': 'contentId()',
45
+ '[attr.data-disabled]': "disabled() ? '' : undefined",
46
+ '[attr.data-state]': "selected() ? 'active' : 'inactive'",
47
+ '(mousedown)': 'onMouseDown($event)',
48
+ '(keydown)': 'onKeyDown($event)'
49
+ }
50
+ }]
51
+ }] });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvdGFicy9zcmMvdGFicy10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFzQjVELE1BQU0sT0FBTyx1QkFBdUI7SUFmcEM7UUFnQnVCLGdCQUFXLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFNUQsNkRBQTZEO1FBQ3BELFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFFMUMsOERBQThEO1FBQ3JELGFBQVEsR0FBRyxLQUFLLENBQXdCLEtBQUssRUFBRTtZQUNwRCxTQUFTLEVBQUUsZ0JBQWdCO1NBQzlCLENBQUMsQ0FBQztRQUVnQixjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsWUFBWSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RGLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxZQUFZLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBRXBGLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztLQWdCNUY7SUFkYSxXQUFXLENBQUMsS0FBaUI7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMzRCxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM3QyxDQUFDO2FBQU0sQ0FBQztZQUNKLCtDQUErQztZQUMvQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNMLENBQUM7SUFFUyxTQUFTLENBQUMsS0FBb0I7UUFDcEMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNMLENBQUM7OEdBN0JRLHVCQUF1QjtrR0FBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQWZuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0YsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsSUFBSSxFQUFFLEtBQUs7d0JBQ1gsTUFBTSxFQUFFLFdBQVc7d0JBQ25CLHNCQUFzQixFQUFFLFlBQVk7d0JBQ3BDLHNCQUFzQixFQUFFLGFBQWE7d0JBQ3JDLHNCQUFzQixFQUFFLDZCQUE2Qjt3QkFDckQsbUJBQW1CLEVBQUUsb0NBQW9DO3dCQUN6RCxhQUFhLEVBQUUscUJBQXFCO3dCQUNwQyxXQUFXLEVBQUUsbUJBQW1CO3FCQUNuQztpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBjb21wdXRlZCwgRGlyZWN0aXZlLCBpbmplY3QsIGlucHV0LCBJbnB1dFNpZ25hbFdpdGhUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRBQlNfQ09OVEVYVF9UT0tFTiB9IGZyb20gJy4vdGFicy1jb250ZXh0LnNlcnZpY2UnO1xuXG5pbnRlcmZhY2UgVGFic1RyaWdnZXJQcm9wcyB7XG4gICAgLy8gV2hlbiB0cnVlLCBwcmV2ZW50cyB0aGUgdXNlciBmcm9tIGludGVyYWN0aW5nIHdpdGggdGhlIHRhYi5cbiAgICBkaXNhYmxlZDogSW5wdXRTaWduYWxXaXRoVHJhbnNmb3JtPGJvb2xlYW4sIEJvb2xlYW5JbnB1dD47XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JkeFRhYnNUcmlnZ2VyXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBob3N0OiB7XG4gICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICByb2xlOiAndGFiJyxcbiAgICAgICAgJ1tpZF0nOiAndHJpZ2dlcklkJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtc2VsZWN0ZWRdJzogJ3NlbGVjdGVkKCknLFxuICAgICAgICAnW2F0dHIuYXJpYS1jb250cm9sc10nOiAnY29udGVudElkKCknLFxuICAgICAgICAnW2F0dHIuZGF0YS1kaXNhYmxlZF0nOiBcImRpc2FibGVkKCkgPyAnJyA6IHVuZGVmaW5lZFwiLFxuICAgICAgICAnW2F0dHIuZGF0YS1zdGF0ZV0nOiBcInNlbGVjdGVkKCkgPyAnYWN0aXZlJyA6ICdpbmFjdGl2ZSdcIixcbiAgICAgICAgJyhtb3VzZWRvd24pJzogJ29uTW91c2VEb3duKCRldmVudCknLFxuICAgICAgICAnKGtleWRvd24pJzogJ29uS2V5RG93bigkZXZlbnQpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUmR4VGFic1RyaWdnZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBUYWJzVHJpZ2dlclByb3BzIHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFic0NvbnRleHQgPSBpbmplY3QoVEFCU19DT05URVhUX1RPS0VOKTtcblxuICAgIC8vIEEgdW5pcXVlIHZhbHVlIHRoYXQgYXNzb2NpYXRlcyB0aGUgdHJpZ2dlciB3aXRoIGEgY29udGVudC5cbiAgICByZWFkb25seSB2YWx1ZSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcblxuICAgIC8vIFdoZW4gdHJ1ZSwgcHJldmVudHMgdGhlIHVzZXIgZnJvbSBpbnRlcmFjdGluZyB3aXRoIHRoZSB0YWIuXG4gICAgcmVhZG9ubHkgZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuLCBCb29sZWFuSW5wdXQ+KGZhbHNlLCB7XG4gICAgICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZVxuICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbnRlbnRJZCA9IGNvbXB1dGVkKCgpID0+IGAke3RoaXMudGFic0NvbnRleHQuZ2V0QmFzZUlkKCl9LWNvbnRlbnQtJHt0aGlzLnZhbHVlKCl9YCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRyaWdnZXJJZCA9IGNvbXB1dGVkKCgpID0+IGAke3RoaXMudGFic0NvbnRleHQuZ2V0QmFzZUlkKCl9LXRyaWdnZXItJHt0aGlzLnZhbHVlfWApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdGVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50YWJzQ29udGV4dC52YWx1ZSQoKSA9PT0gdGhpcy52YWx1ZSgpKTtcblxuICAgIHByb3RlY3RlZCBvbk1vdXNlRG93bihldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQoKSAmJiBldmVudC5idXR0b24gPT09IDAgJiYgIWV2ZW50LmN0cmxLZXkpIHtcbiAgICAgICAgICAgIHRoaXMudGFic0NvbnRleHQ/LnNldFZhbHVlKHRoaXMudmFsdWUoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBwcmV2ZW50IGZvY3VzIHRvIGF2b2lkIGFjY2lkZW50YWwgYWN0aXZhdGlvblxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKFsnICcsICdFbnRlciddLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgICAgICAgIHRoaXMudGFic0NvbnRleHQ/LnNldFZhbHVlKHRoaXMudmFsdWUoKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './src/toggle.directive';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3RvZ2dsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMvdG9nZ2xlLmRpcmVjdGl2ZSc7XG5leHBvcnQgdHlwZSB7IFRvZ2dsZVByb3BzIH0gZnJvbSAnLi9zcmMvdG9nZ2xlLmRpcmVjdGl2ZSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaXgtbmctcHJpbWl0aXZlcy10b2dnbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3RvZ2dsZS9yYWRpeC1uZy1wcmltaXRpdmVzLXRvZ2dsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,39 @@
1
+ import { Directive, EventEmitter, input, model, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class RdxToggleDirective {
4
+ constructor() {
5
+ this.defaultPressed = input(false);
6
+ this.pressed = model(this.defaultPressed());
7
+ this.disabled = input(false);
8
+ /**
9
+ * Event emitted when the toggle is pressed.
10
+ */
11
+ this.onPressedChange = new EventEmitter();
12
+ }
13
+ toggle() {
14
+ if (!this.disabled()) {
15
+ this.pressed.set(!this.pressed());
16
+ this.onPressedChange.emit(this.pressed());
17
+ }
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxToggleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
20
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.1", type: RdxToggleDirective, isStandalone: true, selector: "button[rdxToggle]", inputs: { defaultPressed: { classPropertyName: "defaultPressed", publicName: "defaultPressed", isSignal: true, isRequired: false, transformFunction: null }, pressed: { classPropertyName: "pressed", publicName: "pressed", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pressed: "pressedChange", onPressedChange: "onPressedChange" }, host: { attributes: { "type": "button" }, listeners: { "click": "toggle()" }, properties: { "attr.aria-pressed": "pressed()", "attr.data-state": "pressed() ? \"on\" : \"off\"", "attr.data-disabled": "disabled()" } }, exportAs: ["rdxToggle"], ngImport: i0 }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxToggleDirective, decorators: [{
23
+ type: Directive,
24
+ args: [{
25
+ selector: 'button[rdxToggle]',
26
+ exportAs: 'rdxToggle',
27
+ standalone: true,
28
+ host: {
29
+ type: 'button',
30
+ '[attr.aria-pressed]': 'pressed()',
31
+ '[attr.data-state]': 'pressed() ? "on" : "off"',
32
+ '[attr.data-disabled]': 'disabled()',
33
+ '(click)': 'toggle()'
34
+ }
35
+ }]
36
+ }], propDecorators: { onPressedChange: [{
37
+ type: Output
38
+ }] } });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvdG9nZ2xlL3NyYy90b2dnbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWdDOUUsTUFBTSxPQUFPLGtCQUFrQjtJQWIvQjtRQWNhLG1CQUFjLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLFlBQU8sR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDaEQsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUUxQzs7V0FFRztRQUNnQixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7S0FRcEU7SUFOYSxNQUFNO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDOUMsQ0FBQztJQUNMLENBQUM7OEdBZlEsa0JBQWtCO2tHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBYjlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0YsSUFBSSxFQUFFLFFBQVE7d0JBQ2QscUJBQXFCLEVBQUUsV0FBVzt3QkFDbEMsbUJBQW1CLEVBQUUsMEJBQTBCO3dCQUMvQyxzQkFBc0IsRUFBRSxZQUFZO3dCQUVwQyxTQUFTLEVBQUUsVUFBVTtxQkFDeEI7aUJBQ0o7OEJBU3NCLGVBQWU7c0JBQWpDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgaW5wdXQsIG1vZGVsLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBUb2dnbGVQcm9wcyB7XG4gICAgLyoqXG4gICAgICogVGhlIGNvbnRyb2xsZWQgc3RhdGUgb2YgdGhlIHRvZ2dsZS5cbiAgICAgKi9cbiAgICBwcmVzc2VkPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgc3RhdGUgb2YgdGhlIHRvZ2dsZSB3aGVuIGluaXRpYWxseSByZW5kZXJlZC4gVXNlIGBkZWZhdWx0UHJlc3NlZGBcbiAgICAgKiBpZiB5b3UgZG8gbm90IG5lZWQgdG8gY29udHJvbCB0aGUgc3RhdGUgb2YgdGhlIHRvZ2dsZS5cbiAgICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAgICovXG4gICAgZGVmYXVsdFByZXNzZWQ/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRoZSBjYWxsYmFjayB0aGF0IGZpcmVzIHdoZW4gdGhlIHN0YXRlIG9mIHRoZSB0b2dnbGUgY2hhbmdlcy5cbiAgICAgKi9cbiAgICBvblByZXNzZWRDaGFuZ2U/OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnYnV0dG9uW3JkeFRvZ2dsZV0nLFxuICAgIGV4cG9ydEFzOiAncmR4VG9nZ2xlJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICdbYXR0ci5hcmlhLXByZXNzZWRdJzogJ3ByZXNzZWQoKScsXG4gICAgICAgICdbYXR0ci5kYXRhLXN0YXRlXSc6ICdwcmVzc2VkKCkgPyBcIm9uXCIgOiBcIm9mZlwiJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkKCknLFxuXG4gICAgICAgICcoY2xpY2spJzogJ3RvZ2dsZSgpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUmR4VG9nZ2xlRGlyZWN0aXZlIHtcbiAgICByZWFkb25seSBkZWZhdWx0UHJlc3NlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICByZWFkb25seSBwcmVzc2VkID0gbW9kZWw8Ym9vbGVhbj4odGhpcy5kZWZhdWx0UHJlc3NlZCgpKTtcbiAgICByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgdG9nZ2xlIGlzIHByZXNzZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IG9uUHJlc3NlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIHByb3RlY3RlZCB0b2dnbGUoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLnByZXNzZWQuc2V0KCF0aGlzLnByZXNzZWQoKSk7XG4gICAgICAgICAgICB0aGlzLm9uUHJlc3NlZENoYW5nZS5lbWl0KHRoaXMucHJlc3NlZCgpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ export * from './src/toggle-group-button.directive';
2
+ export * from './src/toggle-group-button.token';
3
+ export * from './src/toggle-group-multi.directive';
4
+ export * from './src/toggle-group.directive';
5
+ export * from './src/toggle-group.token';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3RvZ2dsZS1ncm91cC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NyYy90b2dnbGUtZ3JvdXAtYnV0dG9uLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy90b2dnbGUtZ3JvdXAtYnV0dG9uLnRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3RvZ2dsZS1ncm91cC1tdWx0aS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvdG9nZ2xlLWdyb3VwLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy90b2dnbGUtZ3JvdXAudG9rZW4nO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaXgtbmctcHJpbWl0aXZlcy10b2dnbGUtZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3RvZ2dsZS1ncm91cC9yYWRpeC1uZy1wcmltaXRpdmVzLXRvZ2dsZS1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,75 @@
1
+ import { booleanAttribute, Directive, Input } from '@angular/core';
2
+ import { RdxToggleGroupButtonToken } from './toggle-group-button.token';
3
+ import { injectToggleGroup } from './toggle-group.token';
4
+ import * as i0 from "@angular/core";
5
+ export class RdxToggleGroupButtonDirective {
6
+ constructor() {
7
+ /**
8
+ * Access the toggle group.
9
+ * @ignore
10
+ */
11
+ this.toggleGroup = injectToggleGroup();
12
+ /**
13
+ * Whether this toggle button is disabled.
14
+ * @default false
15
+ */
16
+ this.disabled = false;
17
+ }
18
+ /**
19
+ * Whether this toggle button is checked.
20
+ */
21
+ get checked() {
22
+ return this.toggleGroup.isSelected(this.value);
23
+ }
24
+ /**
25
+ * @ignore
26
+ */
27
+ ngOnChanges(changes) {
28
+ if ('disabled' in changes) {
29
+ // TODO
30
+ }
31
+ }
32
+ /**
33
+ * @ignore
34
+ */
35
+ toggle() {
36
+ if (this.disabled) {
37
+ return;
38
+ }
39
+ this.toggleGroup.toggle(this.value);
40
+ }
41
+ /**
42
+ * Ensure the disabled state is propagated to the roving focus item.
43
+ * @internal
44
+ * @ignore
45
+ */
46
+ updateDisabled() {
47
+ // TODO
48
+ }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxToggleGroupButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
50
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.1", type: RdxToggleGroupButtonDirective, isStandalone: true, selector: "button[rdxToggleGroupButton]", inputs: { value: "value", disabled: ["disabled", "disabled", booleanAttribute] }, host: { attributes: { "role": "radio" }, listeners: { "click": "toggle()" }, properties: { "attr.aria-checked": "checked", "attr.aria-disabled": "disabled || toggleGroup.disabled", "attr.data-disabled": "disabled || toggleGroup.disabled", "attr.data-state": "checked ? \"on\" : \"off\"", "attr.data-orientation": "toggleGroup.orientation" } }, providers: [{ provide: RdxToggleGroupButtonToken, useExisting: RdxToggleGroupButtonDirective }], usesOnChanges: true, ngImport: i0 }); }
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxToggleGroupButtonDirective, decorators: [{
53
+ type: Directive,
54
+ args: [{
55
+ selector: 'button[rdxToggleGroupButton]',
56
+ standalone: true,
57
+ providers: [{ provide: RdxToggleGroupButtonToken, useExisting: RdxToggleGroupButtonDirective }],
58
+ host: {
59
+ role: 'radio',
60
+ '[attr.aria-checked]': 'checked',
61
+ '[attr.aria-disabled]': 'disabled || toggleGroup.disabled',
62
+ '[attr.data-disabled]': 'disabled || toggleGroup.disabled',
63
+ '[attr.data-state]': 'checked ? "on" : "off"',
64
+ '[attr.data-orientation]': 'toggleGroup.orientation',
65
+ '(click)': 'toggle()'
66
+ }
67
+ }]
68
+ }], propDecorators: { value: [{
69
+ type: Input,
70
+ args: [{ required: true }]
71
+ }], disabled: [{
72
+ type: Input,
73
+ args: [{ transform: booleanAttribute }]
74
+ }] } });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWdyb3VwLWJ1dHRvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3RvZ2dsZS1ncm91cC9zcmMvdG9nZ2xlLWdyb3VwLWJ1dHRvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQWlCekQsTUFBTSxPQUFPLDZCQUE2QjtJQWYxQztRQWdCSTs7O1dBR0c7UUFDZ0IsZ0JBQVcsR0FBRyxpQkFBaUIsRUFBRSxDQUFDO1FBT3JEOzs7V0FHRztRQUNxQyxhQUFRLEdBQUcsS0FBSyxDQUFDO0tBcUM1RDtJQW5DRzs7T0FFRztJQUNILElBQWMsT0FBTztRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxVQUFVLElBQUksT0FBTyxFQUFFLENBQUM7WUFDeEIsT0FBTztRQUNYLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0YsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxjQUFjO1FBQ1YsT0FBTztJQUNYLENBQUM7OEdBcERRLDZCQUE2QjtrR0FBN0IsNkJBQTZCLDZIQWdCbEIsZ0JBQWdCLHdXQTVCekIsQ0FBQyxFQUFFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxXQUFXLEVBQUUsNkJBQTZCLEVBQUUsQ0FBQzs7MkZBWXRGLDZCQUE2QjtrQkFmekMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsV0FBVywrQkFBK0IsRUFBRSxDQUFDO29CQUMvRixJQUFJLEVBQUU7d0JBQ0YsSUFBSSxFQUFFLE9BQU87d0JBQ2IscUJBQXFCLEVBQUUsU0FBUzt3QkFDaEMsc0JBQXNCLEVBQUUsa0NBQWtDO3dCQUMxRCxzQkFBc0IsRUFBRSxrQ0FBa0M7d0JBQzFELG1CQUFtQixFQUFFLHdCQUF3Qjt3QkFDN0MseUJBQXlCLEVBQUUseUJBQXlCO3dCQUVwRCxTQUFTLEVBQUUsVUFBVTtxQkFDeEI7aUJBQ0o7OEJBVzhCLEtBQUs7c0JBQS9CLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQU1lLFFBQVE7c0JBQS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBEaXJlY3RpdmUsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkeFRvZ2dsZUdyb3VwQnV0dG9uVG9rZW4gfSBmcm9tICcuL3RvZ2dsZS1ncm91cC1idXR0b24udG9rZW4nO1xuaW1wb3J0IHsgaW5qZWN0VG9nZ2xlR3JvdXAgfSBmcm9tICcuL3RvZ2dsZS1ncm91cC50b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnYnV0dG9uW3JkeFRvZ2dsZUdyb3VwQnV0dG9uXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFJkeFRvZ2dsZUdyb3VwQnV0dG9uVG9rZW4sIHVzZUV4aXN0aW5nOiBSZHhUb2dnbGVHcm91cEJ1dHRvbkRpcmVjdGl2ZSB9XSxcbiAgICBob3N0OiB7XG4gICAgICAgIHJvbGU6ICdyYWRpbycsXG4gICAgICAgICdbYXR0ci5hcmlhLWNoZWNrZWRdJzogJ2NoZWNrZWQnLFxuICAgICAgICAnW2F0dHIuYXJpYS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQgfHwgdG9nZ2xlR3JvdXAuZGlzYWJsZWQnLFxuICAgICAgICAnW2F0dHIuZGF0YS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQgfHwgdG9nZ2xlR3JvdXAuZGlzYWJsZWQnLFxuICAgICAgICAnW2F0dHIuZGF0YS1zdGF0ZV0nOiAnY2hlY2tlZCA/IFwib25cIiA6IFwib2ZmXCInLFxuICAgICAgICAnW2F0dHIuZGF0YS1vcmllbnRhdGlvbl0nOiAndG9nZ2xlR3JvdXAub3JpZW50YXRpb24nLFxuXG4gICAgICAgICcoY2xpY2spJzogJ3RvZ2dsZSgpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUmR4VG9nZ2xlR3JvdXBCdXR0b25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIC8qKlxuICAgICAqIEFjY2VzcyB0aGUgdG9nZ2xlIGdyb3VwLlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9nZ2xlR3JvdXAgPSBpbmplY3RUb2dnbGVHcm91cCgpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHZhbHVlIG9mIHRoaXMgdG9nZ2xlIGJ1dHRvbi5cbiAgICAgKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSB2YWx1ZSE6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhpcyB0b2dnbGUgYnV0dG9uIGlzIGRpc2FibGVkLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoaXMgdG9nZ2xlIGJ1dHRvbiBpcyBjaGVja2VkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9nZ2xlR3JvdXAuaXNTZWxlY3RlZCh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoJ2Rpc2FibGVkJyBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICAvLyBUT0RPXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50b2dnbGVHcm91cC50b2dnbGUodGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW5zdXJlIHRoZSBkaXNhYmxlZCBzdGF0ZSBpcyBwcm9wYWdhdGVkIHRvIHRoZSByb3ZpbmcgZm9jdXMgaXRlbS5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgdXBkYXRlRGlzYWJsZWQoKTogdm9pZCB7XG4gICAgICAgIC8vIFRPRE9cbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,6 @@
1
+ import { inject, InjectionToken } from '@angular/core';
2
+ export const RdxToggleGroupButtonToken = new InjectionToken('RdxToggleGroupButtonToken');
3
+ export function injectToggleGroupButton() {
4
+ return inject(RdxToggleGroupButtonToken);
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWdyb3VwLWJ1dHRvbi50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvdG9nZ2xlLWdyb3VwL3NyYy90b2dnbGUtZ3JvdXAtYnV0dG9uLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3ZELE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLElBQUksY0FBYyxDQUFnQywyQkFBMkIsQ0FBQyxDQUFDO0FBRXhILE1BQU0sVUFBVSx1QkFBdUI7SUFDbkMsT0FBTyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUM3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBSZHhUb2dnbGVHcm91cEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4vdG9nZ2xlLWdyb3VwLWJ1dHRvbi5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgUmR4VG9nZ2xlR3JvdXBCdXR0b25Ub2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZHhUb2dnbGVHcm91cEJ1dHRvbkRpcmVjdGl2ZT4oJ1JkeFRvZ2dsZUdyb3VwQnV0dG9uVG9rZW4nKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFRvZ2dsZUdyb3VwQnV0dG9uKCk6IFJkeFRvZ2dsZUdyb3VwQnV0dG9uRGlyZWN0aXZlIHtcbiAgICByZXR1cm4gaW5qZWN0KFJkeFRvZ2dsZUdyb3VwQnV0dG9uVG9rZW4pO1xufVxuIl19
@@ -0,0 +1,143 @@
1
+ import { booleanAttribute, ContentChildren, Directive, EventEmitter, Input, QueryList } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { RdxToggleGroupButtonToken } from './toggle-group-button.token';
4
+ import { RdxToggleGroupToken } from './toggle-group.token';
5
+ import * as i0 from "@angular/core";
6
+ export class RdxToggleGroupMultiDirective {
7
+ constructor() {
8
+ /**
9
+ * The selected toggle button.
10
+ */
11
+ this.value = [];
12
+ /**
13
+ * The orientation of the toggle group.
14
+ * @default 'horizontal'
15
+ */
16
+ this.orientation = 'horizontal';
17
+ /**
18
+ * Whether the toggle group is disabled.
19
+ * @default false
20
+ */
21
+ this.disabled = false;
22
+ /**
23
+ * Whether the toggle group roving focus should wrap.
24
+ * @default true
25
+ */
26
+ this.wrap = true;
27
+ /**
28
+ * Event emitted when the selected toggle button changes.
29
+ */
30
+ this.valueChange = new EventEmitter();
31
+ }
32
+ /**
33
+ * @ignore
34
+ */
35
+ ngOnChanges(changes) {
36
+ if ('disabled' in changes) {
37
+ this.buttons?.forEach((button) => button.updateDisabled());
38
+ }
39
+ }
40
+ /**
41
+ * @ignore
42
+ */
43
+ ngAfterContentInit() {
44
+ if (this.disabled) {
45
+ this.buttons?.forEach((button) => button.updateDisabled());
46
+ }
47
+ }
48
+ /**
49
+ * Determine if a value is selected.
50
+ * @param value The value to check.
51
+ * @returns Whether the value is selected.
52
+ * @ignore
53
+ */
54
+ isSelected(value) {
55
+ return this.value.includes(value);
56
+ }
57
+ /**
58
+ * Toggle a value.
59
+ * @param value The value to toggle.
60
+ * @ignore
61
+ */
62
+ toggle(value) {
63
+ if (this.disabled) {
64
+ return;
65
+ }
66
+ this.value = this.value.includes(value) ? this.value.filter((v) => v !== value) : [...this.value, value];
67
+ this.valueChange.emit(this.value);
68
+ this.onChange?.(this.value);
69
+ }
70
+ /**
71
+ * Select a value from Angular forms.
72
+ * @param value The value to select.
73
+ * @ignore
74
+ */
75
+ writeValue(value) {
76
+ this.value = value;
77
+ }
78
+ /**
79
+ * Register a callback to be called when the value changes.
80
+ * @param fn The callback to register.
81
+ * @ignore
82
+ */
83
+ registerOnChange(fn) {
84
+ this.onChange = fn;
85
+ }
86
+ /**
87
+ * Register a callback to be called when the toggle group is touched.
88
+ * @param fn The callback to register.
89
+ * @ignore
90
+ */
91
+ registerOnTouched(fn) {
92
+ this.onTouched = fn;
93
+ }
94
+ /**
95
+ * Set the disabled state of the toggle group.
96
+ * @param isDisabled Whether the toggle group is disabled.
97
+ * @ignore
98
+ */
99
+ setDisabledState(isDisabled) {
100
+ this.disabled = isDisabled;
101
+ this.buttons?.forEach((button) => button.updateDisabled());
102
+ }
103
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxToggleGroupMultiDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
104
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.1", type: RdxToggleGroupMultiDirective, isStandalone: true, selector: "[rdxToggleGroupMulti]", inputs: { value: ["rdxToggleGroupMultiValue", "value"], orientation: ["rdxToggleGroupMultiOrientation", "orientation"], disabled: ["rdxToggleGroupMultiDisabled", "disabled", booleanAttribute], wrap: ["rdxToggleGroupMultiWrap", "wrap", booleanAttribute], valueChange: ["rdxToggleGroupMultiValueChange", "valueChange"] }, host: { attributes: { "role": "group" }, listeners: { "focusout": "onTouched?.()" }, properties: { "attr.data-orientation": "orientation" } }, providers: [
105
+ { provide: RdxToggleGroupToken, useExisting: RdxToggleGroupMultiDirective },
106
+ { provide: NG_VALUE_ACCESSOR, useExisting: RdxToggleGroupMultiDirective, multi: true }
107
+ ], queries: [{ propertyName: "buttons", predicate: RdxToggleGroupButtonToken }], usesOnChanges: true, ngImport: i0 }); }
108
+ }
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RdxToggleGroupMultiDirective, decorators: [{
110
+ type: Directive,
111
+ args: [{
112
+ selector: '[rdxToggleGroupMulti]',
113
+ standalone: true,
114
+ providers: [
115
+ { provide: RdxToggleGroupToken, useExisting: RdxToggleGroupMultiDirective },
116
+ { provide: NG_VALUE_ACCESSOR, useExisting: RdxToggleGroupMultiDirective, multi: true }
117
+ ],
118
+ host: {
119
+ role: 'group',
120
+ '[attr.data-orientation]': 'orientation',
121
+ '(focusout)': 'onTouched?.()'
122
+ }
123
+ }]
124
+ }], propDecorators: { value: [{
125
+ type: Input,
126
+ args: ['rdxToggleGroupMultiValue']
127
+ }], orientation: [{
128
+ type: Input,
129
+ args: ['rdxToggleGroupMultiOrientation']
130
+ }], disabled: [{
131
+ type: Input,
132
+ args: [{ alias: 'rdxToggleGroupMultiDisabled', transform: booleanAttribute }]
133
+ }], wrap: [{
134
+ type: Input,
135
+ args: [{ alias: 'rdxToggleGroupMultiWrap', transform: booleanAttribute }]
136
+ }], valueChange: [{
137
+ type: Input,
138
+ args: ['rdxToggleGroupMultiValueChange']
139
+ }], buttons: [{
140
+ type: ContentChildren,
141
+ args: [RdxToggleGroupButtonToken]
142
+ }] } });
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLWdyb3VwLW11bHRpLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvdG9nZ2xlLWdyb3VwL3NyYy90b2dnbGUtZ3JvdXAtbXVsdGkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLFNBQVMsRUFFWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBZTNELE1BQU0sT0FBTyw0QkFBNEI7SUFiekM7UUFjSTs7V0FFRztRQUNnQyxVQUFLLEdBQTBCLEVBQUUsQ0FBQztRQUVyRTs7O1dBR0c7UUFDc0MsZ0JBQVcsR0FBOEIsWUFBWSxDQUFDO1FBRS9GOzs7V0FHRztRQUMyRSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRS9GOzs7V0FHRztRQUN1RSxTQUFJLEdBQUcsSUFBSSxDQUFDO1FBRXRGOztXQUVHO1FBQytDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7S0FxRzdHO0lBaEZHOztPQUVHO0lBQ0gsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksVUFBVSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsa0JBQWtCO1FBQ2QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsS0FBYTtRQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLEtBQWE7UUFDaEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV6RyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxLQUE0QjtRQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGdCQUFnQixDQUFDLEVBQTBDO1FBQ3ZELElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsaUJBQWlCLENBQUMsRUFBYztRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGdCQUFnQixDQUFDLFVBQW1CO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQzNCLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDOzhHQS9IUSw0QkFBNEI7a0dBQTVCLDRCQUE0Qix1T0FnQnFCLGdCQUFnQiw2Q0FNcEIsZ0JBQWdCLCtOQWhDM0Q7WUFDUCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsNEJBQTRCLEVBQUU7WUFDM0UsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLDRCQUE0QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7U0FDekYsa0RBd0NnQix5QkFBeUI7OzJGQWpDakMsNEJBQTRCO2tCQWJ4QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1AsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyw4QkFBOEIsRUFBRTt3QkFDM0UsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyw4QkFBOEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO3FCQUN6RjtvQkFDRCxJQUFJLEVBQUU7d0JBQ0YsSUFBSSxFQUFFLE9BQU87d0JBQ2IseUJBQXlCLEVBQUUsYUFBYTt3QkFDeEMsWUFBWSxFQUFFLGVBQWU7cUJBQ2hDO2lCQUNKOzhCQUtzQyxLQUFLO3NCQUF2QyxLQUFLO3VCQUFDLDBCQUEwQjtnQkFNUSxXQUFXO3NCQUFuRCxLQUFLO3VCQUFDLGdDQUFnQztnQkFNdUMsUUFBUTtzQkFBckYsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSw2QkFBNkIsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBTUYsSUFBSTtzQkFBN0UsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSx5QkFBeUIsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBS3RCLFdBQVc7c0JBQTVELEtBQUs7dUJBQUMsZ0NBQWdDO2dCQU83QixPQUFPO3NCQURoQixlQUFlO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEaXJlY3RpdmUsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB0eXBlIHsgUmR4VG9nZ2xlR3JvdXBCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuL3RvZ2dsZS1ncm91cC1idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IFJkeFRvZ2dsZUdyb3VwQnV0dG9uVG9rZW4gfSBmcm9tICcuL3RvZ2dsZS1ncm91cC1idXR0b24udG9rZW4nO1xuaW1wb3J0IHsgUmR4VG9nZ2xlR3JvdXBUb2tlbiB9IGZyb20gJy4vdG9nZ2xlLWdyb3VwLnRva2VuJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4VG9nZ2xlR3JvdXBNdWx0aV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogUmR4VG9nZ2xlR3JvdXBUb2tlbiwgdXNlRXhpc3Rpbmc6IFJkeFRvZ2dsZUdyb3VwTXVsdGlEaXJlY3RpdmUgfSxcbiAgICAgICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IFJkeFRvZ2dsZUdyb3VwTXVsdGlEaXJlY3RpdmUsIG11bHRpOiB0cnVlIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgcm9sZTogJ2dyb3VwJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtb3JpZW50YXRpb25dJzogJ29yaWVudGF0aW9uJyxcbiAgICAgICAgJyhmb2N1c291dCknOiAnb25Ub3VjaGVkPy4oKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFJkeFRvZ2dsZUdyb3VwTXVsdGlEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyQ29udGVudEluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgICAvKipcbiAgICAgKiBUaGUgc2VsZWN0ZWQgdG9nZ2xlIGJ1dHRvbi5cbiAgICAgKi9cbiAgICBASW5wdXQoJ3JkeFRvZ2dsZUdyb3VwTXVsdGlWYWx1ZScpIHZhbHVlOiBSZWFkb25seUFycmF5PHN0cmluZz4gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBvcmllbnRhdGlvbiBvZiB0aGUgdG9nZ2xlIGdyb3VwLlxuICAgICAqIEBkZWZhdWx0ICdob3Jpem9udGFsJ1xuICAgICAqL1xuICAgIEBJbnB1dCgncmR4VG9nZ2xlR3JvdXBNdWx0aU9yaWVudGF0aW9uJykgb3JpZW50YXRpb246ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCcgPSAnaG9yaXpvbnRhbCc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB0b2dnbGUgZ3JvdXAgaXMgZGlzYWJsZWQuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyBhbGlhczogJ3JkeFRvZ2dsZUdyb3VwTXVsdGlEaXNhYmxlZCcsIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgdG9nZ2xlIGdyb3VwIHJvdmluZyBmb2N1cyBzaG91bGQgd3JhcC5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICdyZHhUb2dnbGVHcm91cE11bHRpV3JhcCcsIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSB3cmFwID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2VsZWN0ZWQgdG9nZ2xlIGJ1dHRvbiBjaGFuZ2VzLlxuICAgICAqL1xuICAgIEBJbnB1dCgncmR4VG9nZ2xlR3JvdXBNdWx0aVZhbHVlQ2hhbmdlJykgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFJlYWRvbmx5QXJyYXk8c3RyaW5nPj4oKTtcblxuICAgIC8qKlxuICAgICAqIEFjY2VzcyB0aGUgYnV0dG9ucyBpbiB0aGUgdG9nZ2xlIGdyb3VwLlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKFJkeFRvZ2dsZUdyb3VwQnV0dG9uVG9rZW4pXG4gICAgcHJvdGVjdGVkIGJ1dHRvbnM/OiBRdWVyeUxpc3Q8UmR4VG9nZ2xlR3JvdXBCdXR0b25EaXJlY3RpdmU+O1xuXG4gICAgLyoqXG4gICAgICogVGhlIHZhbHVlIGNoYW5nZSBjYWxsYmFjay5cbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgcHJpdmF0ZSBvbkNoYW5nZT86ICh2YWx1ZTogUmVhZG9ubHlBcnJheTxzdHJpbmc+KSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogb25Ub3VjaCBmdW5jdGlvbiByZWdpc3RlcmVkIHZpYSByZWdpc3Rlck9uVG91Y2ggKENvbnRyb2xWYWx1ZUFjY2Vzc29yKS5cbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIG9uVG91Y2hlZD86ICgpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoJ2Rpc2FibGVkJyBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLmJ1dHRvbnM/LmZvckVhY2goKGJ1dHRvbikgPT4gYnV0dG9uLnVwZGF0ZURpc2FibGVkKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9ucz8uZm9yRWFjaCgoYnV0dG9uKSA9PiBidXR0b24udXBkYXRlRGlzYWJsZWQoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmUgaWYgYSB2YWx1ZSBpcyBzZWxlY3RlZC5cbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHZhbHVlIGlzIHNlbGVjdGVkLlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBpc1NlbGVjdGVkKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUuaW5jbHVkZXModmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRvZ2dsZSBhIHZhbHVlLlxuICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gdG9nZ2xlLlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICB0b2dnbGUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWUuaW5jbHVkZXModmFsdWUpID8gdGhpcy52YWx1ZS5maWx0ZXIoKHYpID0+IHYgIT09IHZhbHVlKSA6IFsuLi50aGlzLnZhbHVlLCB2YWx1ZV07XG5cbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlPy4odGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VsZWN0IGEgdmFsdWUgZnJvbSBBbmd1bGFyIGZvcm1zLlxuICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2VsZWN0LlxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBSZWFkb25seUFycmF5PHN0cmluZz4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVyIGEgY2FsbGJhY2sgdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHZhbHVlIGNoYW5nZXMuXG4gICAgICogQHBhcmFtIGZuIFRoZSBjYWxsYmFjayB0byByZWdpc3Rlci5cbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBSZWFkb25seUFycmF5PHN0cmluZz4pID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVyIGEgY2FsbGJhY2sgdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHRvZ2dsZSBncm91cCBpcyB0b3VjaGVkLlxuICAgICAqIEBwYXJhbSBmbiBUaGUgY2FsbGJhY2sgdG8gcmVnaXN0ZXIuXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBkaXNhYmxlZCBzdGF0ZSBvZiB0aGUgdG9nZ2xlIGdyb3VwLlxuICAgICAqIEBwYXJhbSBpc0Rpc2FibGVkIFdoZXRoZXIgdGhlIHRvZ2dsZSBncm91cCBpcyBkaXNhYmxlZC5cbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgICAgICB0aGlzLmJ1dHRvbnM/LmZvckVhY2goKGJ1dHRvbikgPT4gYnV0dG9uLnVwZGF0ZURpc2FibGVkKCkpO1xuICAgIH1cbn1cbiJdfQ==