@3ddv/software-division-components 1.5.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (704) hide show
  1. package/.postcssrc.json +5 -0
  2. package/.storybook/main.ts +78 -0
  3. package/.storybook/manager-head.html +1 -0
  4. package/.storybook/preview.ts +30 -0
  5. package/.storybook/tsconfig.json +25 -0
  6. package/.storybook/typings.d.ts +4 -0
  7. package/CHANGELOG.md +8 -0
  8. package/LICENSE.md +21 -0
  9. package/backoffice/checkbox/checkbox.component.css +193 -0
  10. package/backoffice/checkbox/checkbox.component.html +23 -0
  11. package/backoffice/checkbox/checkbox.component.ts +252 -0
  12. package/backoffice/checkbox/index.ts +1 -0
  13. package/backoffice/checkbox/ng-package.json +1 -0
  14. package/backoffice/checkbox/public-api.ts +1 -0
  15. package/backoffice/checkbox/story/checkbox.stories.ts +304 -0
  16. package/backoffice/datepicker/datepicker.component.css +262 -0
  17. package/backoffice/datepicker/datepicker.component.html +40 -0
  18. package/backoffice/datepicker/datepicker.component.ts +366 -0
  19. package/backoffice/datepicker/index.ts +1 -0
  20. package/backoffice/datepicker/ng-package.json +1 -0
  21. package/backoffice/datepicker/{public-api.d.ts → public-api.ts} +1 -1
  22. package/backoffice/datepicker/story/datepicker.stories.ts +32 -0
  23. package/backoffice/datepicker/ui/ui-calendar-helm/src/index.ts +14 -0
  24. package/backoffice/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar-multi.ts +183 -0
  25. package/backoffice/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar.ts +171 -0
  26. package/backoffice/datepicker/ui/ui-date-picker-helm/src/index.ts +16 -0
  27. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker-multi.token.ts +43 -0
  28. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker-multi.ts +177 -0
  29. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker.token.ts +43 -0
  30. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker.ts +167 -0
  31. package/backoffice/datepicker/ui/ui-icon-helm/src/index.ts +11 -0
  32. package/backoffice/datepicker/ui/ui-icon-helm/src/lib/hlm-icon.token.ts +20 -0
  33. package/backoffice/datepicker/ui/ui-icon-helm/src/lib/hlm-icon.ts +35 -0
  34. package/backoffice/datepicker/ui/ui-popover-helm/src/index.ts +15 -0
  35. package/backoffice/datepicker/ui/ui-popover-helm/src/lib/hlm-popover-close.ts +19 -0
  36. package/backoffice/datepicker/ui/ui-popover-helm/src/lib/hlm-popover-content.ts +30 -0
  37. package/backoffice/index.ts +1 -0
  38. package/backoffice/input/index.ts +1 -0
  39. package/backoffice/input/input.component.css +319 -0
  40. package/backoffice/input/input.component.html +51 -0
  41. package/backoffice/input/input.component.ts +497 -0
  42. package/backoffice/input/ng-package.json +1 -0
  43. package/backoffice/input/public-api.ts +2 -0
  44. package/backoffice/input/story/input.stories.ts +243 -0
  45. package/backoffice/radio/index.ts +1 -0
  46. package/backoffice/radio/ng-package.json +1 -0
  47. package/backoffice/radio/public-api.ts +1 -0
  48. package/backoffice/radio/radio.component.css +143 -0
  49. package/backoffice/radio/radio.component.html +15 -0
  50. package/backoffice/radio/radio.component.ts +154 -0
  51. package/backoffice/radio/story/radio.stories.ts +287 -0
  52. package/backoffice/table/_components/pagination/pagination.component.css +117 -0
  53. package/backoffice/table/_components/pagination/pagination.component.html +55 -0
  54. package/backoffice/table/_components/pagination/pagination.component.ts +79 -0
  55. package/backoffice/table/_components/selection-table-head/selection-table-head.component.css +0 -0
  56. package/backoffice/table/_components/selection-table-head/selection-table-head.component.html +6 -0
  57. package/backoffice/table/_components/selection-table-head/selection-table-head.component.ts +36 -0
  58. package/backoffice/table/_components/selection-table-row/selection-table-row.component.css +0 -0
  59. package/backoffice/table/_components/selection-table-row/selection-table-row.component.html +5 -0
  60. package/backoffice/table/_components/selection-table-row/selection-table-row.component.ts +12 -0
  61. package/backoffice/table/_components/sort-header-button/sort-header-button.component.css +14 -0
  62. package/backoffice/table/_components/sort-header-button/sort-header-button.component.html +11 -0
  63. package/backoffice/table/_components/sort-header-button/sort-header-button.component.ts +55 -0
  64. package/backoffice/table/index.ts +1 -0
  65. package/backoffice/table/ng-package.json +1 -0
  66. package/backoffice/table/public-api.ts +6 -0
  67. package/backoffice/table/story/table.stories.ts +364 -0
  68. package/backoffice/table/table.component.css +172 -0
  69. package/backoffice/table/table.component.html +53 -0
  70. package/backoffice/table/table.component.ts +347 -0
  71. package/backoffice/table/ui/ui-icon-helm/src/index.ts +11 -0
  72. package/backoffice/table/ui/ui-icon-helm/src/lib/hlm-icon.token.ts +20 -0
  73. package/backoffice/table/ui/ui-icon-helm/src/lib/hlm-icon.ts +35 -0
  74. package/backoffice/table/ui/ui-table-helm/src/index.ts +13 -0
  75. package/backoffice/table/ui/ui-table-helm/src/lib/hlm-table.ts +220 -0
  76. package/components.json +3 -0
  77. package/{README.md → dist/README.md} +11 -7
  78. package/dist/fesm2022/3ddv-software-division-components-backoffice-checkbox.mjs +208 -0
  79. package/dist/fesm2022/3ddv-software-division-components-backoffice-checkbox.mjs.map +1 -0
  80. package/dist/fesm2022/3ddv-software-division-components-backoffice-datepicker.mjs +1061 -0
  81. package/dist/fesm2022/3ddv-software-division-components-backoffice-datepicker.mjs.map +1 -0
  82. package/dist/fesm2022/3ddv-software-division-components-backoffice-input.mjs +411 -0
  83. package/dist/fesm2022/3ddv-software-division-components-backoffice-input.mjs.map +1 -0
  84. package/dist/fesm2022/3ddv-software-division-components-backoffice-radio.mjs +128 -0
  85. package/dist/fesm2022/3ddv-software-division-components-backoffice-radio.mjs.map +1 -0
  86. package/dist/fesm2022/3ddv-software-division-components-backoffice-table.mjs +658 -0
  87. package/dist/fesm2022/3ddv-software-division-components-backoffice-table.mjs.map +1 -0
  88. package/dist/fesm2022/3ddv-software-division-components-dvm-cart-item.mjs +34 -0
  89. package/dist/fesm2022/3ddv-software-division-components-dvm-cart-item.mjs.map +1 -0
  90. package/dist/fesm2022/3ddv-software-division-components-dvm-cart.mjs +101 -0
  91. package/dist/fesm2022/3ddv-software-division-components-dvm-cart.mjs.map +1 -0
  92. package/dist/fesm2022/3ddv-software-division-components-dvm-legend.mjs +77 -0
  93. package/dist/fesm2022/3ddv-software-division-components-dvm-legend.mjs.map +1 -0
  94. package/dist/fesm2022/3ddv-software-division-components-dvm-loader.mjs +34 -0
  95. package/dist/fesm2022/3ddv-software-division-components-dvm-loader.mjs.map +1 -0
  96. package/dist/fesm2022/3ddv-software-division-components-dvm-map-loader.mjs +161 -0
  97. package/dist/fesm2022/3ddv-software-division-components-dvm-map-loader.mjs.map +1 -0
  98. package/dist/fesm2022/3ddv-software-division-components-dvm-neighbors.mjs +204 -0
  99. package/dist/fesm2022/3ddv-software-division-components-dvm-neighbors.mjs.map +1 -0
  100. package/dist/fesm2022/3ddv-software-division-components-dvm-popover.mjs +1080 -0
  101. package/dist/fesm2022/3ddv-software-division-components-dvm-popover.mjs.map +1 -0
  102. package/dist/fesm2022/3ddv-software-division-components-dvm-stepper.mjs +94 -0
  103. package/dist/fesm2022/3ddv-software-division-components-dvm-stepper.mjs.map +1 -0
  104. package/dist/fesm2022/3ddv-software-division-components-dvm-ticket-info-item.mjs +34 -0
  105. package/dist/fesm2022/3ddv-software-division-components-dvm-ticket-info-item.mjs.map +1 -0
  106. package/dist/fesm2022/3ddv-software-division-components-generic-add-digital-wallet.mjs +46 -0
  107. package/dist/fesm2022/3ddv-software-division-components-generic-add-digital-wallet.mjs.map +1 -0
  108. package/dist/fesm2022/3ddv-software-division-components-generic-braintree.mjs +127 -0
  109. package/dist/fesm2022/3ddv-software-division-components-generic-braintree.mjs.map +1 -0
  110. package/dist/fesm2022/3ddv-software-division-components-generic-button.mjs +373 -0
  111. package/dist/fesm2022/3ddv-software-division-components-generic-button.mjs.map +1 -0
  112. package/dist/fesm2022/3ddv-software-division-components-generic-dialog.mjs +309 -0
  113. package/dist/fesm2022/3ddv-software-division-components-generic-dialog.mjs.map +1 -0
  114. package/dist/fesm2022/3ddv-software-division-components-generic-drawer.mjs +34 -0
  115. package/dist/fesm2022/3ddv-software-division-components-generic-drawer.mjs.map +1 -0
  116. package/dist/fesm2022/3ddv-software-division-components-generic-icon.mjs +130 -0
  117. package/dist/fesm2022/3ddv-software-division-components-generic-icon.mjs.map +1 -0
  118. package/dist/fesm2022/3ddv-software-division-components-generic-select.mjs +295 -0
  119. package/dist/fesm2022/3ddv-software-division-components-generic-select.mjs.map +1 -0
  120. package/dist/fesm2022/3ddv-software-division-components-shared.mjs +171 -0
  121. package/dist/fesm2022/3ddv-software-division-components-shared.mjs.map +1 -0
  122. package/dist/fesm2022/3ddv-software-division-components-utils.mjs +39 -0
  123. package/dist/fesm2022/3ddv-software-division-components-utils.mjs.map +1 -0
  124. package/dist/fesm2022/3ddv-software-division-components.mjs +18 -0
  125. package/dist/fesm2022/3ddv-software-division-components.mjs.map +1 -0
  126. package/dist/styles.css +2 -0
  127. package/dist/types/3ddv-software-division-components-backoffice-checkbox.d.ts +106 -0
  128. package/dist/types/3ddv-software-division-components-backoffice-datepicker.d.ts +153 -0
  129. package/dist/types/3ddv-software-division-components-backoffice-input.d.ts +203 -0
  130. package/dist/types/3ddv-software-division-components-backoffice-radio.d.ts +76 -0
  131. package/dist/types/3ddv-software-division-components-backoffice-table.d.ts +130 -0
  132. package/dist/types/3ddv-software-division-components-dvm-cart-item.d.ts +14 -0
  133. package/dist/types/3ddv-software-division-components-dvm-cart.d.ts +76 -0
  134. package/dist/types/3ddv-software-division-components-dvm-legend.d.ts +38 -0
  135. package/dist/types/3ddv-software-division-components-dvm-loader.d.ts +14 -0
  136. package/{dvm/map-loader/map-loader.component.d.ts → dist/types/3ddv-software-division-components-dvm-map-loader.d.ts} +16 -14
  137. package/dist/types/3ddv-software-division-components-dvm-neighbors.d.ts +57 -0
  138. package/dist/types/3ddv-software-division-components-dvm-popover.d.ts +456 -0
  139. package/dist/types/3ddv-software-division-components-dvm-stepper.d.ts +34 -0
  140. package/dist/types/3ddv-software-division-components-dvm-ticket-info-item.d.ts +14 -0
  141. package/dist/types/3ddv-software-division-components-generic-add-digital-wallet.d.ts +23 -0
  142. package/dist/types/3ddv-software-division-components-generic-braintree.d.ts +62 -0
  143. package/dist/types/3ddv-software-division-components-generic-button.d.ts +186 -0
  144. package/dist/types/3ddv-software-division-components-generic-dialog.d.ts +104 -0
  145. package/dist/types/3ddv-software-division-components-generic-drawer.d.ts +14 -0
  146. package/dist/types/3ddv-software-division-components-generic-icon.d.ts +38 -0
  147. package/dist/types/3ddv-software-division-components-generic-select.d.ts +110 -0
  148. package/dist/types/3ddv-software-division-components-shared.d.ts +69 -0
  149. package/dist/types/3ddv-software-division-components-utils.d.ts +3 -0
  150. package/dist/types/3ddv-software-division-components.d.ts +2 -0
  151. package/documentation.json +30473 -0
  152. package/dvm/cart/cart.component.css +103 -0
  153. package/dvm/cart/cart.component.html +31 -0
  154. package/dvm/cart/cart.component.ts +49 -0
  155. package/dvm/cart/cart.stories.ts +370 -0
  156. package/dvm/cart/cart.types.ts +8 -0
  157. package/dvm/cart/index.ts +2 -0
  158. package/dvm/cart/ng-package.json +1 -0
  159. package/dvm/cart/{public-api.d.ts → public-api.ts} +5 -1
  160. package/dvm/cart/seat-list.component.css +281 -0
  161. package/dvm/cart/seat-list.component.html +85 -0
  162. package/dvm/cart/seat-list.component.ts +76 -0
  163. package/dvm/cart/seat-list.stories.ts +337 -0
  164. package/dvm/cart-item/cart-item.component.html +1 -0
  165. package/dvm/cart-item/cart-item.component.ts +8 -0
  166. package/dvm/cart-item/cart-item.service.ts +8 -0
  167. package/dvm/cart-item/cart.stories.ts +31 -0
  168. package/dvm/cart-item/index.ts +1 -0
  169. package/dvm/cart-item/ng-package.json +1 -0
  170. package/dvm/cart-item/{public-api.d.ts → public-api.ts} +4 -1
  171. package/dvm/index.ts +1 -0
  172. package/dvm/legend/index.ts +1 -0
  173. package/dvm/legend/legend.component.css +49 -0
  174. package/dvm/legend/legend.component.html +8 -0
  175. package/dvm/legend/legend.component.ts +41 -0
  176. package/dvm/legend/legend.stories.ts +16 -0
  177. package/dvm/legend/ng-package.json +1 -0
  178. package/dvm/legend/{public-api.d.ts → public-api.ts} +4 -1
  179. package/dvm/legend/{types.d.ts → types.ts} +3 -3
  180. package/dvm/legend/ui/legend-elements/{index.d.ts → index.ts} +0 -1
  181. package/dvm/legend/ui/legend-elements/legend-elements.component.css +49 -0
  182. package/dvm/legend/ui/legend-elements/legend-elements.component.html +8 -0
  183. package/dvm/legend/ui/legend-elements/legend-elements.component.ts +41 -0
  184. package/dvm/loader/index.ts +1 -0
  185. package/dvm/loader/loader.component.html +1 -0
  186. package/dvm/loader/loader.component.ts +8 -0
  187. package/dvm/loader/loader.service.ts +8 -0
  188. package/dvm/loader/loader.stories.ts +31 -0
  189. package/dvm/loader/ng-package.json +1 -0
  190. package/dvm/loader/{public-api.d.ts → public-api.ts} +4 -1
  191. package/dvm/map-loader/index.ts +1 -0
  192. package/dvm/map-loader/map-loader.component.css +91 -0
  193. package/dvm/map-loader/map-loader.component.html +23 -0
  194. package/dvm/map-loader/map-loader.component.ts +187 -0
  195. package/dvm/map-loader/map-loader.stories.ts +16 -0
  196. package/dvm/map-loader/ng-package.json +1 -0
  197. package/dvm/map-loader/public-api.ts +5 -0
  198. package/dvm/neighbors/index.ts +1 -0
  199. package/dvm/neighbors/neighbors.component.css +158 -0
  200. package/dvm/neighbors/neighbors.component.html +45 -0
  201. package/dvm/neighbors/neighbors.component.ts +218 -0
  202. package/dvm/neighbors/ng-package.json +1 -0
  203. package/dvm/neighbors/public-api.ts +2 -0
  204. package/dvm/neighbors/story/arrow-left-black-icon.svg +3 -0
  205. package/dvm/neighbors/story/mock-data.ts +15 -0
  206. package/dvm/neighbors/story/neighbours.stories.css +12 -0
  207. package/dvm/neighbors/story/neighbours.stories.ts +117 -0
  208. package/dvm/neighbors/{types.d.ts → types.ts} +7 -7
  209. package/dvm/popover/base-popover.component.ts +70 -0
  210. package/dvm/popover/index.ts +1 -0
  211. package/dvm/popover/ng-package.json +1 -0
  212. package/dvm/popover/popover.component.css +227 -0
  213. package/dvm/popover/popover.component.html +27 -0
  214. package/dvm/popover/popover.component.ts +236 -0
  215. package/dvm/popover/popover.config.ts +30 -0
  216. package/dvm/popover/popover.service.ts +627 -0
  217. package/dvm/popover/popover.stories.ts +873 -0
  218. package/dvm/popover/{public-api.d.ts → public-api.ts} +4 -1
  219. package/dvm/popover/seat-popover/seat-popover.component.css +89 -0
  220. package/dvm/popover/seat-popover/seat-popover.component.html +40 -0
  221. package/dvm/popover/seat-popover/seat-popover.component.ts +74 -0
  222. package/dvm/popover/section-popover/section-popover.component.css +157 -0
  223. package/dvm/popover/section-popover/section-popover.component.html +58 -0
  224. package/dvm/popover/section-popover/section-popover.component.ts +106 -0
  225. package/dvm/popover/services/dvm-popover-positioner.service.ts +73 -0
  226. package/dvm/popover/services/popover-manager.service.ts +88 -0
  227. package/dvm/popover/transformers/base-popover-data-transformer.ts +36 -0
  228. package/dvm/popover/types.ts +104 -0
  229. package/dvm/stepper/index.ts +1 -0
  230. package/dvm/stepper/ng-package.json +1 -0
  231. package/dvm/stepper/public-api.ts +5 -0
  232. package/dvm/stepper/stepper.component.css +142 -0
  233. package/dvm/stepper/stepper.component.html +9 -0
  234. package/dvm/stepper/stepper.component.ts +101 -0
  235. package/dvm/stepper/{types.d.ts → types.ts} +3 -6
  236. package/dvm/ticket-info-item/index.ts +1 -0
  237. package/dvm/ticket-info-item/ng-package.json +1 -0
  238. package/dvm/ticket-info-item/{public-api.d.ts → public-api.ts} +4 -1
  239. package/dvm/ticket-info-item/ticket-info-item.component.html +1 -0
  240. package/dvm/ticket-info-item/ticket-info-item.component.ts +8 -0
  241. package/dvm/ticket-info-item/ticket-info-item.service.ts +8 -0
  242. package/dvm/ticket-info-item/ticket-info-item.stories.ts +31 -0
  243. package/generic/add-digital-wallet/add-digital-wallet.component.css +76 -0
  244. package/generic/add-digital-wallet/add-digital-wallet.component.html +46 -0
  245. package/generic/add-digital-wallet/add-digital-wallet.component.ts +44 -0
  246. package/generic/add-digital-wallet/index.ts +1 -0
  247. package/generic/add-digital-wallet/ng-package.json +1 -0
  248. package/generic/add-digital-wallet/{public-api.d.ts → public-api.ts} +0 -1
  249. package/generic/braintree/braintree.component.css +7 -0
  250. package/generic/braintree/braintree.component.ts +134 -0
  251. package/generic/braintree/index.ts +1 -0
  252. package/generic/braintree/ng-package.json +1 -0
  253. package/generic/braintree/{public-api.d.ts → public-api.ts} +4 -1
  254. package/generic/braintree/story/braintree.stories.css +3 -0
  255. package/generic/braintree/story/braintree.stories.ts +27 -0
  256. package/generic/braintree/types.ts +28 -0
  257. package/generic/button/button.component.css +305 -0
  258. package/generic/button/button.component.html +10 -0
  259. package/generic/button/button.component.ts +353 -0
  260. package/generic/button/index.ts +1 -0
  261. package/generic/button/ng-package.json +1 -0
  262. package/generic/button/public-api.ts +6 -0
  263. package/generic/button/story/button.stories.ts +384 -0
  264. package/generic/button/ui/ui-button-helm/src/index.ts +10 -0
  265. package/generic/button/ui/ui-button-helm/src/lib/hlm-button.token.ts +22 -0
  266. package/generic/button/ui/ui-button-helm/src/lib/hlm-button.ts +62 -0
  267. package/generic/carousel/carousel-item.component.ts +15 -0
  268. package/generic/carousel/carousel-item.directive.ts +14 -0
  269. package/generic/carousel/carousel.component.css +90 -0
  270. package/generic/carousel/carousel.component.html +13 -0
  271. package/generic/carousel/carousel.component.ts +44 -0
  272. package/generic/carousel/index.ts +1 -0
  273. package/generic/carousel/{public-api.d.ts → public-api.ts} +0 -1
  274. package/generic/carousel/ui/ui-carousel-helm/src/index.ts +29 -0
  275. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-content.ts +23 -0
  276. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-item.ts +25 -0
  277. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-next.ts +58 -0
  278. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-previous.ts +61 -0
  279. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-slide-display.ts +36 -0
  280. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel.ts +105 -0
  281. package/generic/dialog/dialog.component.css +5 -0
  282. package/generic/dialog/dialog.component.html +3 -0
  283. package/generic/dialog/dialog.component.ts +20 -0
  284. package/generic/dialog/dialog.stories.ts +14 -0
  285. package/generic/dialog/index.ts +1 -0
  286. package/generic/dialog/libs/ui-dialog-helm/src/{index.d.ts → index.ts} +20 -8
  287. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-close.ts +20 -0
  288. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-content.ts +56 -0
  289. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-description.ts +17 -0
  290. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-footer.ts +19 -0
  291. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-header.ts +19 -0
  292. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-overlay.ts +23 -0
  293. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-title.ts +19 -0
  294. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.service.ts +59 -0
  295. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.ts +31 -0
  296. package/generic/dialog/ng-package.json +1 -0
  297. package/generic/dialog/{public-api.d.ts → public-api.ts} +5 -1
  298. package/generic/dialog/tsconfig.json +7 -0
  299. package/generic/dialog/ui/dialog-close-button/dialog-close-button.component.css +0 -0
  300. package/generic/dialog/ui/dialog-close-button/dialog-close-button.component.html +1 -0
  301. package/generic/dialog/ui/dialog-close-button/dialog-close-button.component.ts +17 -0
  302. package/generic/dialog/ui/dialog-footer/dialog-footer.component.css +0 -0
  303. package/generic/dialog/ui/dialog-footer/dialog-footer.component.html +3 -0
  304. package/generic/dialog/ui/dialog-footer/dialog-footer.component.ts +11 -0
  305. package/generic/dialog/ui/dialog-header/dialog-header.component.css +0 -0
  306. package/generic/dialog/ui/dialog-header/dialog-header.component.html +8 -0
  307. package/generic/dialog/ui/dialog-header/dialog-header.component.ts +18 -0
  308. package/generic/drawer/drawer.component.html +1 -0
  309. package/generic/drawer/drawer.component.ts +8 -0
  310. package/generic/drawer/drawer.service.ts +8 -0
  311. package/generic/drawer/drawer.stories.ts +31 -0
  312. package/generic/drawer/index.ts +1 -0
  313. package/generic/drawer/ng-package.json +1 -0
  314. package/generic/drawer/{public-api.d.ts → public-api.ts} +4 -1
  315. package/generic/icon/icon.component.css +7 -0
  316. package/generic/icon/icon.component.html +3 -0
  317. package/generic/icon/icon.component.ts +86 -0
  318. package/generic/icon/icon.stories.ts +16 -0
  319. package/generic/icon/index.ts +1 -0
  320. package/generic/icon/lib/ui-icon-helm/src/index.ts +11 -0
  321. package/generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.token.ts +20 -0
  322. package/generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.ts +36 -0
  323. package/generic/icon/ng-package.json +1 -0
  324. package/generic/icon/public-api.ts +6 -0
  325. package/generic/icon/tsconfig.json +7 -0
  326. package/generic/index.ts +1 -0
  327. package/generic/select/index.ts +1 -0
  328. package/generic/select/lib/hlm-select-content.ts +29 -0
  329. package/generic/select/lib/hlm-select-group.ts +17 -0
  330. package/generic/select/lib/hlm-select-label.ts +26 -0
  331. package/generic/select/lib/hlm-select-option.ts +37 -0
  332. package/generic/select/lib/hlm-select-scroll-down.ts +24 -0
  333. package/generic/select/lib/hlm-select-scroll-up.ts +23 -0
  334. package/generic/select/lib/hlm-select-trigger.ts +53 -0
  335. package/generic/select/lib/hlm-select-value.ts +17 -0
  336. package/generic/select/lib/hlm-select.ts +15 -0
  337. package/generic/select/lib/index.ts +38 -0
  338. package/generic/select/ng-package.json +1 -0
  339. package/generic/select/{public-api.d.ts → public-api.ts} +1 -1
  340. package/generic/select/select.component.css +65 -0
  341. package/generic/select/select.component.html +19 -0
  342. package/generic/select/select.component.ts +25 -0
  343. package/generic/select/types.ts +4 -0
  344. package/ng-package.json +10 -0
  345. package/package.json +114 -100
  346. package/public/3ddv-logo.jpg +0 -0
  347. package/public/neighbours-after.png +0 -0
  348. package/public/neighbours-before.png +0 -0
  349. package/shared/apply-theme-variables/apply-theme-variables.ts +35 -0
  350. package/shared/apply-theme-variables/{index.d.ts → index.ts} +0 -1
  351. package/shared/format-value.pipe.ts +23 -0
  352. package/shared/index.ts +1 -0
  353. package/shared/lib-provider/config-token.ts +4 -0
  354. package/shared/lib-provider/index.ts +1 -0
  355. package/shared/lib-provider/provide-sdc.ts +24 -0
  356. package/shared/lib-provider/{public-api.d.ts → public-api.ts} +0 -1
  357. package/shared/ng-package.json +1 -0
  358. package/shared/public-api.ts +6 -0
  359. package/shared/screen-observer/{index.d.ts → index.ts} +0 -1
  360. package/shared/screen-observer/provide-screen-observer.ts +17 -0
  361. package/shared/screen-observer/screen-observer.ts +56 -0
  362. package/shared/screen-observer/sizable-base.ts +70 -0
  363. package/shared/theme-provider/generic-theme.ts +1 -0
  364. package/shared/theme-provider/index.ts +1 -0
  365. package/shared/theme-provider/public-api.ts +1 -0
  366. package/shared/theme-provider/theme-provider.directive.ts +17 -0
  367. package/shared/themes/sdc.css +153 -0
  368. package/shared/types.ts +18 -0
  369. package/src/private-exports.ts +1 -0
  370. package/src/public-api.ts +20 -0
  371. package/styles.css +46 -2
  372. package/tsconfig.json +50 -0
  373. package/tsconfig.lib.prod.json +6 -0
  374. package/tsconfig.spec.json +15 -0
  375. package/tsconfig.temp.json +1 -0
  376. package/utils/index.ts +1 -0
  377. package/utils/ng-package.json +1 -0
  378. package/utils/public-api.ts +1 -0
  379. package/utils/validate-styles-for-component.ts +39 -0
  380. package/3ddv-software-division-components.d.ts.map +0 -1
  381. package/backoffice/checkbox/checkbox.component.d.ts +0 -103
  382. package/backoffice/checkbox/checkbox.component.d.ts.map +0 -1
  383. package/backoffice/checkbox/index.d.ts +0 -2
  384. package/backoffice/checkbox/index.d.ts.map +0 -1
  385. package/backoffice/checkbox/public-api.d.ts +0 -2
  386. package/backoffice/checkbox/public-api.d.ts.map +0 -1
  387. package/backoffice/datepicker/datepicker.component.d.ts +0 -150
  388. package/backoffice/datepicker/datepicker.component.d.ts.map +0 -1
  389. package/backoffice/datepicker/index.d.ts +0 -2
  390. package/backoffice/datepicker/index.d.ts.map +0 -1
  391. package/backoffice/datepicker/public-api.d.ts.map +0 -1
  392. package/backoffice/datepicker/ui/ui-calendar-helm/src/index.d.ts +0 -14
  393. package/backoffice/datepicker/ui/ui-calendar-helm/src/index.d.ts.map +0 -1
  394. package/backoffice/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar-multi.d.ts +0 -38
  395. package/backoffice/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar-multi.d.ts.map +0 -1
  396. package/backoffice/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar.d.ts +0 -34
  397. package/backoffice/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar.d.ts.map +0 -1
  398. package/backoffice/datepicker/ui/ui-date-picker-helm/src/index.d.ts +0 -15
  399. package/backoffice/datepicker/ui/ui-date-picker-helm/src/index.d.ts.map +0 -1
  400. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker-multi.d.ts +0 -53
  401. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker-multi.d.ts.map +0 -1
  402. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker-multi.token.d.ts +0 -24
  403. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker-multi.token.d.ts.map +0 -1
  404. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker.d.ts +0 -53
  405. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker.d.ts.map +0 -1
  406. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker.token.d.ts +0 -24
  407. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker.token.d.ts.map +0 -1
  408. package/backoffice/datepicker/ui/ui-icon-helm/src/index.d.ts +0 -10
  409. package/backoffice/datepicker/ui/ui-icon-helm/src/index.d.ts.map +0 -1
  410. package/backoffice/datepicker/ui/ui-icon-helm/src/lib/hlm-icon.d.ts +0 -10
  411. package/backoffice/datepicker/ui/ui-icon-helm/src/lib/hlm-icon.d.ts.map +0 -1
  412. package/backoffice/datepicker/ui/ui-icon-helm/src/lib/hlm-icon.token.d.ts +0 -8
  413. package/backoffice/datepicker/ui/ui-icon-helm/src/lib/hlm-icon.token.d.ts.map +0 -1
  414. package/backoffice/datepicker/ui/ui-popover-helm/src/index.d.ts +0 -14
  415. package/backoffice/datepicker/ui/ui-popover-helm/src/index.d.ts.map +0 -1
  416. package/backoffice/datepicker/ui/ui-popover-helm/src/lib/hlm-popover-close.d.ts +0 -9
  417. package/backoffice/datepicker/ui/ui-popover-helm/src/lib/hlm-popover-close.d.ts.map +0 -1
  418. package/backoffice/datepicker/ui/ui-popover-helm/src/lib/hlm-popover-content.d.ts +0 -14
  419. package/backoffice/datepicker/ui/ui-popover-helm/src/lib/hlm-popover-content.d.ts.map +0 -1
  420. package/backoffice/index.d.ts +0 -2
  421. package/backoffice/index.d.ts.map +0 -1
  422. package/backoffice/input/index.d.ts +0 -2
  423. package/backoffice/input/index.d.ts.map +0 -1
  424. package/backoffice/input/input.component.d.ts +0 -200
  425. package/backoffice/input/input.component.d.ts.map +0 -1
  426. package/backoffice/input/public-api.d.ts +0 -2
  427. package/backoffice/input/public-api.d.ts.map +0 -1
  428. package/backoffice/public-api.d.ts +0 -6
  429. package/backoffice/public-api.d.ts.map +0 -1
  430. package/backoffice/radio/index.d.ts +0 -2
  431. package/backoffice/radio/index.d.ts.map +0 -1
  432. package/backoffice/radio/public-api.d.ts +0 -2
  433. package/backoffice/radio/public-api.d.ts.map +0 -1
  434. package/backoffice/radio/radio.component.d.ts +0 -73
  435. package/backoffice/radio/radio.component.d.ts.map +0 -1
  436. package/backoffice/table/_components/pagination/pagination.component.d.ts +0 -18
  437. package/backoffice/table/_components/pagination/pagination.component.d.ts.map +0 -1
  438. package/backoffice/table/_components/selection-table-head/selection-table-head.component.d.ts +0 -11
  439. package/backoffice/table/_components/selection-table-head/selection-table-head.component.d.ts.map +0 -1
  440. package/backoffice/table/_components/selection-table-row/selection-table-row.component.d.ts +0 -8
  441. package/backoffice/table/_components/selection-table-row/selection-table-row.component.d.ts.map +0 -1
  442. package/backoffice/table/_components/sort-header-button/sort-header-button.component.d.ts +0 -16
  443. package/backoffice/table/_components/sort-header-button/sort-header-button.component.d.ts.map +0 -1
  444. package/backoffice/table/index.d.ts +0 -2
  445. package/backoffice/table/index.d.ts.map +0 -1
  446. package/backoffice/table/public-api.d.ts +0 -3
  447. package/backoffice/table/public-api.d.ts.map +0 -1
  448. package/backoffice/table/table.component.d.ts +0 -111
  449. package/backoffice/table/table.component.d.ts.map +0 -1
  450. package/backoffice/table/ui/ui-icon-helm/src/index.d.ts +0 -10
  451. package/backoffice/table/ui/ui-icon-helm/src/index.d.ts.map +0 -1
  452. package/backoffice/table/ui/ui-icon-helm/src/lib/hlm-icon.d.ts +0 -10
  453. package/backoffice/table/ui/ui-icon-helm/src/lib/hlm-icon.d.ts.map +0 -1
  454. package/backoffice/table/ui/ui-icon-helm/src/lib/hlm-icon.token.d.ts +0 -8
  455. package/backoffice/table/ui/ui-icon-helm/src/lib/hlm-icon.token.d.ts.map +0 -1
  456. package/backoffice/table/ui/ui-table-helm/src/index.d.ts +0 -11
  457. package/backoffice/table/ui/ui-table-helm/src/index.d.ts.map +0 -1
  458. package/backoffice/table/ui/ui-table-helm/src/lib/hlm-table.d.ts +0 -112
  459. package/backoffice/table/ui/ui-table-helm/src/lib/hlm-table.d.ts.map +0 -1
  460. package/dvm/cart/cart.component.d.ts +0 -31
  461. package/dvm/cart/cart.component.d.ts.map +0 -1
  462. package/dvm/cart/cart.types.d.ts +0 -8
  463. package/dvm/cart/cart.types.d.ts.map +0 -1
  464. package/dvm/cart/index.d.ts +0 -2
  465. package/dvm/cart/index.d.ts.map +0 -1
  466. package/dvm/cart/public-api.d.ts.map +0 -1
  467. package/dvm/cart/seat-list.component.d.ts +0 -38
  468. package/dvm/cart/seat-list.component.d.ts.map +0 -1
  469. package/dvm/cart-item/cart-item.component.d.ts +0 -6
  470. package/dvm/cart-item/cart-item.component.d.ts.map +0 -1
  471. package/dvm/cart-item/cart-item.service.d.ts +0 -7
  472. package/dvm/cart-item/cart-item.service.d.ts.map +0 -1
  473. package/dvm/cart-item/index.d.ts +0 -2
  474. package/dvm/cart-item/index.d.ts.map +0 -1
  475. package/dvm/cart-item/public-api.d.ts.map +0 -1
  476. package/dvm/index.d.ts +0 -2
  477. package/dvm/index.d.ts.map +0 -1
  478. package/dvm/legend/index.d.ts +0 -2
  479. package/dvm/legend/index.d.ts.map +0 -1
  480. package/dvm/legend/legend.component.d.ts +0 -17
  481. package/dvm/legend/legend.component.d.ts.map +0 -1
  482. package/dvm/legend/public-api.d.ts.map +0 -1
  483. package/dvm/legend/types.d.ts.map +0 -1
  484. package/dvm/legend/ui/legend-elements/index.d.ts.map +0 -1
  485. package/dvm/legend/ui/legend-elements/legend-elements.component.d.ts +0 -16
  486. package/dvm/legend/ui/legend-elements/legend-elements.component.d.ts.map +0 -1
  487. package/dvm/loader/index.d.ts +0 -2
  488. package/dvm/loader/index.d.ts.map +0 -1
  489. package/dvm/loader/loader.component.d.ts +0 -6
  490. package/dvm/loader/loader.component.d.ts.map +0 -1
  491. package/dvm/loader/loader.service.d.ts +0 -7
  492. package/dvm/loader/loader.service.d.ts.map +0 -1
  493. package/dvm/loader/public-api.d.ts.map +0 -1
  494. package/dvm/map-loader/index.d.ts +0 -2
  495. package/dvm/map-loader/index.d.ts.map +0 -1
  496. package/dvm/map-loader/map-loader.component.d.ts.map +0 -1
  497. package/dvm/map-loader/public-api.d.ts +0 -2
  498. package/dvm/map-loader/public-api.d.ts.map +0 -1
  499. package/dvm/neighbors/index.d.ts +0 -2
  500. package/dvm/neighbors/index.d.ts.map +0 -1
  501. package/dvm/neighbors/neighbors.component.d.ts +0 -41
  502. package/dvm/neighbors/neighbors.component.d.ts.map +0 -1
  503. package/dvm/neighbors/public-api.d.ts +0 -3
  504. package/dvm/neighbors/public-api.d.ts.map +0 -1
  505. package/dvm/neighbors/types.d.ts.map +0 -1
  506. package/dvm/popover/base-popover.component.d.ts +0 -28
  507. package/dvm/popover/base-popover.component.d.ts.map +0 -1
  508. package/dvm/popover/index.d.ts +0 -2
  509. package/dvm/popover/index.d.ts.map +0 -1
  510. package/dvm/popover/popover.component.d.ts +0 -69
  511. package/dvm/popover/popover.component.d.ts.map +0 -1
  512. package/dvm/popover/popover.config.d.ts +0 -25
  513. package/dvm/popover/popover.config.d.ts.map +0 -1
  514. package/dvm/popover/popover.service.d.ts +0 -140
  515. package/dvm/popover/popover.service.d.ts.map +0 -1
  516. package/dvm/popover/public-api.d.ts.map +0 -1
  517. package/dvm/popover/seat-popover/seat-popover.component.d.ts +0 -21
  518. package/dvm/popover/seat-popover/seat-popover.component.d.ts.map +0 -1
  519. package/dvm/popover/section-popover/section-popover.component.d.ts +0 -32
  520. package/dvm/popover/section-popover/section-popover.component.d.ts.map +0 -1
  521. package/dvm/popover/services/dvm-popover-positioner.service.d.ts +0 -30
  522. package/dvm/popover/services/dvm-popover-positioner.service.d.ts.map +0 -1
  523. package/dvm/popover/services/popover-manager.service.d.ts +0 -29
  524. package/dvm/popover/services/popover-manager.service.d.ts.map +0 -1
  525. package/dvm/popover/transformers/base-popover-data-transformer.d.ts +0 -29
  526. package/dvm/popover/transformers/base-popover-data-transformer.d.ts.map +0 -1
  527. package/dvm/popover/types.d.ts +0 -79
  528. package/dvm/popover/types.d.ts.map +0 -1
  529. package/dvm/public-api.d.ts +0 -10
  530. package/dvm/public-api.d.ts.map +0 -1
  531. package/dvm/stepper/index.d.ts +0 -2
  532. package/dvm/stepper/index.d.ts.map +0 -1
  533. package/dvm/stepper/public-api.d.ts +0 -2
  534. package/dvm/stepper/public-api.d.ts.map +0 -1
  535. package/dvm/stepper/stepper.component.d.ts +0 -27
  536. package/dvm/stepper/stepper.component.d.ts.map +0 -1
  537. package/dvm/stepper/types.d.ts.map +0 -1
  538. package/dvm/ticket-info-item/index.d.ts +0 -2
  539. package/dvm/ticket-info-item/index.d.ts.map +0 -1
  540. package/dvm/ticket-info-item/public-api.d.ts.map +0 -1
  541. package/dvm/ticket-info-item/ticket-info-item.component.d.ts +0 -6
  542. package/dvm/ticket-info-item/ticket-info-item.component.d.ts.map +0 -1
  543. package/dvm/ticket-info-item/ticket-info-item.service.d.ts +0 -7
  544. package/dvm/ticket-info-item/ticket-info-item.service.d.ts.map +0 -1
  545. package/fesm2022/3ddv-software-division-components.mjs +0 -6568
  546. package/fesm2022/3ddv-software-division-components.mjs.map +0 -1
  547. package/generic/add-digital-wallet/add-digital-wallet.component.d.ts +0 -21
  548. package/generic/add-digital-wallet/add-digital-wallet.component.d.ts.map +0 -1
  549. package/generic/add-digital-wallet/index.d.ts +0 -2
  550. package/generic/add-digital-wallet/index.d.ts.map +0 -1
  551. package/generic/add-digital-wallet/public-api.d.ts.map +0 -1
  552. package/generic/braintree/braintree.component.d.ts +0 -33
  553. package/generic/braintree/braintree.component.d.ts.map +0 -1
  554. package/generic/braintree/index.d.ts +0 -2
  555. package/generic/braintree/index.d.ts.map +0 -1
  556. package/generic/braintree/public-api.d.ts.map +0 -1
  557. package/generic/braintree/types.d.ts +0 -27
  558. package/generic/braintree/types.d.ts.map +0 -1
  559. package/generic/button/button.component.d.ts +0 -152
  560. package/generic/button/button.component.d.ts.map +0 -1
  561. package/generic/button/index.d.ts +0 -2
  562. package/generic/button/index.d.ts.map +0 -1
  563. package/generic/button/public-api.d.ts +0 -2
  564. package/generic/button/public-api.d.ts.map +0 -1
  565. package/generic/button/ui/ui-button-helm/src/index.d.ts +0 -10
  566. package/generic/button/ui/ui-button-helm/src/index.d.ts.map +0 -1
  567. package/generic/button/ui/ui-button-helm/src/lib/hlm-button.d.ts +0 -20
  568. package/generic/button/ui/ui-button-helm/src/lib/hlm-button.d.ts.map +0 -1
  569. package/generic/button/ui/ui-button-helm/src/lib/hlm-button.token.d.ts +0 -9
  570. package/generic/button/ui/ui-button-helm/src/lib/hlm-button.token.d.ts.map +0 -1
  571. package/generic/carousel/carousel-item.component.d.ts +0 -8
  572. package/generic/carousel/carousel-item.component.d.ts.map +0 -1
  573. package/generic/carousel/carousel.component.d.ts +0 -20
  574. package/generic/carousel/carousel.component.d.ts.map +0 -1
  575. package/generic/carousel/index.d.ts +0 -2
  576. package/generic/carousel/index.d.ts.map +0 -1
  577. package/generic/carousel/public-api.d.ts.map +0 -1
  578. package/generic/carousel/ui/ui-carousel-helm/src/index.d.ts +0 -26
  579. package/generic/carousel/ui/ui-carousel-helm/src/index.d.ts.map +0 -1
  580. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-content.d.ts +0 -10
  581. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-content.d.ts.map +0 -1
  582. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-item.d.ts +0 -10
  583. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-item.d.ts.map +0 -1
  584. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-next.d.ts +0 -15
  585. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-next.d.ts.map +0 -1
  586. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-previous.d.ts +0 -15
  587. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-previous.d.ts.map +0 -1
  588. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-slide-display.d.ts +0 -16
  589. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-slide-display.d.ts.map +0 -1
  590. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel.d.ts +0 -28
  591. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel.d.ts.map +0 -1
  592. package/generic/dialog/dialog.component.d.ts +0 -11
  593. package/generic/dialog/dialog.component.d.ts.map +0 -1
  594. package/generic/dialog/index.d.ts +0 -2
  595. package/generic/dialog/index.d.ts.map +0 -1
  596. package/generic/dialog/libs/ui-dialog-helm/src/index.d.ts.map +0 -1
  597. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-close.d.ts +0 -9
  598. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-close.d.ts.map +0 -1
  599. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-content.d.ts +0 -15
  600. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-content.d.ts.map +0 -1
  601. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-description.d.ts +0 -10
  602. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-description.d.ts.map +0 -1
  603. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-footer.d.ts +0 -9
  604. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-footer.d.ts.map +0 -1
  605. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-header.d.ts +0 -9
  606. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-header.d.ts.map +0 -1
  607. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-overlay.d.ts +0 -12
  608. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-overlay.d.ts.map +0 -1
  609. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-title.d.ts +0 -10
  610. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-title.d.ts.map +0 -1
  611. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.d.ts +0 -7
  612. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.d.ts.map +0 -1
  613. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.service.d.ts +0 -21
  614. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.service.d.ts.map +0 -1
  615. package/generic/dialog/public-api.d.ts.map +0 -1
  616. package/generic/drawer/drawer.component.d.ts +0 -6
  617. package/generic/drawer/drawer.component.d.ts.map +0 -1
  618. package/generic/drawer/drawer.service.d.ts +0 -7
  619. package/generic/drawer/drawer.service.d.ts.map +0 -1
  620. package/generic/drawer/index.d.ts +0 -2
  621. package/generic/drawer/index.d.ts.map +0 -1
  622. package/generic/drawer/public-api.d.ts.map +0 -1
  623. package/generic/icon/icon.component.d.ts +0 -21
  624. package/generic/icon/icon.component.d.ts.map +0 -1
  625. package/generic/icon/index.d.ts +0 -2
  626. package/generic/icon/index.d.ts.map +0 -1
  627. package/generic/icon/lib/ui-icon-helm/src/index.d.ts +0 -10
  628. package/generic/icon/lib/ui-icon-helm/src/index.d.ts.map +0 -1
  629. package/generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.d.ts +0 -10
  630. package/generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.d.ts.map +0 -1
  631. package/generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.token.d.ts +0 -8
  632. package/generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.token.d.ts.map +0 -1
  633. package/generic/icon/public-api.d.ts +0 -2
  634. package/generic/icon/public-api.d.ts.map +0 -1
  635. package/generic/index.d.ts +0 -2
  636. package/generic/index.d.ts.map +0 -1
  637. package/generic/public-api.d.ts +0 -10
  638. package/generic/public-api.d.ts.map +0 -1
  639. package/generic/rich-text-editor/components/editor-toolbar/editor-toolbar.component.d.ts +0 -88
  640. package/generic/rich-text-editor/components/editor-toolbar/editor-toolbar.component.d.ts.map +0 -1
  641. package/generic/rich-text-editor/components/link-modal/link-modal.component.d.ts +0 -43
  642. package/generic/rich-text-editor/components/link-modal/link-modal.component.d.ts.map +0 -1
  643. package/generic/rich-text-editor/index.d.ts +0 -2
  644. package/generic/rich-text-editor/index.d.ts.map +0 -1
  645. package/generic/rich-text-editor/models/editor-config.model.d.ts +0 -46
  646. package/generic/rich-text-editor/models/editor-config.model.d.ts.map +0 -1
  647. package/generic/rich-text-editor/models/index.d.ts +0 -3
  648. package/generic/rich-text-editor/models/index.d.ts.map +0 -1
  649. package/generic/rich-text-editor/models/toolbar-config.model.d.ts +0 -63
  650. package/generic/rich-text-editor/models/toolbar-config.model.d.ts.map +0 -1
  651. package/generic/rich-text-editor/public-api.d.ts +0 -5
  652. package/generic/rich-text-editor/public-api.d.ts.map +0 -1
  653. package/generic/rich-text-editor/rich-text-editor.component.d.ts +0 -113
  654. package/generic/rich-text-editor/rich-text-editor.component.d.ts.map +0 -1
  655. package/generic/select/index.d.ts +0 -2
  656. package/generic/select/index.d.ts.map +0 -1
  657. package/generic/select/lib/hlm-select-content.d.ts +0 -13
  658. package/generic/select/lib/hlm-select-content.d.ts.map +0 -1
  659. package/generic/select/lib/hlm-select-group.d.ts +0 -10
  660. package/generic/select/lib/hlm-select-group.d.ts.map +0 -1
  661. package/generic/select/lib/hlm-select-label.d.ts +0 -12
  662. package/generic/select/lib/hlm-select-label.d.ts.map +0 -1
  663. package/generic/select/lib/hlm-select-option.d.ts +0 -12
  664. package/generic/select/lib/hlm-select-option.d.ts.map +0 -1
  665. package/generic/select/lib/hlm-select-scroll-down.d.ts +0 -9
  666. package/generic/select/lib/hlm-select-scroll-down.d.ts.map +0 -1
  667. package/generic/select/lib/hlm-select-scroll-up.d.ts +0 -9
  668. package/generic/select/lib/hlm-select-scroll-up.d.ts.map +0 -1
  669. package/generic/select/lib/hlm-select-trigger.d.ts +0 -17
  670. package/generic/select/lib/hlm-select-trigger.d.ts.map +0 -1
  671. package/generic/select/lib/hlm-select-value.d.ts +0 -9
  672. package/generic/select/lib/hlm-select-value.d.ts.map +0 -1
  673. package/generic/select/lib/hlm-select.d.ts +0 -9
  674. package/generic/select/lib/hlm-select.d.ts.map +0 -1
  675. package/generic/select/lib/index.d.ts +0 -35
  676. package/generic/select/lib/index.d.ts.map +0 -1
  677. package/generic/select/public-api.d.ts.map +0 -1
  678. package/generic/select/select.component.d.ts +0 -14
  679. package/generic/select/select.component.d.ts.map +0 -1
  680. package/generic/select/types.d.ts +0 -5
  681. package/generic/select/types.d.ts.map +0 -1
  682. package/index.d.ts +0 -6
  683. package/public-api.d.ts +0 -8
  684. package/public-api.d.ts.map +0 -1
  685. package/shared/apply-theme-variables/apply-theme-variables.d.ts +0 -4
  686. package/shared/apply-theme-variables/apply-theme-variables.d.ts.map +0 -1
  687. package/shared/apply-theme-variables/index.d.ts.map +0 -1
  688. package/shared/lib-provider/config-token.d.ts +0 -4
  689. package/shared/lib-provider/config-token.d.ts.map +0 -1
  690. package/shared/lib-provider/index.d.ts +0 -2
  691. package/shared/lib-provider/index.d.ts.map +0 -1
  692. package/shared/lib-provider/provide-sdc.d.ts +0 -10
  693. package/shared/lib-provider/provide-sdc.d.ts.map +0 -1
  694. package/shared/lib-provider/public-api.d.ts.map +0 -1
  695. package/shared/screen-observer/index.d.ts.map +0 -1
  696. package/shared/screen-observer/provide-screen-observer.d.ts +0 -5
  697. package/shared/screen-observer/provide-screen-observer.d.ts.map +0 -1
  698. package/shared/screen-observer/screen-observer.d.ts +0 -15
  699. package/shared/screen-observer/screen-observer.d.ts.map +0 -1
  700. package/shared/types.d.ts +0 -19
  701. package/shared/types.d.ts.map +0 -1
  702. package/tailwind.config.js +0 -19
  703. package/types/sizes.type.d.ts +0 -3
  704. package/types/sizes.type.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3ddv-software-division-components-backoffice-table.mjs","sources":["../../backoffice/table/_components/pagination/pagination.component.ts","../../backoffice/table/_components/pagination/pagination.component.html","../../backoffice/table/_components/selection-table-head/selection-table-head.component.ts","../../backoffice/table/_components/selection-table-head/selection-table-head.component.html","../../backoffice/table/_components/selection-table-row/selection-table-row.component.ts","../../backoffice/table/_components/selection-table-row/selection-table-row.component.html","../../backoffice/table/_components/sort-header-button/sort-header-button.component.ts","../../backoffice/table/_components/sort-header-button/sort-header-button.component.html","../../backoffice/table/ui/ui-table-helm/src/lib/hlm-table.ts","../../backoffice/table/ui/ui-table-helm/src/index.ts","../../backoffice/table/table.component.ts","../../backoffice/table/table.component.html","../../backoffice/table/public-api.ts","../../backoffice/table/3ddv-software-division-components-backoffice-table.ts"],"sourcesContent":["import { ButtonComponent } from '@3ddv/software-division-components/generic/button';\nimport { HlmIconModule } from '@3ddv/software-division-components/generic/icon';\nimport { ThemeClass } from '@3ddv/software-division-components/shared';\nimport { Component, input, output } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronLeft, lucideChevronRight } from '@ng-icons/lucide';\nimport { Table } from '@tanstack/angular-table';\n\n@Component({\n selector: 'sdc-pagination',\n imports: [NgIcon, HlmIconModule, ButtonComponent],\n providers: [provideIcons({ lucideChevronLeft, lucideChevronRight })],\n templateUrl: './pagination.component.html',\n styleUrl: './pagination.component.css',\n})\nexport class PaginationComponent {\n public readonly table = input.required<Table<any>>();\n public readonly maxVisiblePages = input<number>(7);\n public readonly showFirstLastButtons = input<boolean>(false);\n public readonly theme = input.required<ThemeClass>();\n public readonly exportButtonText = input<string>('Export');\n public readonly exportClick = output<{ selectedRows: any[]; allRows: any[] }>();\n\n protected getVisiblePageNumbers(): number[] {\n const currentPage = this.table().getState().pagination.pageIndex;\n const totalPages = this.table().getPageCount();\n const maxVisible = this.maxVisiblePages();\n\n if (totalPages <= maxVisible) {\n // If total pages is less than or equal to maxVisible, show all pages\n return Array.from({ length: totalPages }, (_, i) => i);\n }\n\n // Calculate the sliding window of pages to show\n const pages: number[] = [];\n\n // Calculate the center position for the window\n const centerPosition = Math.floor(maxVisible / 2);\n\n // Calculate the start page of the window\n let startPage = Math.max(0, currentPage - centerPosition);\n\n // Adjust start page if we're near the end\n if (startPage + maxVisible > totalPages) {\n startPage = Math.max(0, totalPages - maxVisible);\n }\n\n // Generate the page numbers for the window\n for (let i = 0; i < maxVisible; i++) {\n pages.push(startPage + i);\n }\n\n return pages;\n }\n\n protected onExportClick() {\n const tableState = this.table().getState();\n const selectedRows = tableState.rowSelection;\n const allRows = this.table()\n .getRowModel()\n .rows.map(row => row.original);\n\n // Get the actual selected row data\n const selectedRowData = Object.keys(selectedRows)\n .filter(key => selectedRows[key])\n .map(rowId => {\n const row = this.table()\n .getRowModel()\n .rows.find(r => r.id === rowId);\n return row ? row.original : null;\n })\n .filter(Boolean);\n\n this.exportClick.emit({\n selectedRows: selectedRowData,\n allRows: allRows,\n });\n }\n}\n","<div class=\"pagination\" [class]=\"theme()\">\n <!-- Pagination Controls -->\n <div class=\"pagination-controls\">\n <!-- First Page Button (conditional) -->\n @if (showFirstLastButtons()) {\n <button\n class=\"pagination-button first-page\"\n [disabled]=\"!table().getCanPreviousPage()\"\n (click)=\"table().setPageIndex(0)\">\n 1\n </button>\n }\n\n @if (table().getRowCount() > 0) {\n <!-- Previous Page Button -->\n <button class=\"pagination-button\" [disabled]=\"!table().getCanPreviousPage()\" (click)=\"table().previousPage()\">\n <ng-icon hlm name=\"lucideChevronLeft\" size=\"base\" />\n </button>\n\n <!-- Page Numbers -->\n @for (pageIndex of getVisiblePageNumbers(); track pageIndex) {\n <button\n class=\"pagination-button\"\n [class.active]=\"pageIndex === table().getState().pagination.pageIndex\"\n (click)=\"table().setPageIndex(pageIndex)\">\n {{ pageIndex + 1 }}\n </button>\n }\n\n <!-- Next Page Button -->\n <button class=\"pagination-button\" [disabled]=\"!table().getCanNextPage()\" (click)=\"table().nextPage()\">\n <ng-icon hlm name=\"lucideChevronRight\" size=\"base\" />\n </button>\n\n <!-- Last Page Button (conditional) -->\n @if (showFirstLastButtons()) {\n <button\n class=\"pagination-button last-page\"\n [disabled]=\"!table().getCanNextPage()\"\n (click)=\"table().setPageIndex(table().getPageCount() - 1)\">\n {{ table().getPageCount() }}\n </button>\n }\n } @else {\n <div class=\"no-data-container\">\n <div class=\"no-data-text\">No Data</div>\n </div>\n }\n </div>\n\n <!-- Added Export button to match the design -->\n <div class=\"export-button\">\n <sdc-button (click)=\"onExportClick()\">{{ exportButtonText() }}</sdc-button>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { type HeaderContext, injectFlexRenderContext } from '@tanstack/angular-table';\n\n@Component({\n templateUrl: './selection-table-head.component.html',\n styleUrl: './selection-table-head.component.css',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectionTableHeadComponent<T> {\n context = injectFlexRenderContext<HeaderContext<T, unknown>>();\n\n getIsAllVisibleRowsSelected(): boolean {\n const visibleRows = this.context.table.getRowModel().rows;\n return visibleRows.length > 0 && visibleRows.every(row => row.getIsSelected());\n }\n\n getIsSomeVisibleRowsSelected(): boolean {\n const visibleRows = this.context.table.getRowModel().rows;\n const selectedCount = visibleRows.filter(row => row.getIsSelected()).length;\n return selectedCount > 0 && selectedCount < visibleRows.length;\n }\n\n toggleAllVisibleRowsSelected(): void {\n const visibleRows = this.context.table.getRowModel().rows;\n const allSelected = this.getIsAllVisibleRowsSelected();\n\n visibleRows.forEach(row => {\n if (allSelected) {\n row.toggleSelected(false);\n } else {\n row.toggleSelected(true);\n }\n });\n }\n}\n","<input\n class=\"block px-1 selection-header\"\n type=\"checkbox\"\n [checked]=\"getIsAllVisibleRowsSelected()\"\n [indeterminate]=\"getIsSomeVisibleRowsSelected()\"\n (change)=\"toggleAllVisibleRowsSelected()\" />\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { type CellContext, injectFlexRenderContext } from '@tanstack/angular-table';\n\n@Component({\n templateUrl: './selection-table-row.component.html',\n styleUrl: './selection-table-row.component.css',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectionTableRowComponent<T> {\n context = injectFlexRenderContext<CellContext<T, unknown>>();\n}\n","<input\n class=\"block px-1\"\n type=\"checkbox\"\n [checked]=\"context.row.getIsSelected()\"\n (change)=\"context.row.getToggleSelectedHandler()($event)\" />\n","import { ButtonComponent } from '@3ddv/software-division-components/generic/button';\nimport { HlmIconModule } from '@3ddv/software-division-components/generic/icon';\nimport { Component, input, output, signal } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideArrowDown, lucideArrowUp, lucideArrowUpDown } from '@ng-icons/lucide';\n\n@Component({\n selector: 'sdc-table-head-sort-button',\n imports: [NgIcon, ButtonComponent, HlmIconModule],\n providers: [provideIcons({ lucideArrowUpDown, lucideArrowUp, lucideArrowDown })],\n templateUrl: './sort-header-button.component.html',\n styleUrl: './sort-header-button.component.css',\n})\nexport class SortTableHeadButtonComponent {\n public readonly isSorted = input<boolean>(false);\n public readonly columnName = input.required<string>();\n public readonly sortDirection = input.required<'asc' | 'desc' | false>();\n public readonly enableSorting = input<boolean>(false);\n\n public readonly sortClick = output<void>();\n\n protected isHovered = signal(false);\n\n protected onSortClick() {\n if (this.enableSorting()) {\n this.sortClick.emit();\n }\n }\n\n protected onMouseEnter() {\n if (this.enableSorting()) {\n this.isHovered.set(true);\n }\n }\n\n protected onMouseLeave() {\n if (this.enableSorting()) {\n this.isHovered.set(false);\n }\n }\n\n protected iconName() {\n // Show active sort arrow when sorted\n if (this.isSorted()) {\n return this.sortDirection() === 'asc' ? 'lucideArrowDown' : 'lucideArrowUp';\n }\n\n if (this.isHovered()) {\n return 'lucideArrowUpDown';\n }\n\n // No icon when not sorted and not hovering\n return '';\n }\n}\n","<button class=\"sort-button\" (click)=\"onSortClick()\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\n <span class=\"capitalize\">\n {{ columnName() }}\n </span>\n <span class=\"sort-icon\">\n <!-- Sort Icon -->\n @if (enableSorting() && iconName()) {\n <ng-icon hlm size=\"sm\" [name]=\"iconName()\" aria-hidden=\"true\" />\n }\n </span>\n</button>\n","// src/app/directives/hlm-table-directives.ts\nimport { computed, Directive, inject, InjectionToken, input, ValueProvider } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n// Configuration Interface and InjectionToken\nexport const HlmTableConfigToken = new InjectionToken<HlmTableVariant>('HlmTableConfig');\nexport interface HlmTableVariant {\n\ttable: string;\n\tthead: string;\n\ttbody: string;\n\ttfoot: string;\n\ttr: string;\n\tth: string;\n\ttd: string;\n\tcaption: string;\n}\n\nexport const HlmTableVariantDefault: HlmTableVariant = {\n\ttable: 'w-full caption-bottom text-sm',\n\tthead: '[&_tr]:border-b',\n\ttbody: '[&_tr:last-child]:border-0',\n\ttfoot: 'bg-muted/50 border-t font-medium [&>tr]:last:border-b-0',\n\ttr: 'hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors',\n\tth: 'text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n\ttd: 'p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n\tcaption: 'text-muted-foreground mt-4 text-sm',\n};\n\nexport function provideHlmTableConfig(config: Partial<HlmTableVariant>): ValueProvider {\n\treturn {\n\t\tprovide: HlmTableConfigToken,\n\t\tuseValue: { ...HlmTableVariantDefault, ...config },\n\t};\n}\n\nexport function injectHlmTableConfig(): HlmTableVariant {\n\treturn inject(HlmTableConfigToken, { optional: true }) ?? HlmTableVariantDefault;\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <table> element.\n * It resolves and provides base classes for its child table elements.\n * If a table has the `hlmTable` attribute, it will be styled with the provided variant.\n * The other table elements will check if a parent table has the `hlmTable` attribute and will be styled accordingly.\n */\n@Directive({\n\tselector: 'table[hlmTable]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTable {\n\t/** Input to configure the variant of the table, this input has the highest priority. */\n\tpublic readonly userVariant = input<Partial<HlmTableVariant> | string>({}, { alias: 'hlmTable' });\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\t/** Global or default configuration provided by injectHlmTableConfig() */\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\n\t// Protected variant that resolves user input to a full HlmTableVariant\n\tprotected readonly _variant = computed<HlmTableVariant>(() => {\n\t\tconst globalOrDefaultConfig = this._globalOrDefaultConfig;\n\t\tconst localInputConfig = this.userVariant();\n\n\t\t// Priority 1: Local input object\n\t\tif (typeof localInputConfig === 'object' && localInputConfig !== null && Object.keys(localInputConfig).length > 0) {\n\t\t\t// Merge local input with the baseline provided by injectHlmTableConfig()\n\t\t\t// This ensures that properties not in localInputConfig still fall back to global/default values.\n\t\t\treturn { ...globalOrDefaultConfig, ...localInputConfig };\n\t\t}\n\t\t// If localInputConfig is not a non-empty object (e.g., it's undefined, an empty object, or a string),\n\t\t// then the globalOrDefaultConfig (which is already the result of injected OR default) is used.\n\t\treturn globalOrDefaultConfig;\n\t});\n\n\t// Computed class for the host <table> element\n\tprotected readonly _computedClass = computed(() => hlm(this._variant().table, this.userClass()));\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <thead> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'thead[hlmTHead]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTHead {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.thead.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <tbody> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'tbody[hlmTBody]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTBody {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.tbody.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <tfoot> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'tfoot[hlmTFoot]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTFoot {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.tfoot.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <tr> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'tr[hlmTr]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTr {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.tr.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <th> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'th[hlmTh]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTh {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.th.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <td> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'td[hlmTd]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmTd {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.td.trim() : '', this.userClass()),\n\t);\n}\n\n/**\n * Directive to apply Shadcn-like styling to a <caption> element\n * within an HlmTableDirective context.\n */\n@Directive({\n\tselector: 'caption[hlmCaption]',\n\tstandalone: true,\n\thost: {\n\t\t'[class]': '_computedClass()',\n\t},\n})\nexport class HlmCaption {\n\tprivate readonly _globalOrDefaultConfig = injectHlmTableConfig();\n\tpublic readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n\tprotected readonly _computedClass = computed(() =>\n\t\thlm(this._globalOrDefaultConfig ? this._globalOrDefaultConfig.caption.trim() : '', this.userClass()),\n\t);\n}\n","import { NgModule } from '@angular/core';\n\nimport { HlmCaption, HlmTable, HlmTBody, HlmTd, HlmTFoot, HlmTh, HlmTHead, HlmTr } from './lib/hlm-table';\n\nexport * from './lib/hlm-table';\n\nexport const HlmTableImports = [HlmCaption, HlmTable, HlmTBody, HlmTd, HlmTFoot, HlmTh, HlmTHead, HlmTr] as const;\n\n@NgModule({\n\timports: [...HlmTableImports],\n\texports: [...HlmTableImports],\n})\nexport class HlmTableModule {}\n","import { ThemeClass } from '@3ddv/software-division-components/shared';\nimport { Component, computed, effect, input, OnDestroy, output, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown, lucideChevronLeft, lucideChevronRight } from '@ng-icons/lucide';\nimport {\n ColumnDef,\n createAngularTable,\n flexRenderComponent,\n FlexRenderDirective,\n getCoreRowModel,\n getPaginationRowModel,\n PaginationState,\n RowSelectionState,\n SortingState,\n} from '@tanstack/angular-table';\nimport { PaginationComponent } from './_components/pagination/pagination.component';\nimport { SelectionTableHeadComponent } from './_components/selection-table-head/selection-table-head.component';\nimport { SelectionTableRowComponent } from './_components/selection-table-row/selection-table-row.component';\nimport { SortTableHeadButtonComponent } from './_components/sort-header-button/sort-header-button.component';\nimport { HlmTableImports } from './ui/ui-table-helm/src';\n\nexport type TableStyleClasses = ReturnType<(typeof TableComponent.prototype)['styleClass']>;\n@Component({\n selector: 'sdc-table',\n imports: [FormsModule, FlexRenderDirective, PaginationComponent, ...HlmTableImports],\n providers: [provideIcons({ lucideChevronDown, lucideChevronLeft, lucideChevronRight })],\n templateUrl: './table.component.html',\n styleUrl: './table.component.css',\n})\nexport class TableComponent<T extends Record<string, any>> implements OnDestroy {\n private readonly allowedVariants = ['full-table', 'minimal-table'] as const;\n\n /**\n * The data to display in the table.\n */\n public readonly data = input<T[]>([]);\n\n /**\n * The columns to display in the table.\n */\n public readonly columns = input<ColumnDef<T>[]>([]);\n\n /**\n * Whether to show the selection column.\n */\n public readonly showSelection = input<boolean>(false);\n\n /**\n * Whether to enable sorting for the table.\n */\n public readonly enableSort = input<boolean | string[]>(false);\n\n /**\n * The maximum number of pages to display in the pagination.\n */\n public readonly maxVisiblePages = input<number>(3);\n\n /**\n * The page size for the table pagination.\n */\n public readonly pageSize = input<number>(10);\n\n /**\n * The initial page index for the table pagination.\n */\n public readonly initialPageIndex = input<number>(0);\n\n /**\n * Whether to show the first and last buttons in the pagination.\n */\n public readonly showFirstLastButtons = input<boolean>(true);\n\n /**\n * The current theme applied to the component.\n */\n public readonly theme = input<ThemeClass>('theme-sdc');\n\n /**\n * Predefined styles to apply to the component.\n * Can be a single class or multiple classes from different categories.\n */\n public readonly styleClass = input<(typeof this.allowedVariants)[number][]>([this.allowedVariants[0]]);\n\n // Computed signal that validates and filters the styleClass input\n private readonly _validatedStyleClass = computed(() => {\n const value = this.styleClass();\n\n if (!Array.isArray(value)) {\n console.warn('TableComponent: styleClass must be an array, defaulting to empty array');\n return [];\n }\n\n const validValues = value.filter(style => this.allowedVariants.includes(style));\n const invalidValues = value.filter(style => !this.allowedVariants.includes(style));\n\n if (invalidValues.length > 0) {\n throw new Error(\n `TableComponent: Invalid styleClass values ignored: ${invalidValues.join(', ')}. Allowed values: ${this.allowedVariants.join(', ')}`\n );\n }\n\n return validValues;\n });\n\n /**\n * Additional CSS classes to apply to the component.\n */\n public readonly className = input<string>('');\n\n /**\n * The text to display in the export button.\n */\n public readonly exportButtonText = input<string>('Export');\n\n /**\n * Event emitted when the export button is clicked.\n * Includes selected rows and all rows for export functionality.\n */\n public readonly exportClick = output<{ selectedRows: T[]; allRows: T[] }>();\n\n /**\n * Event emitted when the sorting state changes.\n */\n public readonly sortingChange = output<SortingState>();\n\n /**\n * Event emitted when the selection state changes.\n */\n public readonly selectionChange = output<RowSelectionState>();\n\n /**\n * Whether to pin/freeze the table headers so they remain visible during vertical scrolling.\n * When enabled, headers will stay at the top of the viewport while scrolling through table data.\n */\n public readonly pinningHeaders = input<boolean>(false);\n\n /**\n * Whether to show the pagination controls at the bottom of the table.\n * When disabled, all rows will be displayed without pagination.\n */\n public readonly showPagination = input<boolean>(true);\n\n /**\n * Event emitted when the pagination state changes.\n */\n public readonly paginationChange = output<PaginationState>();\n\n /**\n * Computed class string that combines theme and user classes.\n */\n protected readonly computedClass = computed(() => {\n const themeClass = this.theme();\n const styleClass = this._validatedStyleClass();\n const className = this.className();\n const pinningHeadersClass = this.pinningHeaders() ? 'pinning-headers' : '';\n return ['sdc-table', themeClass, ...styleClass, pinningHeadersClass, className].filter(Boolean).join(' ');\n });\n\n protected _handleSortClick(columnId: string) {\n const currentSort = this._sorting();\n const currentColumnSort = currentSort.find(sort => sort.id === columnId);\n\n let newSort: SortingState = [];\n\n if (!currentColumnSort) {\n // First click: sort asc\n newSort = [{ id: columnId, desc: false }];\n } else if (!currentColumnSort.desc) {\n // Second click: sort desc\n newSort = [{ id: columnId, desc: true }];\n } else {\n // Third click: remove sort\n newSort = [];\n }\n\n this._sorting.set(newSort);\n this.sortingChange.emit(newSort);\n }\n\n protected _getSortDirection(columnId: string): 'asc' | 'desc' | false {\n const currentSort = this._sorting();\n const columnSort = currentSort.find(sort => sort.id === columnId);\n\n if (!columnSort) {\n return false;\n }\n\n return columnSort.desc ? 'desc' : 'asc';\n }\n\n protected _isColumnSorted(columnId: string): boolean {\n const currentSort = this._sorting();\n return currentSort.some(sort => sort.id === columnId);\n }\n\n protected _isSortEnabled(columnId: string): boolean {\n const sortConfig = this.enableSort();\n\n if (typeof sortConfig === 'boolean') {\n return sortConfig;\n }\n\n if (Array.isArray(sortConfig)) {\n return sortConfig.includes(columnId);\n }\n\n return false;\n }\n\n protected _createSortableHeader(column: ColumnDef<T>, columnId: string) {\n return flexRenderComponent(SortTableHeadButtonComponent, {\n inputs: {\n columnName: columnId,\n isSorted: this._isColumnSorted(columnId),\n sortDirection: this._getSortDirection(columnId),\n enableSorting: this._isSortEnabled(columnId),\n },\n outputs: {\n sortClick: () => this._handleSortClick(columnId),\n },\n });\n }\n\n protected _processColumns(): ColumnDef<T>[] {\n const baseColumns = this.columns() || [];\n const processedColumns: ColumnDef<T>[] = [];\n\n // Add selection column if enabled\n if (this.showSelection()) {\n processedColumns.push({\n accessorKey: 'select',\n id: 'select',\n header: () => flexRenderComponent(SelectionTableHeadComponent),\n cell: () => flexRenderComponent(SelectionTableRowComponent),\n enableSorting: false,\n enableHiding: false,\n });\n }\n\n // Process each column\n baseColumns.forEach(column => {\n const processedColumn = { ...column };\n\n // If sorting is enabled for this column, wrap the header with sort functionality\n if (this._isSortEnabled(column.id || '')) {\n processedColumn.header = context => this._createSortableHeader(column, context.column.id);\n }\n\n // Ensure sorting is disabled for client-side (we only support server-side sorting)\n processedColumn.enableSorting = false;\n\n processedColumns.push(processedColumn);\n });\n\n return processedColumns;\n }\n\n private readonly _sorting = signal<SortingState>([]);\n private readonly _rowSelection = signal<RowSelectionState>({});\n private readonly _pagination = signal<PaginationState>({\n pageSize: this.pageSize(),\n pageIndex: this.initialPageIndex(),\n });\n\n // Effect to sync input changes to the pagination signal\n // Only runs when pagination is enabled\n private readonly _paginationEffect = effect(() => {\n // Only update pagination when it's enabled\n if (!this.showPagination()) {\n return;\n }\n\n const newPageSize = this.pageSize();\n const newPageIndex = this.initialPageIndex();\n\n this._pagination.update(current => ({\n ...current,\n pageSize: newPageSize,\n pageIndex: newPageIndex,\n }));\n });\n\n public ngOnDestroy(): void {\n // Cleans up the pagination effect to prevent memory leaks.\n if (this._paginationEffect) {\n this._paginationEffect.destroy();\n }\n }\n\n private readonly _table = createAngularTable<T>(() => ({\n data: this.data(),\n columns: this._processColumns(),\n state: {\n sorting: this._sorting(),\n rowSelection: this._rowSelection(),\n // Only include pagination state when pagination is enabled\n ...(this.showPagination() && { pagination: this._pagination() }),\n },\n onSortingChange: updater => {\n updater instanceof Function ? this._sorting.update(updater) : this._sorting.set(updater);\n this.sortingChange.emit(this._sorting());\n },\n onRowSelectionChange: updater => {\n updater instanceof Function ? this._rowSelection.update(updater) : this._rowSelection.set(updater);\n this.selectionChange.emit(this._rowSelection());\n },\n // Only include pagination change handler when pagination is enabled\n ...(this.showPagination() && {\n onPaginationChange: updater => {\n updater instanceof Function ? this._pagination.update(updater) : this._pagination.set(updater);\n this.paginationChange.emit(this._pagination());\n },\n }),\n getCoreRowModel: getCoreRowModel(),\n // Only include pagination row model when pagination is enabled\n ...(this.showPagination() && { getPaginationRowModel: getPaginationRowModel() }),\n enableRowSelection: this.showSelection(),\n initialState: {\n // Only include pagination initial state when pagination is enabled\n ...(this.showPagination() && { pagination: this._pagination() }),\n },\n }));\n\n // Public getters for template access\n public get headerGroups() {\n return this._table.getHeaderGroups();\n }\n\n public get rows() {\n return this._table.getRowModel().rows;\n }\n\n public get paginatedRows() {\n if (this.showPagination()) {\n return this._table.getPaginationRowModel().rows;\n } else {\n // When pagination is disabled, return all rows from the core row model\n return this._table.getRowModel().rows;\n }\n }\n\n // Public getter for pagination component\n public get tableForPagination() {\n return this._table as any;\n }\n}\n","<div [class]=\"computedClass()\">\n <div class=\"table-container\">\n <!-- we defer the loading of the table, because tanstack manipulates the DOM with flexRender which can cause errors during SSR -->\n @defer {\n <table hlmTable>\n <thead hlmTHead class=\"sdc-table-header\">\n @for (headerGroup of tableForPagination.getHeaderGroups(); track headerGroup.id) {\n <tr hlmTr>\n @for (header of headerGroup.headers; track header.id) {\n <th hlmTh [attr.colSpan]=\"header.colSpan\">\n @if (!header.isPlaceholder) {\n <ng-container\n *flexRender=\"header.column.columnDef.header; props: header.getContext(); let headerText\">\n <div [innerHTML]=\"headerText\"></div>\n </ng-container>\n }\n </th>\n }\n </tr>\n }\n </thead>\n <tbody hlmTBody class=\"sdc-table-body w-full\">\n @for (row of paginatedRows; track row.id) {\n <tr hlmTr [attr.key]=\"row.id\" [attr.data-state]=\"row.getIsSelected() && 'selected'\">\n @for (cell of row.getVisibleCells(); track $index) {\n <td hlmTd>\n <ng-container *flexRender=\"cell.column.columnDef.cell; props: cell.getContext(); let cell\">\n <div [innerHTML]=\"cell\"></div>\n </ng-container>\n </td>\n }\n </tr>\n } @empty {\n <tr hlmTr>\n <td hlmTd class=\"h-24 text-center\" [attr.colspan]=\"_processColumns().length\">No results.</td>\n </tr>\n }\n </tbody>\n </table>\n }\n </div>\n</div>\n\n<!-- Pagination Component -->\n@if (showPagination()) {\n <sdc-pagination\n [theme]=\"theme()\"\n [table]=\"tableForPagination\"\n [maxVisiblePages]=\"maxVisiblePages()\"\n [showFirstLastButtons]=\"showFirstLastButtons()\"\n [exportButtonText]=\"exportButtonText()\"\n (exportClick)=\"exportClick.emit($event)\"></sdc-pagination>\n}\n","// Export the main table component\nexport * from './table.component';\n\n// Re-export TanStack Table utilities used by consumers\nexport { flexRenderComponent } from '@tanstack/angular-table';\nexport type { ColumnDef, RowSelectionState, SortingState } from '@tanstack/angular-table';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.HlmTable","i1.HlmTBody","i1.HlmTd","i1.HlmTh","i1.HlmTHead","i1.HlmTr"],"mappings":";;;;;;;;;;;;MAea,mBAAmB,CAAA;AACd,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,gDAAc;AACpC,IAAA,eAAe,GAAG,KAAK,CAAS,CAAC,2DAAC;AAClC,IAAA,oBAAoB,GAAG,KAAK,CAAU,KAAK,gEAAC;AAC5C,IAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,gDAAc;AACpC,IAAA,gBAAgB,GAAG,KAAK,CAAS,QAAQ,4DAAC;IAC1C,WAAW,GAAG,MAAM,EAA2C;IAErE,qBAAqB,GAAA;AAC7B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,SAAS;QAChE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE;AAC9C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE;AAEzC,QAAA,IAAI,UAAU,IAAI,UAAU,EAAE;;AAE5B,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACxD;;QAGA,MAAM,KAAK,GAAa,EAAE;;QAG1B,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;;AAGjD,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,cAAc,CAAC;;AAGzD,QAAA,IAAI,SAAS,GAAG,UAAU,GAAG,UAAU,EAAE;YACvC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;QAClD;;AAGA,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;AACnC,YAAA,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QAC3B;AAEA,QAAA,OAAO,KAAK;IACd;IAEU,aAAa,GAAA;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;AAC1C,QAAA,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY;AAC5C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK;AACvB,aAAA,WAAW;aACX,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC;;AAGhC,QAAA,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY;aAC7C,MAAM,CAAC,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC;aAC/B,GAAG,CAAC,KAAK,IAAG;AACX,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK;AACnB,iBAAA,WAAW;AACX,iBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC;YACjC,OAAO,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI;AAClC,QAAA,CAAC;aACA,MAAM,CAAC,OAAO,CAAC;AAElB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AACpB,YAAA,YAAY,EAAE,eAAe;AAC7B,YAAA,OAAO,EAAE,OAAO;AACjB,SAAA,CAAC;IACJ;uGA9DW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,ozBAJnB,CAAC,YAAY,CAAC,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC,CAAC,0BCXtE,65DAuDA,EAAA,MAAA,EAAA,CAAA,o5FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED7CY,MAAM,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,oHAAE,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKrC,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,WACjB,CAAC,MAAM,EAAE,aAAa,EAAE,eAAe,CAAC,EAAA,SAAA,EACtC,CAAC,YAAY,CAAC,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAA,QAAA,EAAA,65DAAA,EAAA,MAAA,EAAA,CAAA,o5FAAA,CAAA,EAAA;;;MEFzD,2BAA2B,CAAA;IACtC,OAAO,GAAG,uBAAuB,EAA6B;IAE9D,2BAA2B,GAAA;AACzB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI;AACzD,QAAA,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;IAChF;IAEA,4BAA4B,GAAA;AAC1B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI;AACzD,QAAA,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM;QAC3E,OAAO,aAAa,GAAG,CAAC,IAAI,aAAa,GAAG,WAAW,CAAC,MAAM;IAChE;IAEA,4BAA4B,GAAA;AAC1B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI;AACzD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,2BAA2B,EAAE;AAEtD,QAAA,WAAW,CAAC,OAAO,CAAC,GAAG,IAAG;YACxB,IAAI,WAAW,EAAE;AACf,gBAAA,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC;YAC3B;iBAAO;AACL,gBAAA,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC;YAC1B;AACF,QAAA,CAAC,CAAC;IACJ;uGAzBW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,wECTxC,+NAMA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDGa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;iCAGI,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+NAAA,EAAA;;;MEEpC,0BAA0B,CAAA;IACrC,OAAO,GAAG,uBAAuB,EAA2B;uGADjD,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,wECTvC,sKAKA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FDIa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBANtC,SAAS;iCAGI,IAAI,EAAA,eAAA,EACC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,sKAAA,EAAA;;;MEMpC,4BAA4B,CAAA;AACvB,IAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,oDAAC;AAChC,IAAA,UAAU,GAAG,KAAK,CAAC,QAAQ,qDAAU;AACrC,IAAA,aAAa,GAAG,KAAK,CAAC,QAAQ,wDAA0B;AACxD,IAAA,aAAa,GAAG,KAAK,CAAU,KAAK,yDAAC;IAErC,SAAS,GAAG,MAAM,EAAQ;AAEhC,IAAA,SAAS,GAAG,MAAM,CAAC,KAAK,qDAAC;IAEzB,WAAW,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;QACvB;IACF;IAEU,YAAY,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;QAC1B;IACF;IAEU,YAAY,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QAC3B;IACF;IAEU,QAAQ,GAAA;;AAEhB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,YAAA,OAAO,IAAI,CAAC,aAAa,EAAE,KAAK,KAAK,GAAG,iBAAiB,GAAG,eAAe;QAC7E;AAEA,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AACpB,YAAA,OAAO,mBAAmB;QAC5B;;AAGA,QAAA,OAAO,EAAE;IACX;uGAxCW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,gqBAJ5B,CAAC,YAAY,CAAC,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECTlF,0YAWA,EAAA,MAAA,EAAA,CAAA,qLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDHY,MAAM,4GAAmB,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKrC,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;+BACE,4BAA4B,EAAA,OAAA,EAC7B,CAAC,MAAM,EAAE,eAAe,EAAE,aAAa,CAAC,EAAA,SAAA,EACtC,CAAC,YAAY,CAAC,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC,EAAA,QAAA,EAAA,0YAAA,EAAA,MAAA,EAAA,CAAA,qLAAA,CAAA,EAAA;;;AETlF;AAKA;AACO,MAAM,mBAAmB,GAAG,IAAI,cAAc,CAAkB,gBAAgB,CAAC;AAYjF,MAAM,sBAAsB,GAAoB;AACtD,IAAA,KAAK,EAAE,+BAA+B;AACtC,IAAA,KAAK,EAAE,iBAAiB;AACxB,IAAA,KAAK,EAAE,4BAA4B;AACnC,IAAA,KAAK,EAAE,yDAAyD;AAChE,IAAA,EAAE,EAAE,6EAA6E;AACjF,IAAA,EAAE,EAAE,oJAAoJ;AACxJ,IAAA,EAAE,EAAE,wGAAwG;AAC5G,IAAA,OAAO,EAAE,oCAAoC;CAC7C;AAEK,SAAU,qBAAqB,CAAC,MAAgC,EAAA;IACrE,OAAO;AACN,QAAA,OAAO,EAAE,mBAAmB;AAC5B,QAAA,QAAQ,EAAE,EAAE,GAAG,sBAAsB,EAAE,GAAG,MAAM,EAAE;KAClD;AACF;SAEgB,oBAAoB,GAAA;AACnC,IAAA,OAAO,MAAM,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,sBAAsB;AACjF;AAEA;;;;;AAKG;MAQU,QAAQ,CAAA;;IAEJ,WAAW,GAAG,KAAK,CAAoC,EAAE,wDAAI,KAAK,EAAE,UAAU,EAAA,CAAG;IACjF,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;;IAGpD,sBAAsB,GAAG,oBAAoB,EAAE;;AAG7C,IAAA,QAAQ,GAAG,QAAQ,CAAkB,MAAK;AAC5D,QAAA,MAAM,qBAAqB,GAAG,IAAI,CAAC,sBAAsB;AACzD,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE;;QAG3C,IAAI,OAAO,gBAAgB,KAAK,QAAQ,IAAI,gBAAgB,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;;;AAGlH,YAAA,OAAO,EAAE,GAAG,qBAAqB,EAAE,GAAG,gBAAgB,EAAE;QACzD;;;AAGA,QAAA,OAAO,qBAAqB;AAC7B,IAAA,CAAC,oDAAC;;IAGiB,cAAc,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;uGAzBpF,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAPpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACL,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,qBAAA;AACD,iBAAA;;AA6BD;;;AAGG;MAQU,QAAQ,CAAA;IACH,sBAAsB,GAAG,oBAAoB,EAAE;IAChD,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAElD,IAAA,cAAc,GAAG,QAAQ,CAAC,MAC5C,GAAG,CAAC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,0DAClG;uGANW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAPpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACL,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,qBAAA;AACD,iBAAA;;AAUD;;;AAGG;MAQU,QAAQ,CAAA;IACH,sBAAsB,GAAG,oBAAoB,EAAE;IAChD,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAElD,IAAA,cAAc,GAAG,QAAQ,CAAC,MAC5C,GAAG,CAAC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,0DAClG;uGANW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAPpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACL,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,qBAAA;AACD,iBAAA;;AAUD;;;AAGG;MAQU,QAAQ,CAAA;IACH,sBAAsB,GAAG,oBAAoB,EAAE;IAChD,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAElD,IAAA,cAAc,GAAG,QAAQ,CAAC,MAC5C,GAAG,CAAC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,0DAClG;uGANW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAPpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACL,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,qBAAA;AACD,iBAAA;;AAUD;;;AAGG;MAQU,KAAK,CAAA;IACA,sBAAsB,GAAG,oBAAoB,EAAE;IAChD,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAElD,IAAA,cAAc,GAAG,QAAQ,CAAC,MAC5C,GAAG,CAAC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,0DAC/F;uGANW,KAAK,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAL,KAAK,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAL,KAAK,EAAA,UAAA,EAAA,CAAA;kBAPjB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACL,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,qBAAA;AACD,iBAAA;;AAUD;;;AAGG;MAQU,KAAK,CAAA;IACA,sBAAsB,GAAG,oBAAoB,EAAE;IAChD,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAElD,IAAA,cAAc,GAAG,QAAQ,CAAC,MAC5C,GAAG,CAAC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,0DAC/F;uGANW,KAAK,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAL,KAAK,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAL,KAAK,EAAA,UAAA,EAAA,CAAA;kBAPjB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACL,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,qBAAA;AACD,iBAAA;;AAUD;;;AAGG;MAQU,KAAK,CAAA;IACA,sBAAsB,GAAG,oBAAoB,EAAE;IAChD,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAElD,IAAA,cAAc,GAAG,QAAQ,CAAC,MAC5C,GAAG,CAAC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,0DAC/F;uGANW,KAAK,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAL,KAAK,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAL,KAAK,EAAA,UAAA,EAAA,CAAA;kBAPjB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACL,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,qBAAA;AACD,iBAAA;;AAUD;;;AAGG;MAQU,UAAU,CAAA;IACL,sBAAsB,GAAG,oBAAoB,EAAE;IAChD,SAAS,GAAG,KAAK,CAAa,EAAE,sDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAElD,IAAA,cAAc,GAAG,QAAQ,CAAC,MAC5C,GAAG,CAAC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,0DACpG;uGANW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAPtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACL,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,qBAAA;AACD,iBAAA;;;AC7MM,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAU;MAMpG,cAAc,CAAA;uGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAAA,OAAA,EAAA,CANK,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAA,EAAA,OAAA,EAAA,CAAvE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAA,EAAA,CAAA;wGAM1F,cAAc,EAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC;AAC7B,oBAAA,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC;AAC7B,iBAAA;;;MCmBY,cAAc,CAAA;AACR,IAAA,eAAe,GAAG,CAAC,YAAY,EAAE,eAAe,CAAU;AAE3E;;AAEG;AACa,IAAA,IAAI,GAAG,KAAK,CAAM,EAAE,gDAAC;AAErC;;AAEG;AACa,IAAA,OAAO,GAAG,KAAK,CAAiB,EAAE,mDAAC;AAEnD;;AAEG;AACa,IAAA,aAAa,GAAG,KAAK,CAAU,KAAK,yDAAC;AAErD;;AAEG;AACa,IAAA,UAAU,GAAG,KAAK,CAAqB,KAAK,sDAAC;AAE7D;;AAEG;AACa,IAAA,eAAe,GAAG,KAAK,CAAS,CAAC,2DAAC;AAElD;;AAEG;AACa,IAAA,QAAQ,GAAG,KAAK,CAAS,EAAE,oDAAC;AAE5C;;AAEG;AACa,IAAA,gBAAgB,GAAG,KAAK,CAAS,CAAC,4DAAC;AAEnD;;AAEG;AACa,IAAA,oBAAoB,GAAG,KAAK,CAAU,IAAI,gEAAC;AAE3D;;AAEG;AACa,IAAA,KAAK,GAAG,KAAK,CAAa,WAAW,iDAAC;AAEtD;;;AAGG;AACa,IAAA,UAAU,GAAG,KAAK,CAA0C,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;;AAGrF,IAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAK;AACpD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE;QAE/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACzB,YAAA,OAAO,CAAC,IAAI,CAAC,wEAAwE,CAAC;AACtF,YAAA,OAAO,EAAE;QACX;AAEA,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/E,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAElF,QAAA,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,MAAM,IAAI,KAAK,CACb,CAAA,mDAAA,EAAsD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CACrI;QACH;AAEA,QAAA,OAAO,WAAW;AACpB,IAAA,CAAC,gEAAC;AAEF;;AAEG;AACa,IAAA,SAAS,GAAG,KAAK,CAAS,EAAE,qDAAC;AAE7C;;AAEG;AACa,IAAA,gBAAgB,GAAG,KAAK,CAAS,QAAQ,4DAAC;AAE1D;;;AAGG;IACa,WAAW,GAAG,MAAM,EAAuC;AAE3E;;AAEG;IACa,aAAa,GAAG,MAAM,EAAgB;AAEtD;;AAEG;IACa,eAAe,GAAG,MAAM,EAAqB;AAE7D;;;AAGG;AACa,IAAA,cAAc,GAAG,KAAK,CAAU,KAAK,0DAAC;AAEtD;;;AAGG;AACa,IAAA,cAAc,GAAG,KAAK,CAAU,IAAI,0DAAC;AAErD;;AAEG;IACa,gBAAgB,GAAG,MAAM,EAAmB;AAE5D;;AAEG;AACgB,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AAC/C,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE;AAC/B,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAC9C,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;AAClC,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,iBAAiB,GAAG,EAAE;QAC1E,OAAO,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3G,IAAA,CAAC,yDAAC;AAEQ,IAAA,gBAAgB,CAAC,QAAgB,EAAA;AACzC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;AACnC,QAAA,MAAM,iBAAiB,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC;QAExE,IAAI,OAAO,GAAiB,EAAE;QAE9B,IAAI,CAAC,iBAAiB,EAAE;;AAEtB,YAAA,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAC3C;AAAO,aAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;;AAElC,YAAA,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC1C;aAAO;;YAEL,OAAO,GAAG,EAAE;QACd;AAEA,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;IAClC;AAEU,IAAA,iBAAiB,CAAC,QAAgB,EAAA;AAC1C,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;AACnC,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC;QAEjE,IAAI,CAAC,UAAU,EAAE;AACf,YAAA,OAAO,KAAK;QACd;QAEA,OAAO,UAAU,CAAC,IAAI,GAAG,MAAM,GAAG,KAAK;IACzC;AAEU,IAAA,eAAe,CAAC,QAAgB,EAAA;AACxC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;AACnC,QAAA,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC;IACvD;AAEU,IAAA,cAAc,CAAC,QAAgB,EAAA;AACvC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AAEpC,QAAA,IAAI,OAAO,UAAU,KAAK,SAAS,EAAE;AACnC,YAAA,OAAO,UAAU;QACnB;AAEA,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AAC7B,YAAA,OAAO,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACtC;AAEA,QAAA,OAAO,KAAK;IACd;IAEU,qBAAqB,CAAC,MAAoB,EAAE,QAAgB,EAAA;QACpE,OAAO,mBAAmB,CAAC,4BAA4B,EAAE;AACvD,YAAA,MAAM,EAAE;AACN,gBAAA,UAAU,EAAE,QAAQ;AACpB,gBAAA,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;AACxC,gBAAA,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;AAC/C,gBAAA,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AAC7C,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,SAAS,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AACjD,aAAA;AACF,SAAA,CAAC;IACJ;IAEU,eAAe,GAAA;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;QACxC,MAAM,gBAAgB,GAAmB,EAAE;;AAG3C,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACxB,gBAAgB,CAAC,IAAI,CAAC;AACpB,gBAAA,WAAW,EAAE,QAAQ;AACrB,gBAAA,EAAE,EAAE,QAAQ;AACZ,gBAAA,MAAM,EAAE,MAAM,mBAAmB,CAAC,2BAA2B,CAAC;AAC9D,gBAAA,IAAI,EAAE,MAAM,mBAAmB,CAAC,0BAA0B,CAAC;AAC3D,gBAAA,aAAa,EAAE,KAAK;AACpB,gBAAA,YAAY,EAAE,KAAK;AACpB,aAAA,CAAC;QACJ;;AAGA,QAAA,WAAW,CAAC,OAAO,CAAC,MAAM,IAAG;AAC3B,YAAA,MAAM,eAAe,GAAG,EAAE,GAAG,MAAM,EAAE;;YAGrC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;AACxC,gBAAA,eAAe,CAAC,MAAM,GAAG,OAAO,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3F;;AAGA,YAAA,eAAe,CAAC,aAAa,GAAG,KAAK;AAErC,YAAA,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC;AACxC,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,gBAAgB;IACzB;AAEiB,IAAA,QAAQ,GAAG,MAAM,CAAe,EAAE,oDAAC;AACnC,IAAA,aAAa,GAAG,MAAM,CAAoB,EAAE,yDAAC;IAC7C,WAAW,GAAG,MAAM,CAAkB;AACrD,QAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AACzB,QAAA,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE;AACnC,KAAA,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;;;AAIe,IAAA,iBAAiB,GAAG,MAAM,CAAC,MAAK;;AAE/C,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;YAC1B;QACF;AAEA,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE;AACnC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE;QAE5C,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,KAAK;AAClC,YAAA,GAAG,OAAO;AACV,YAAA,QAAQ,EAAE,WAAW;AACrB,YAAA,SAAS,EAAE,YAAY;AACxB,SAAA,CAAC,CAAC;AACL,IAAA,CAAC,6DAAC;IAEK,WAAW,GAAA;;AAEhB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE;QAClC;IACF;AAEiB,IAAA,MAAM,GAAG,kBAAkB,CAAI,OAAO;AACrD,QAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjB,QAAA,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE;AAC/B,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;AACxB,YAAA,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE;;AAElC,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;AACjE,SAAA;QACD,eAAe,EAAE,OAAO,IAAG;YACzB,OAAO,YAAY,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;YACxF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC1C,CAAC;QACD,oBAAoB,EAAE,OAAO,IAAG;YAC9B,OAAO,YAAY,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC;YAClG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACjD,CAAC;;AAED,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI;YAC3B,kBAAkB,EAAE,OAAO,IAAG;gBAC5B,OAAO,YAAY,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;gBAC9F,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAChD,CAAC;SACF,CAAC;QACF,eAAe,EAAE,eAAe,EAAE;;AAElC,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,EAAE,CAAC;AAChF,QAAA,kBAAkB,EAAE,IAAI,CAAC,aAAa,EAAE;AACxC,QAAA,YAAY,EAAE;;AAEZ,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;AACjE,SAAA;AACF,KAAA,CAAC,CAAC;;AAGH,IAAA,IAAW,YAAY,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;IACtC;AAEA,IAAA,IAAW,IAAI,GAAA;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI;IACvC;AAEA,IAAA,IAAW,aAAa,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;YACzB,OAAO,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,IAAI;QACjD;aAAO;;YAEL,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI;QACvC;IACF;;AAGA,IAAA,IAAW,kBAAkB,GAAA;QAC3B,OAAO,IAAI,CAAC,MAAa;IAC3B;uGA3TW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,SAAA,EAJd,CAAC,YAAY,CAAC,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC,CAAC,0BC1BzF,wlEAqDA,EAAA,MAAA,EAAA,CAAA,4wKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED5BY,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAuB,mBAAmB,sLAAxC,mBAAmB,EAAAA,QAAA,EAAAC,QAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,QAAA,EAAAC,KAAA,CAAA,CAAA,EAAA,CAAA;;2FAK/B,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;+BACE,WAAW,EAAA,OAAA,EACZ,CAAC,WAAW,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,GAAG,eAAe,CAAC,aACzE,CAAC,YAAY,CAAC,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC,CAAC,EAAA,QAAA,EAAA,wlEAAA,EAAA,MAAA,EAAA,CAAA,4wKAAA,CAAA,EAAA;;;AE1BzF;;ACAA;;AAEG;;;;"}
@@ -0,0 +1,34 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, Injectable } from '@angular/core';
3
+
4
+ class CartItemComponent {
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: CartItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.4", type: CartItemComponent, isStandalone: true, selector: "sdc-cart-item", ngImport: i0, template: "<div>cart-item component!</div>\n" });
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: CartItemComponent, decorators: [{
9
+ type: Component,
10
+ args: [{ selector: 'sdc-cart-item', standalone: true, template: "<div>cart-item component!</div>\n" }]
11
+ }] });
12
+
13
+ class CartItemService {
14
+ constructor() { }
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: CartItemService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: CartItemService, providedIn: 'root' });
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: CartItemService, decorators: [{
19
+ type: Injectable,
20
+ args: [{
21
+ providedIn: 'root',
22
+ }]
23
+ }], ctorParameters: () => [] });
24
+
25
+ /*
26
+ * Public API Surface of software-division-components
27
+ */
28
+
29
+ /**
30
+ * Generated bundle index. Do not edit.
31
+ */
32
+
33
+ export { CartItemComponent, CartItemService };
34
+ //# sourceMappingURL=3ddv-software-division-components-dvm-cart-item.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3ddv-software-division-components-dvm-cart-item.mjs","sources":["../../dvm/cart-item/cart-item.component.ts","../../dvm/cart-item/cart-item.component.html","../../dvm/cart-item/cart-item.service.ts","../../dvm/cart-item/public-api.ts","../../dvm/cart-item/3ddv-software-division-components-dvm-cart-item.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'sdc-cart-item',\n standalone: true,\n templateUrl: './cart-item.component.html',\n})\nexport class CartItemComponent {}\n","<div>cart-item component!</div>\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CartItemService {\n constructor() {}\n}\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './cart-item.component';\nexport * from './cart-item.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAOa,iBAAiB,CAAA;uGAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,yECP9B,mCACA,EAAA,CAAA;;2FDMa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,cACb,IAAI,EAAA,QAAA,EAAA,mCAAA,EAAA;;;MECL,eAAe,CAAA;AAC1B,IAAA,WAAA,GAAA,EAAe;uGADJ,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAf,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA;;2FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACJD;;AAEG;;ACFH;;AAEG;;;;"}
@@ -0,0 +1,101 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, output, computed, ViewEncapsulation, Component } from '@angular/core';
3
+ import { NgIcon, provideIcons } from '@ng-icons/core';
4
+ import { lucideChevronUp, lucideChevronDown, lucideEye, lucideMapPin } from '@ng-icons/lucide';
5
+
6
+ class SeatListComponent {
7
+ seats = input([], ...(ngDevMode ? [{ debugName: "seats" }] : []));
8
+ groups = input([], ...(ngDevMode ? [{ debugName: "groups" }] : []));
9
+ actionButtonText = input('Relocate', ...(ngDevMode ? [{ debugName: "actionButtonText" }] : []));
10
+ indicatorColor = input('#f97316', ...(ngDevMode ? [{ debugName: "indicatorColor" }] : []));
11
+ mapPinClick = output();
12
+ eyeClick = output();
13
+ actionClick = output();
14
+ groupToggle = output();
15
+ removeClick = output();
16
+ isGroupedMode = computed(() => this.groups().length > 0, ...(ngDevMode ? [{ debugName: "isGroupedMode" }] : []));
17
+ onMapPinClick(item) {
18
+ this.mapPinClick.emit(item);
19
+ }
20
+ onEyeClick(item) {
21
+ this.eyeClick.emit(item);
22
+ }
23
+ onActionClick(item) {
24
+ this.actionClick.emit(item);
25
+ }
26
+ onRemoveClick(item) {
27
+ this.removeClick.emit(item);
28
+ }
29
+ isGroupExpanded(group) {
30
+ return group.expanded !== false;
31
+ }
32
+ toggleGroup(group) {
33
+ const expanded = !this.isGroupExpanded(group);
34
+ group.expanded = expanded;
35
+ this.groupToggle.emit({ groupId: group.id, expanded });
36
+ }
37
+ getGroupIndicatorColor(group) {
38
+ return group.indicatorColor || this.indicatorColor();
39
+ }
40
+ getGroupActionButtonText(group) {
41
+ return group.actionButtonText || this.actionButtonText();
42
+ }
43
+ getGroupSeatCount(group) {
44
+ return `(${group.seats.length})`;
45
+ }
46
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: SeatListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
47
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: SeatListComponent, isStandalone: true, selector: "sdc-seat-list", inputs: { seats: { classPropertyName: "seats", publicName: "seats", isSignal: true, isRequired: false, transformFunction: null }, groups: { classPropertyName: "groups", publicName: "groups", isSignal: true, isRequired: false, transformFunction: null }, actionButtonText: { classPropertyName: "actionButtonText", publicName: "actionButtonText", isSignal: true, isRequired: false, transformFunction: null }, indicatorColor: { classPropertyName: "indicatorColor", publicName: "indicatorColor", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { mapPinClick: "mapPinClick", eyeClick: "eyeClick", actionClick: "actionClick", groupToggle: "groupToggle", removeClick: "removeClick" }, providers: [provideIcons({ lucideMapPin, lucideEye, lucideChevronDown, lucideChevronUp })], ngImport: i0, template: "<div class=\"sdc-seat-list\">\n @if (isGroupedMode()) {\n <div class=\"seat-list seat-list--grouped\">\n @for (group of groups(); track group.id) {\n <div class=\"seat-group\">\n <button class=\"seat-group__header\" (click)=\"toggleGroup(group)\">\n <div class=\"seat-group__header-content\">\n <span class=\"seat-group__title\">{{ group.title }}</span>\n <span class=\"seat-group__count\">{{ getGroupSeatCount(group) }}</span>\n </div>\n <ng-icon\n [name]=\"isGroupExpanded(group) ? 'lucideChevronUp' : 'lucideChevronDown'\"\n size=\"16\"\n class=\"seat-group__chevron\" />\n </button>\n <div class=\"seat-group__content\" [class.expanded]=\"isGroupExpanded(group)\">\n @for (item of group.seats; track item.id) {\n <div class=\"ticket\">\n <div class=\"ticket__indicator\" [style.background-color]=\"getGroupIndicatorColor(group)\"></div>\n <div class=\"ticket__info\">\n <span\n >Section <span class=\"ticket__section\">{{ item.section }}</span></span\n >\n <span\n >Row <span class=\"ticket__section\">{{ item.row }}</span></span\n >\n <span\n >Seat <span class=\"ticket__section\">{{ item.seat }}</span></span\n >\n </div>\n <div class=\"ticket__actions\">\n <div class=\"ticket__actions-left\">\n <div class=\"ticket__price\">${{ item.price }}</div>\n <div class=\"ticket__icon-box\">\n <ng-icon hlm name=\"lucideMapPin\" size=\"base\" class=\"ticket__icon\" (click)=\"onMapPinClick(item)\" />\n </div>\n <div class=\"ticket__icon-box\">\n <ng-icon hlm name=\"lucideEye\" size=\"base\" class=\"ticket__icon\" (click)=\"onEyeClick(item)\" />\n </div>\n </div>\n <button class=\"ticket__action-btn\" (click)=\"onRemoveClick(item)\">\n {{ getGroupActionButtonText(group) }}\n </button>\n </div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"seat-list seat-list--simple\">\n @for (item of seats(); track item.id) {\n <div class=\"ticket\">\n <div class=\"ticket__indicator\" [style.background-color]=\"indicatorColor()\"></div>\n <div class=\"ticket__info\">\n <span\n >Section <span class=\"ticket__section\">{{ item.section }}</span></span\n >\n <span\n >Row <span class=\"ticket__section\">{{ item.row }}</span></span\n >\n <span\n >Seat <span class=\"ticket__section\">{{ item.seat }}</span></span\n >\n </div>\n <div class=\"ticket__actions\">\n <div class=\"ticket__actions-left\">\n <div class=\"ticket__price\">${{ item.price }}</div>\n <div class=\"ticket__icon-box\">\n <ng-icon hlm name=\"lucideMapPin\" size=\"base\" class=\"ticket__icon\" (click)=\"onMapPinClick(item)\" />\n </div>\n <div class=\"ticket__icon-box\">\n <ng-icon hlm name=\"lucideEye\" size=\"base\" class=\"ticket__icon\" (click)=\"onEyeClick(item)\" />\n </div>\n </div>\n <button class=\"ticket__action-btn\" (click)=\"onActionClick(item)\">\n {{ actionButtonText() }}\n </button>\n </div>\n </div>\n }\n </div>\n }\n</div>\n", styles: [".sdc-seat-list{--sdc-seat-list-primary-bg: #2a2d3a;--sdc-seat-list-card-bg: #ffffff;--sdc-seat-list-text-primary: #ffffff;--sdc-seat-list-text-secondary: #6b7280;--sdc-seat-list-text-dark: #1f2937;--sdc-seat-list-accent-orange: #f97316;--sdc-seat-list-accent-green: #10b981;--sdc-seat-list-accent-blue: #2563eb;--sdc-seat-list-accent-blue-hover: #1d4ed8;--sdc-seat-list-border-color: #e5e7eb;--sdc-seat-list-icon-bg: #f5f5f5;--sdc-seat-list-ticket-bg: #f9fafb;--sdc-seat-list-ticket-bg-hover: #f3f4f6;--sdc-seat-list-group-header-bg: #e4eaef;--sdc-seat-list-group-header-hover: #f9fafb;--sdc-seat-list-spacing-xs: .25rem;--sdc-seat-list-spacing-sm: .5rem;--sdc-seat-list-spacing-md: 1rem;--sdc-seat-list-spacing-lg: 1.5rem;--sdc-seat-list-spacing-xl: 2rem;--sdc-seat-list-border-radius-sm: .375rem;--sdc-seat-list-border-radius-md: .5rem;--sdc-seat-list-border-radius-lg: .75rem;--sdc-seat-list-border-radius-xl: 1.5rem;--sdc-seat-list-font-size-sm: .875rem;--sdc-seat-list-font-size-base: 1rem;--sdc-seat-list-font-size-lg: 1.125rem;--sdc-seat-list-font-size-xl: 1.25rem;--card-bg: var(--sdc-seat-list-card-bg);--text-primary: var(--sdc-seat-list-text-primary);--text-secondary: var(--sdc-seat-list-text-secondary);--text-dark: var(--sdc-seat-list-text-dark);--accent-orange: var(--sdc-seat-list-accent-orange);--accent-green: var(--sdc-seat-list-accent-green);--accent-blue: var(--sdc-seat-list-accent-blue);--accent-blue-hover: var(--sdc-seat-list-accent-blue-hover);--icon-bg: var(--sdc-seat-list-icon-bg);--spacing-xs: var(--sdc-seat-list-spacing-xs);--spacing-sm: var(--sdc-seat-list-spacing-sm);--spacing-md: var(--sdc-seat-list-spacing-md);--spacing-lg: var(--sdc-seat-list-spacing-lg);--spacing-xl: var(--sdc-seat-list-spacing-xl);--border-radius-sm: var(--sdc-seat-list-border-radius-sm);--border-radius-md: var(--sdc-seat-list-border-radius-md);--border-radius-lg: var(--sdc-seat-list-border-radius-lg);--border-radius-xl: var(--sdc-seat-list-border-radius-xl);--font-size-sm: var(--sdc-seat-list-font-size-sm);--font-size-base: var(--sdc-seat-list-font-size-base);--font-size-lg: var(--sdc-seat-list-font-size-lg);--font-size-xl: var(--sdc-seat-list-font-size-xl)}.seat-list{width:100%}.seat-list--simple{display:flex;flex-direction:column;gap:var(--spacing-sm)}.seat-list--simple .ticket{margin-bottom:var(--spacing-sm)}.seat-list--simple .ticket:last-child{margin-bottom:0}.seat-list--grouped{display:flex;flex-direction:column;gap:var(--spacing-sm)}.seat-group{border-radius:var(--border-radius-md);overflow:hidden;background-color:var(--card-bg);margin-bottom:var(--spacing-sm)}.seat-group:last-child{margin-bottom:0}.seat-group__header{width:100%;background-color:var(--sdc-seat-list-group-header-bg, transparent);border:none;padding:var(--spacing-md) var(--spacing-lg);display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background-color .2s ease}.seat-group__header-content{display:flex;align-items:center;gap:var(--spacing-sm)}.seat-group__title{font-size:var(--font-size-base);font-weight:600;color:var(--text-dark)}.seat-group__count{font-size:var(--font-size-sm);color:var(--text-secondary)}.seat-group__chevron{width:16px;height:16px;color:var(--text-secondary);transition:transform .3s ease;flex-shrink:0;display:inline-block}.seat-group__content{max-height:0;overflow:hidden;padding:0 var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-sm);transition:max-height .2s ease-out,padding .2s ease-out}.seat-group__content.expanded{max-height:5000px;padding:var(--spacing-md);opacity:1;transition:max-height .2s ease-in,padding .2s ease-in}.seat-group__content .ticket{margin-bottom:0}.ticket{display:flex;align-items:center;padding:var(--spacing-md);background-color:var(--sdc-seat-list-ticket-bg, #f9fafb);border-radius:var(--border-radius-md);transition:all .2s ease}.ticket:hover{background-color:var(--sdc-seat-list-ticket-bg-hover, #f3f4f6);transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.ticket__indicator{width:8px;height:8px;border-radius:50%;margin-right:var(--spacing-md);flex-shrink:0}.ticket__info{flex:1;display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-sm);color:var(--text-secondary);font-size:var(--font-size-sm)}.ticket__section{font-weight:600;color:var(--text-dark)}.ticket__price{color:var(--accent-blue);font-weight:600;font-size:var(--font-size-base);margin:0 var(--spacing-md)}.ticket__actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--spacing-sm)}.ticket__actions-left{display:flex;align-items:center;gap:var(--spacing-sm)}.ticket__icon-box{display:flex;align-items:center;justify-content:center;background-color:var(--icon-bg);border-radius:var(--border-radius-lg);padding:var(--spacing-xs)}.ticket__icon-box .ticket__icon{width:16px;height:16px;color:var(--accent-blue);cursor:pointer;transition:color .2s ease}.ticket__icon-box .ticket__icon:hover{color:var(--accent-blue-hover)}.ticket__action-btn{background-color:var(--accent-blue);color:var(--text-primary);border:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-lg);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all .2s ease}.ticket__action-btn:hover{background-color:var(--accent-blue-hover);transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}@media(max-width:640px){.ticket{padding:var(--spacing-sm)}.ticket__info{font-size:.75rem;gap:var(--spacing-xs)}.ticket__price{font-size:var(--font-size-sm);margin:0 var(--spacing-sm)}.seat-group__header{padding:var(--spacing-sm) var(--spacing-md)}.seat-group__content{padding:var(--spacing-sm)}}\n"], dependencies: [{ kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }], encapsulation: i0.ViewEncapsulation.None });
48
+ }
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: SeatListComponent, decorators: [{
50
+ type: Component,
51
+ args: [{ imports: [NgIcon], providers: [provideIcons({ lucideMapPin, lucideEye, lucideChevronDown, lucideChevronUp })], selector: 'sdc-seat-list', standalone: true, encapsulation: ViewEncapsulation.None, template: "<div class=\"sdc-seat-list\">\n @if (isGroupedMode()) {\n <div class=\"seat-list seat-list--grouped\">\n @for (group of groups(); track group.id) {\n <div class=\"seat-group\">\n <button class=\"seat-group__header\" (click)=\"toggleGroup(group)\">\n <div class=\"seat-group__header-content\">\n <span class=\"seat-group__title\">{{ group.title }}</span>\n <span class=\"seat-group__count\">{{ getGroupSeatCount(group) }}</span>\n </div>\n <ng-icon\n [name]=\"isGroupExpanded(group) ? 'lucideChevronUp' : 'lucideChevronDown'\"\n size=\"16\"\n class=\"seat-group__chevron\" />\n </button>\n <div class=\"seat-group__content\" [class.expanded]=\"isGroupExpanded(group)\">\n @for (item of group.seats; track item.id) {\n <div class=\"ticket\">\n <div class=\"ticket__indicator\" [style.background-color]=\"getGroupIndicatorColor(group)\"></div>\n <div class=\"ticket__info\">\n <span\n >Section <span class=\"ticket__section\">{{ item.section }}</span></span\n >\n <span\n >Row <span class=\"ticket__section\">{{ item.row }}</span></span\n >\n <span\n >Seat <span class=\"ticket__section\">{{ item.seat }}</span></span\n >\n </div>\n <div class=\"ticket__actions\">\n <div class=\"ticket__actions-left\">\n <div class=\"ticket__price\">${{ item.price }}</div>\n <div class=\"ticket__icon-box\">\n <ng-icon hlm name=\"lucideMapPin\" size=\"base\" class=\"ticket__icon\" (click)=\"onMapPinClick(item)\" />\n </div>\n <div class=\"ticket__icon-box\">\n <ng-icon hlm name=\"lucideEye\" size=\"base\" class=\"ticket__icon\" (click)=\"onEyeClick(item)\" />\n </div>\n </div>\n <button class=\"ticket__action-btn\" (click)=\"onRemoveClick(item)\">\n {{ getGroupActionButtonText(group) }}\n </button>\n </div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"seat-list seat-list--simple\">\n @for (item of seats(); track item.id) {\n <div class=\"ticket\">\n <div class=\"ticket__indicator\" [style.background-color]=\"indicatorColor()\"></div>\n <div class=\"ticket__info\">\n <span\n >Section <span class=\"ticket__section\">{{ item.section }}</span></span\n >\n <span\n >Row <span class=\"ticket__section\">{{ item.row }}</span></span\n >\n <span\n >Seat <span class=\"ticket__section\">{{ item.seat }}</span></span\n >\n </div>\n <div class=\"ticket__actions\">\n <div class=\"ticket__actions-left\">\n <div class=\"ticket__price\">${{ item.price }}</div>\n <div class=\"ticket__icon-box\">\n <ng-icon hlm name=\"lucideMapPin\" size=\"base\" class=\"ticket__icon\" (click)=\"onMapPinClick(item)\" />\n </div>\n <div class=\"ticket__icon-box\">\n <ng-icon hlm name=\"lucideEye\" size=\"base\" class=\"ticket__icon\" (click)=\"onEyeClick(item)\" />\n </div>\n </div>\n <button class=\"ticket__action-btn\" (click)=\"onActionClick(item)\">\n {{ actionButtonText() }}\n </button>\n </div>\n </div>\n }\n </div>\n }\n</div>\n", styles: [".sdc-seat-list{--sdc-seat-list-primary-bg: #2a2d3a;--sdc-seat-list-card-bg: #ffffff;--sdc-seat-list-text-primary: #ffffff;--sdc-seat-list-text-secondary: #6b7280;--sdc-seat-list-text-dark: #1f2937;--sdc-seat-list-accent-orange: #f97316;--sdc-seat-list-accent-green: #10b981;--sdc-seat-list-accent-blue: #2563eb;--sdc-seat-list-accent-blue-hover: #1d4ed8;--sdc-seat-list-border-color: #e5e7eb;--sdc-seat-list-icon-bg: #f5f5f5;--sdc-seat-list-ticket-bg: #f9fafb;--sdc-seat-list-ticket-bg-hover: #f3f4f6;--sdc-seat-list-group-header-bg: #e4eaef;--sdc-seat-list-group-header-hover: #f9fafb;--sdc-seat-list-spacing-xs: .25rem;--sdc-seat-list-spacing-sm: .5rem;--sdc-seat-list-spacing-md: 1rem;--sdc-seat-list-spacing-lg: 1.5rem;--sdc-seat-list-spacing-xl: 2rem;--sdc-seat-list-border-radius-sm: .375rem;--sdc-seat-list-border-radius-md: .5rem;--sdc-seat-list-border-radius-lg: .75rem;--sdc-seat-list-border-radius-xl: 1.5rem;--sdc-seat-list-font-size-sm: .875rem;--sdc-seat-list-font-size-base: 1rem;--sdc-seat-list-font-size-lg: 1.125rem;--sdc-seat-list-font-size-xl: 1.25rem;--card-bg: var(--sdc-seat-list-card-bg);--text-primary: var(--sdc-seat-list-text-primary);--text-secondary: var(--sdc-seat-list-text-secondary);--text-dark: var(--sdc-seat-list-text-dark);--accent-orange: var(--sdc-seat-list-accent-orange);--accent-green: var(--sdc-seat-list-accent-green);--accent-blue: var(--sdc-seat-list-accent-blue);--accent-blue-hover: var(--sdc-seat-list-accent-blue-hover);--icon-bg: var(--sdc-seat-list-icon-bg);--spacing-xs: var(--sdc-seat-list-spacing-xs);--spacing-sm: var(--sdc-seat-list-spacing-sm);--spacing-md: var(--sdc-seat-list-spacing-md);--spacing-lg: var(--sdc-seat-list-spacing-lg);--spacing-xl: var(--sdc-seat-list-spacing-xl);--border-radius-sm: var(--sdc-seat-list-border-radius-sm);--border-radius-md: var(--sdc-seat-list-border-radius-md);--border-radius-lg: var(--sdc-seat-list-border-radius-lg);--border-radius-xl: var(--sdc-seat-list-border-radius-xl);--font-size-sm: var(--sdc-seat-list-font-size-sm);--font-size-base: var(--sdc-seat-list-font-size-base);--font-size-lg: var(--sdc-seat-list-font-size-lg);--font-size-xl: var(--sdc-seat-list-font-size-xl)}.seat-list{width:100%}.seat-list--simple{display:flex;flex-direction:column;gap:var(--spacing-sm)}.seat-list--simple .ticket{margin-bottom:var(--spacing-sm)}.seat-list--simple .ticket:last-child{margin-bottom:0}.seat-list--grouped{display:flex;flex-direction:column;gap:var(--spacing-sm)}.seat-group{border-radius:var(--border-radius-md);overflow:hidden;background-color:var(--card-bg);margin-bottom:var(--spacing-sm)}.seat-group:last-child{margin-bottom:0}.seat-group__header{width:100%;background-color:var(--sdc-seat-list-group-header-bg, transparent);border:none;padding:var(--spacing-md) var(--spacing-lg);display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background-color .2s ease}.seat-group__header-content{display:flex;align-items:center;gap:var(--spacing-sm)}.seat-group__title{font-size:var(--font-size-base);font-weight:600;color:var(--text-dark)}.seat-group__count{font-size:var(--font-size-sm);color:var(--text-secondary)}.seat-group__chevron{width:16px;height:16px;color:var(--text-secondary);transition:transform .3s ease;flex-shrink:0;display:inline-block}.seat-group__content{max-height:0;overflow:hidden;padding:0 var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-sm);transition:max-height .2s ease-out,padding .2s ease-out}.seat-group__content.expanded{max-height:5000px;padding:var(--spacing-md);opacity:1;transition:max-height .2s ease-in,padding .2s ease-in}.seat-group__content .ticket{margin-bottom:0}.ticket{display:flex;align-items:center;padding:var(--spacing-md);background-color:var(--sdc-seat-list-ticket-bg, #f9fafb);border-radius:var(--border-radius-md);transition:all .2s ease}.ticket:hover{background-color:var(--sdc-seat-list-ticket-bg-hover, #f3f4f6);transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.ticket__indicator{width:8px;height:8px;border-radius:50%;margin-right:var(--spacing-md);flex-shrink:0}.ticket__info{flex:1;display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-sm);color:var(--text-secondary);font-size:var(--font-size-sm)}.ticket__section{font-weight:600;color:var(--text-dark)}.ticket__price{color:var(--accent-blue);font-weight:600;font-size:var(--font-size-base);margin:0 var(--spacing-md)}.ticket__actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--spacing-sm)}.ticket__actions-left{display:flex;align-items:center;gap:var(--spacing-sm)}.ticket__icon-box{display:flex;align-items:center;justify-content:center;background-color:var(--icon-bg);border-radius:var(--border-radius-lg);padding:var(--spacing-xs)}.ticket__icon-box .ticket__icon{width:16px;height:16px;color:var(--accent-blue);cursor:pointer;transition:color .2s ease}.ticket__icon-box .ticket__icon:hover{color:var(--accent-blue-hover)}.ticket__action-btn{background-color:var(--accent-blue);color:var(--text-primary);border:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-lg);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all .2s ease}.ticket__action-btn:hover{background-color:var(--accent-blue-hover);transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}@media(max-width:640px){.ticket{padding:var(--spacing-sm)}.ticket__info{font-size:.75rem;gap:var(--spacing-xs)}.ticket__price{font-size:var(--font-size-sm);margin:0 var(--spacing-sm)}.seat-group__header{padding:var(--spacing-sm) var(--spacing-md)}.seat-group__content{padding:var(--spacing-sm)}}\n"] }]
52
+ }], propDecorators: { seats: [{ type: i0.Input, args: [{ isSignal: true, alias: "seats", required: false }] }], groups: [{ type: i0.Input, args: [{ isSignal: true, alias: "groups", required: false }] }], actionButtonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "actionButtonText", required: false }] }], indicatorColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "indicatorColor", required: false }] }], mapPinClick: [{ type: i0.Output, args: ["mapPinClick"] }], eyeClick: [{ type: i0.Output, args: ["eyeClick"] }], actionClick: [{ type: i0.Output, args: ["actionClick"] }], groupToggle: [{ type: i0.Output, args: ["groupToggle"] }], removeClick: [{ type: i0.Output, args: ["removeClick"] }] } });
53
+
54
+ class CartComponent {
55
+ headerTitle = input('Your Current Tickets', ...(ngDevMode ? [{ debugName: "headerTitle" }] : []));
56
+ selectAllText = input('Select All', ...(ngDevMode ? [{ debugName: "selectAllText" }] : []));
57
+ relocateButtonText = input('Relocate', ...(ngDevMode ? [{ debugName: "relocateButtonText" }] : []));
58
+ items = input([], ...(ngDevMode ? [{ debugName: "items" }] : []));
59
+ groups = input([], ...(ngDevMode ? [{ debugName: "groups" }] : []));
60
+ selectAll = output();
61
+ mapPinClick = output();
62
+ eyeClick = output();
63
+ relocateClick = output();
64
+ removeClick = output();
65
+ groupToggle = output();
66
+ onSelectAll() {
67
+ this.selectAll.emit();
68
+ }
69
+ onMapPinClick(item) {
70
+ this.mapPinClick.emit(item);
71
+ }
72
+ onEyeClick(item) {
73
+ this.eyeClick.emit(item);
74
+ }
75
+ onRelocateClick(item) {
76
+ this.relocateClick.emit(item);
77
+ }
78
+ onRemoveClick(item) {
79
+ this.removeClick.emit(item);
80
+ }
81
+ onGroupToggle(event) {
82
+ this.groupToggle.emit(event);
83
+ }
84
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: CartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
85
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: CartComponent, isStandalone: true, selector: "sdc-cart", inputs: { headerTitle: { classPropertyName: "headerTitle", publicName: "headerTitle", isSignal: true, isRequired: false, transformFunction: null }, selectAllText: { classPropertyName: "selectAllText", publicName: "selectAllText", isSignal: true, isRequired: false, transformFunction: null }, relocateButtonText: { classPropertyName: "relocateButtonText", publicName: "relocateButtonText", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, groups: { classPropertyName: "groups", publicName: "groups", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectAll: "selectAll", mapPinClick: "mapPinClick", eyeClick: "eyeClick", relocateClick: "relocateClick", removeClick: "removeClick", groupToggle: "groupToggle" }, ngImport: i0, template: "<div class=\"sdc-cart\">\n <div class=\"cart\">\n <div class=\"cart__container\">\n <div class=\"cart__header\">\n <h2 class=\"cart__header-title\">{{ headerTitle() }}</h2>\n <button class=\"cart__select-all\" (click)=\"onSelectAll()\">{{ selectAllText() }}</button>\n </div>\n\n <div class=\"cart__tickets\">\n @if (groups().length > 0) {\n <sdc-seat-list\n [groups]=\"groups()\"\n [actionButtonText]=\"relocateButtonText()\"\n (mapPinClick)=\"onMapPinClick($event)\"\n (eyeClick)=\"onEyeClick($event)\"\n (removeClick)=\"onRemoveClick($event)\"\n (groupToggle)=\"onGroupToggle($event)\">\n </sdc-seat-list>\n } @else {\n <sdc-seat-list\n [seats]=\"items()\"\n [actionButtonText]=\"relocateButtonText()\"\n (mapPinClick)=\"onMapPinClick($event)\"\n (eyeClick)=\"onEyeClick($event)\"\n (actionClick)=\"onRelocateClick($event)\">\n </sdc-seat-list>\n }\n </div>\n </div>\n </div>\n</div>\n", styles: [".sdc-cart{--primary-bg: #2a2d3a;--card-bg: #ffffff;--card-header-bg: #9ca3af;--text-primary: #ffffff;--text-secondary: #6b7280;--text-dark: #1f2937;--accent-orange: #f97316;--accent-blue: #2563eb;--accent-blue-hover: #1d4ed8;--border-color: #e5e7eb;--icon-bg: #f5f5f5;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--border-radius-sm: .375rem;--border-radius-md: .5rem;--border-radius-lg: 1rem;--border-radius-xl: 1.5rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem}.cart{max-width:500px;margin:0 auto}.cart__title{color:var(--text-primary);font-size:var(--font-size-2xl);font-weight:700;margin-bottom:var(--spacing-lg);text-align:left}.cart__container{background-color:var(--card-bg);border-radius:var(--border-radius-xl);overflow:hidden;box-shadow:0 10px 25px #0000001a}.cart__header{background-color:var(--card-header-bg);padding:var(--spacing-md) var(--spacing-lg);display:flex;justify-content:space-between;align-items:center}.cart__header-title{color:var(--text-primary);font-size:var(--font-size-lg);font-weight:600}.cart__select-all{background-color:var(--text-primary);color:var(--text-secondary);border:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-lg);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .2s ease}.cart__select-all:hover{background-color:#f3f4f6;transform:translateY(-1px)}.cart__tickets{padding:var(--spacing-md)}@media(max-width:640px){body{padding:var(--spacing-md)}.cart__title{font-size:var(--font-size-xl)}}\n"], dependencies: [{ kind: "component", type: SeatListComponent, selector: "sdc-seat-list", inputs: ["seats", "groups", "actionButtonText", "indicatorColor"], outputs: ["mapPinClick", "eyeClick", "actionClick", "groupToggle", "removeClick"] }] });
86
+ }
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: CartComponent, decorators: [{
88
+ type: Component,
89
+ args: [{ imports: [SeatListComponent], selector: 'sdc-cart', standalone: true, template: "<div class=\"sdc-cart\">\n <div class=\"cart\">\n <div class=\"cart__container\">\n <div class=\"cart__header\">\n <h2 class=\"cart__header-title\">{{ headerTitle() }}</h2>\n <button class=\"cart__select-all\" (click)=\"onSelectAll()\">{{ selectAllText() }}</button>\n </div>\n\n <div class=\"cart__tickets\">\n @if (groups().length > 0) {\n <sdc-seat-list\n [groups]=\"groups()\"\n [actionButtonText]=\"relocateButtonText()\"\n (mapPinClick)=\"onMapPinClick($event)\"\n (eyeClick)=\"onEyeClick($event)\"\n (removeClick)=\"onRemoveClick($event)\"\n (groupToggle)=\"onGroupToggle($event)\">\n </sdc-seat-list>\n } @else {\n <sdc-seat-list\n [seats]=\"items()\"\n [actionButtonText]=\"relocateButtonText()\"\n (mapPinClick)=\"onMapPinClick($event)\"\n (eyeClick)=\"onEyeClick($event)\"\n (actionClick)=\"onRelocateClick($event)\">\n </sdc-seat-list>\n }\n </div>\n </div>\n </div>\n</div>\n", styles: [".sdc-cart{--primary-bg: #2a2d3a;--card-bg: #ffffff;--card-header-bg: #9ca3af;--text-primary: #ffffff;--text-secondary: #6b7280;--text-dark: #1f2937;--accent-orange: #f97316;--accent-blue: #2563eb;--accent-blue-hover: #1d4ed8;--border-color: #e5e7eb;--icon-bg: #f5f5f5;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--border-radius-sm: .375rem;--border-radius-md: .5rem;--border-radius-lg: 1rem;--border-radius-xl: 1.5rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem}.cart{max-width:500px;margin:0 auto}.cart__title{color:var(--text-primary);font-size:var(--font-size-2xl);font-weight:700;margin-bottom:var(--spacing-lg);text-align:left}.cart__container{background-color:var(--card-bg);border-radius:var(--border-radius-xl);overflow:hidden;box-shadow:0 10px 25px #0000001a}.cart__header{background-color:var(--card-header-bg);padding:var(--spacing-md) var(--spacing-lg);display:flex;justify-content:space-between;align-items:center}.cart__header-title{color:var(--text-primary);font-size:var(--font-size-lg);font-weight:600}.cart__select-all{background-color:var(--text-primary);color:var(--text-secondary);border:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-lg);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .2s ease}.cart__select-all:hover{background-color:#f3f4f6;transform:translateY(-1px)}.cart__tickets{padding:var(--spacing-md)}@media(max-width:640px){body{padding:var(--spacing-md)}.cart__title{font-size:var(--font-size-xl)}}\n"] }]
90
+ }], propDecorators: { headerTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerTitle", required: false }] }], selectAllText: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectAllText", required: false }] }], relocateButtonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "relocateButtonText", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], groups: [{ type: i0.Input, args: [{ isSignal: true, alias: "groups", required: false }] }], selectAll: [{ type: i0.Output, args: ["selectAll"] }], mapPinClick: [{ type: i0.Output, args: ["mapPinClick"] }], eyeClick: [{ type: i0.Output, args: ["eyeClick"] }], relocateClick: [{ type: i0.Output, args: ["relocateClick"] }], removeClick: [{ type: i0.Output, args: ["removeClick"] }], groupToggle: [{ type: i0.Output, args: ["groupToggle"] }] } });
91
+
92
+ /*
93
+ * Public API Surface of software-division-components
94
+ */
95
+
96
+ /**
97
+ * Generated bundle index. Do not edit.
98
+ */
99
+
100
+ export { CartComponent, SeatListComponent };
101
+ //# sourceMappingURL=3ddv-software-division-components-dvm-cart.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3ddv-software-division-components-dvm-cart.mjs","sources":["../../dvm/cart/seat-list.component.ts","../../dvm/cart/seat-list.component.html","../../dvm/cart/cart.component.ts","../../dvm/cart/cart.component.html","../../dvm/cart/public-api.ts","../../dvm/cart/3ddv-software-division-components-dvm-cart.ts"],"sourcesContent":["import { Component, input, output, computed, ViewEncapsulation } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideMapPin, lucideEye, lucideChevronDown, lucideChevronUp } from '@ng-icons/lucide';\nimport { CartItem } from './cart.types';\n\nexport interface SeatGroup {\n id: string | number;\n title: string;\n count?: string;\n seats: CartItem[];\n expanded?: boolean;\n indicatorColor?: string;\n actionButtonText?: string;\n}\n\n@Component({\n imports: [NgIcon],\n providers: [provideIcons({ lucideMapPin, lucideEye, lucideChevronDown, lucideChevronUp })],\n selector: 'sdc-seat-list',\n standalone: true,\n templateUrl: './seat-list.component.html',\n styleUrls: ['./seat-list.component.css'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SeatListComponent {\n seats = input<CartItem[]>([]);\n groups = input<SeatGroup[]>([]);\n actionButtonText = input<string>('Relocate');\n indicatorColor = input<string>('#f97316');\n\n mapPinClick = output<CartItem>();\n eyeClick = output<CartItem>();\n actionClick = output<CartItem>();\n groupToggle = output<{ groupId: string | number; expanded: boolean }>();\n removeClick = output<CartItem>();\n\n isGroupedMode = computed(() => this.groups().length > 0);\n\n onMapPinClick(item: CartItem): void {\n this.mapPinClick.emit(item);\n }\n\n onEyeClick(item: CartItem): void {\n this.eyeClick.emit(item);\n }\n\n onActionClick(item: CartItem): void {\n this.actionClick.emit(item);\n }\n\n onRemoveClick(item: CartItem): void {\n this.removeClick.emit(item);\n }\n\n isGroupExpanded(group: SeatGroup): boolean {\n return group.expanded !== false;\n }\n\n toggleGroup(group: SeatGroup): void {\n const expanded = !this.isGroupExpanded(group);\n group.expanded = expanded;\n this.groupToggle.emit({ groupId: group.id, expanded });\n }\n\n getGroupIndicatorColor(group: SeatGroup): string {\n return group.indicatorColor || this.indicatorColor();\n }\n\n getGroupActionButtonText(group: SeatGroup): string {\n return group.actionButtonText || this.actionButtonText();\n }\n\n getGroupSeatCount(group: SeatGroup): string {\n return `(${group.seats.length})`;\n }\n}\n","<div class=\"sdc-seat-list\">\n @if (isGroupedMode()) {\n <div class=\"seat-list seat-list--grouped\">\n @for (group of groups(); track group.id) {\n <div class=\"seat-group\">\n <button class=\"seat-group__header\" (click)=\"toggleGroup(group)\">\n <div class=\"seat-group__header-content\">\n <span class=\"seat-group__title\">{{ group.title }}</span>\n <span class=\"seat-group__count\">{{ getGroupSeatCount(group) }}</span>\n </div>\n <ng-icon\n [name]=\"isGroupExpanded(group) ? 'lucideChevronUp' : 'lucideChevronDown'\"\n size=\"16\"\n class=\"seat-group__chevron\" />\n </button>\n <div class=\"seat-group__content\" [class.expanded]=\"isGroupExpanded(group)\">\n @for (item of group.seats; track item.id) {\n <div class=\"ticket\">\n <div class=\"ticket__indicator\" [style.background-color]=\"getGroupIndicatorColor(group)\"></div>\n <div class=\"ticket__info\">\n <span\n >Section <span class=\"ticket__section\">{{ item.section }}</span></span\n >\n <span\n >Row <span class=\"ticket__section\">{{ item.row }}</span></span\n >\n <span\n >Seat <span class=\"ticket__section\">{{ item.seat }}</span></span\n >\n </div>\n <div class=\"ticket__actions\">\n <div class=\"ticket__actions-left\">\n <div class=\"ticket__price\">${{ item.price }}</div>\n <div class=\"ticket__icon-box\">\n <ng-icon hlm name=\"lucideMapPin\" size=\"base\" class=\"ticket__icon\" (click)=\"onMapPinClick(item)\" />\n </div>\n <div class=\"ticket__icon-box\">\n <ng-icon hlm name=\"lucideEye\" size=\"base\" class=\"ticket__icon\" (click)=\"onEyeClick(item)\" />\n </div>\n </div>\n <button class=\"ticket__action-btn\" (click)=\"onRemoveClick(item)\">\n {{ getGroupActionButtonText(group) }}\n </button>\n </div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n } @else {\n <div class=\"seat-list seat-list--simple\">\n @for (item of seats(); track item.id) {\n <div class=\"ticket\">\n <div class=\"ticket__indicator\" [style.background-color]=\"indicatorColor()\"></div>\n <div class=\"ticket__info\">\n <span\n >Section <span class=\"ticket__section\">{{ item.section }}</span></span\n >\n <span\n >Row <span class=\"ticket__section\">{{ item.row }}</span></span\n >\n <span\n >Seat <span class=\"ticket__section\">{{ item.seat }}</span></span\n >\n </div>\n <div class=\"ticket__actions\">\n <div class=\"ticket__actions-left\">\n <div class=\"ticket__price\">${{ item.price }}</div>\n <div class=\"ticket__icon-box\">\n <ng-icon hlm name=\"lucideMapPin\" size=\"base\" class=\"ticket__icon\" (click)=\"onMapPinClick(item)\" />\n </div>\n <div class=\"ticket__icon-box\">\n <ng-icon hlm name=\"lucideEye\" size=\"base\" class=\"ticket__icon\" (click)=\"onEyeClick(item)\" />\n </div>\n </div>\n <button class=\"ticket__action-btn\" (click)=\"onActionClick(item)\">\n {{ actionButtonText() }}\n </button>\n </div>\n </div>\n }\n </div>\n }\n</div>\n","import { Component, input, output } from '@angular/core';\nimport { SeatListComponent, SeatGroup } from './seat-list.component';\nimport { CartItem } from './cart.types';\n\n@Component({\n imports: [SeatListComponent],\n selector: 'sdc-cart',\n standalone: true,\n templateUrl: './cart.component.html',\n styleUrls: ['./cart.component.css'],\n})\nexport class CartComponent {\n headerTitle = input<string>('Your Current Tickets');\n selectAllText = input<string>('Select All');\n relocateButtonText = input<string>('Relocate');\n items = input<CartItem[]>([]);\n groups = input<SeatGroup[]>([]);\n\n selectAll = output<void>();\n mapPinClick = output<CartItem>();\n eyeClick = output<CartItem>();\n relocateClick = output<CartItem>();\n removeClick = output<CartItem>();\n groupToggle = output<{ groupId: string | number; expanded: boolean }>();\n\n onSelectAll(): void {\n this.selectAll.emit();\n }\n\n onMapPinClick(item: CartItem): void {\n this.mapPinClick.emit(item);\n }\n\n onEyeClick(item: CartItem): void {\n this.eyeClick.emit(item);\n }\n\n onRelocateClick(item: CartItem): void {\n this.relocateClick.emit(item);\n }\n\n onRemoveClick(item: CartItem): void {\n this.removeClick.emit(item);\n }\n\n onGroupToggle(event: { groupId: string | number; expanded: boolean }): void {\n this.groupToggle.emit(event);\n }\n}\n","<div class=\"sdc-cart\">\n <div class=\"cart\">\n <div class=\"cart__container\">\n <div class=\"cart__header\">\n <h2 class=\"cart__header-title\">{{ headerTitle() }}</h2>\n <button class=\"cart__select-all\" (click)=\"onSelectAll()\">{{ selectAllText() }}</button>\n </div>\n\n <div class=\"cart__tickets\">\n @if (groups().length > 0) {\n <sdc-seat-list\n [groups]=\"groups()\"\n [actionButtonText]=\"relocateButtonText()\"\n (mapPinClick)=\"onMapPinClick($event)\"\n (eyeClick)=\"onEyeClick($event)\"\n (removeClick)=\"onRemoveClick($event)\"\n (groupToggle)=\"onGroupToggle($event)\">\n </sdc-seat-list>\n } @else {\n <sdc-seat-list\n [seats]=\"items()\"\n [actionButtonText]=\"relocateButtonText()\"\n (mapPinClick)=\"onMapPinClick($event)\"\n (eyeClick)=\"onEyeClick($event)\"\n (actionClick)=\"onRelocateClick($event)\">\n </sdc-seat-list>\n }\n </div>\n </div>\n </div>\n</div>\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './cart.component';\nexport * from './seat-list.component';\nexport * from './cart.types';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import { SIZE_ORDER } from '@3ddv/software-division-components/shared';
2
+ import * as i0 from '@angular/core';
3
+ import { input, computed, ChangeDetectionStrategy, Component } from '@angular/core';
4
+ import { CommonModule } from '@angular/common';
5
+
6
+ class LegendElementsComponent {
7
+ size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : []));
8
+ elements = input.required(...(ngDevMode ? [{ debugName: "elements" }] : []));
9
+ className = input('', ...(ngDevMode ? [{ debugName: "className" }] : []));
10
+ supportedSizes = ['xs', 'sm', 'md', 'lg'];
11
+ normalizeSize = (s) => {
12
+ const wantedIdx = SIZE_ORDER.indexOf(s);
13
+ if (wantedIdx === -1)
14
+ return 'md';
15
+ for (let i = wantedIdx; i >= 0; i--) {
16
+ const cand = SIZE_ORDER[i];
17
+ if (this.supportedSizes.includes(cand))
18
+ return cand;
19
+ }
20
+ return 'md';
21
+ };
22
+ _effectiveSize = computed(() => this.normalizeSize(this.size()), ...(ngDevMode ? [{ debugName: "_effectiveSize" }] : []));
23
+ computedClass = computed(() => {
24
+ const sz = this._effectiveSize();
25
+ return ['sdc-legend-elements', `size-${sz}`, this.className()].filter(Boolean).join(' ');
26
+ }, ...(ngDevMode ? [{ debugName: "computedClass" }] : []));
27
+ itemClasses = computed(() => this._effectiveSize() === 'lg' ? 'justify-center' : 'justify-start', ...(ngDevMode ? [{ debugName: "itemClasses" }] : []));
28
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: LegendElementsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: LegendElementsComponent, isStandalone: true, selector: "sdc-legend-elements", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, elements: { classPropertyName: "elements", publicName: "elements", isSignal: true, isRequired: true, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div [class]=\"computedClass()\">\n @for (element of elements(); track element.name) {\n <div class=\"sdc-legend-elements__item\">\n <span class=\"sdc-legend-elements__dot\" [style.backgroundColor]=\"element.color\"></span>\n <p class=\"sdc-legend-elements__label\">{{ element.name }}</p>\n </div>\n }\n</div>\n", styles: [".sdc-legend-elements{--slec-gap-x: 0;--slec-gap-y: var(--space-6);display:grid;grid-auto-flow:row;row-gap:var(--slec-gap-y);column-gap:var(--slec-gap-x)}.sdc-legend-elements.size-xs{--slec-gap-y: var(--space-2)}.sdc-legend-elements.size-sm{--slec-gap-y: var(--space-4)}.sdc-legend-elements.size-md{--slec-gap-y: var(--space-6)}.sdc-legend-elements.size-lg{--slec-gap-y: var(--space-6);--slec-gap-x: var(--space-8)}.sdc-legend-elements__item{display:flex;align-items:center;justify-content:flex-start}.sdc-legend-elements.size-lg .sdc-legend-elements__item{justify-content:center}.sdc-legend-elements__dot{margin-right:var(--space-1_5);border-radius:9999px;width:var(--space-3);height:var(--space-3);flex-shrink:0;outline:.1px solid gray}.sdc-legend-elements__label{white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: LegendElementsComponent, decorators: [{
32
+ type: Component,
33
+ args: [{ selector: 'sdc-legend-elements', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class]=\"computedClass()\">\n @for (element of elements(); track element.name) {\n <div class=\"sdc-legend-elements__item\">\n <span class=\"sdc-legend-elements__dot\" [style.backgroundColor]=\"element.color\"></span>\n <p class=\"sdc-legend-elements__label\">{{ element.name }}</p>\n </div>\n }\n</div>\n", styles: [".sdc-legend-elements{--slec-gap-x: 0;--slec-gap-y: var(--space-6);display:grid;grid-auto-flow:row;row-gap:var(--slec-gap-y);column-gap:var(--slec-gap-x)}.sdc-legend-elements.size-xs{--slec-gap-y: var(--space-2)}.sdc-legend-elements.size-sm{--slec-gap-y: var(--space-4)}.sdc-legend-elements.size-md{--slec-gap-y: var(--space-6)}.sdc-legend-elements.size-lg{--slec-gap-y: var(--space-6);--slec-gap-x: var(--space-8)}.sdc-legend-elements__item{display:flex;align-items:center;justify-content:flex-start}.sdc-legend-elements.size-lg .sdc-legend-elements__item{justify-content:center}.sdc-legend-elements__dot{margin-right:var(--space-1_5);border-radius:9999px;width:var(--space-3);height:var(--space-3);flex-shrink:0;outline:.1px solid gray}.sdc-legend-elements__label{white-space:nowrap}\n"] }]
34
+ }], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], elements: [{ type: i0.Input, args: [{ isSignal: true, alias: "elements", required: true }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }] } });
35
+
36
+ class LegendComponent {
37
+ title = input('', ...(ngDevMode ? [{ debugName: "title" }] : []));
38
+ size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : []));
39
+ elements = input.required(...(ngDevMode ? [{ debugName: "elements" }] : []));
40
+ className = input('', ...(ngDevMode ? [{ debugName: "className" }] : []));
41
+ supportedSizes = ['xxs', 'xs', 'sm', 'md', 'lg'];
42
+ /** Normalize any Size → LegendSize by flooring to nearest supported size. */
43
+ normalizeSize = (s) => {
44
+ const wantedIdx = SIZE_ORDER.indexOf(s);
45
+ if (wantedIdx === -1)
46
+ return 'md';
47
+ for (let i = wantedIdx; i >= 0; i--) {
48
+ const candidate = SIZE_ORDER[i];
49
+ if (this.supportedSizes.includes(candidate)) {
50
+ return candidate;
51
+ }
52
+ }
53
+ return 'md';
54
+ };
55
+ _effectiveSize = computed(() => this.normalizeSize(this.size()), ...(ngDevMode ? [{ debugName: "_effectiveSize" }] : []));
56
+ computedClass = computed(() => {
57
+ const normalizedSize = this._effectiveSize();
58
+ return ['sdc-legend', `size-${normalizedSize}`, this.className()].filter(Boolean).join(' ');
59
+ }, ...(ngDevMode ? [{ debugName: "computedClass" }] : []));
60
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: LegendComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
61
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: LegendComponent, isStandalone: true, selector: "sdc-legend", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, elements: { classPropertyName: "elements", publicName: "elements", isSignal: true, isRequired: true, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<fieldset [class]=\"computedClass()\">\n @if (title()) {\n <h1 class=\"sdc-legend__title\">\n {{ title() }}\n </h1>\n }\n <sdc-legend-elements [elements]=\"elements()\" [size]=\"size()\" />\n</fieldset>\n", styles: [".sdc-legend{--sdc-legend-gap-y: var(--space-4);--sdc-legend-padding-x: var(--space-7);--sdc-legend-padding-y: var(--space-2);--sdc-legend-font-size: var(--text-xs);--sdc-legend-font-weight: var(--font-normal);display:flex;flex-direction:column;align-items:center;gap:var(--sdc-legend-gap-y);max-width:375px;padding:var(--sdc-legend-padding-y) var(--sdc-legend-padding-x);font-size:var(--sdc-legend-font-size);font-weight:var(--sdc-legend-font-weight)}.sdc-legend__title{font-weight:var(--font-semibold);font-size:var(--text-lg)}.sdc-legend.size-xxs,.sdc-legend.size-xs{--sdc-legend-padding-x: 0;--sdc-legend-padding-y: 0;--sdc-legend-font-size: var(--text-sm)}.sdc-legend.size-sm{--sdc-legend-padding-x: var(--space-4);--sdc-legend-padding-y: var(--space-1)}.sdc-legend.size-md{--sdc-legend-padding-x: var(--space-7);--sdc-legend-padding-y: var(--space-2)}.sdc-legend.size-lg{--sdc-legend-gap-y: var(--space-6);--sdc-legend-padding-x: var(--space-8);--sdc-legend-padding-y: var(--space-4);--sdc-legend-font-size: var(--text-md);--sdc-legend-font-weight: var(--font-semibold)}\n"], dependencies: [{ kind: "component", type: LegendElementsComponent, selector: "sdc-legend-elements", inputs: ["size", "elements", "className"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
62
+ }
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: LegendComponent, decorators: [{
64
+ type: Component,
65
+ args: [{ selector: 'sdc-legend', standalone: true, imports: [LegendElementsComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<fieldset [class]=\"computedClass()\">\n @if (title()) {\n <h1 class=\"sdc-legend__title\">\n {{ title() }}\n </h1>\n }\n <sdc-legend-elements [elements]=\"elements()\" [size]=\"size()\" />\n</fieldset>\n", styles: [".sdc-legend{--sdc-legend-gap-y: var(--space-4);--sdc-legend-padding-x: var(--space-7);--sdc-legend-padding-y: var(--space-2);--sdc-legend-font-size: var(--text-xs);--sdc-legend-font-weight: var(--font-normal);display:flex;flex-direction:column;align-items:center;gap:var(--sdc-legend-gap-y);max-width:375px;padding:var(--sdc-legend-padding-y) var(--sdc-legend-padding-x);font-size:var(--sdc-legend-font-size);font-weight:var(--sdc-legend-font-weight)}.sdc-legend__title{font-weight:var(--font-semibold);font-size:var(--text-lg)}.sdc-legend.size-xxs,.sdc-legend.size-xs{--sdc-legend-padding-x: 0;--sdc-legend-padding-y: 0;--sdc-legend-font-size: var(--text-sm)}.sdc-legend.size-sm{--sdc-legend-padding-x: var(--space-4);--sdc-legend-padding-y: var(--space-1)}.sdc-legend.size-md{--sdc-legend-padding-x: var(--space-7);--sdc-legend-padding-y: var(--space-2)}.sdc-legend.size-lg{--sdc-legend-gap-y: var(--space-6);--sdc-legend-padding-x: var(--space-8);--sdc-legend-padding-y: var(--space-4);--sdc-legend-font-size: var(--text-md);--sdc-legend-font-weight: var(--font-semibold)}\n"] }]
66
+ }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], elements: [{ type: i0.Input, args: [{ isSignal: true, alias: "elements", required: true }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }] } });
67
+
68
+ /*
69
+ * Public API Surface of software-division-components
70
+ */
71
+
72
+ /**
73
+ * Generated bundle index. Do not edit.
74
+ */
75
+
76
+ export { LegendComponent, LegendElementsComponent };
77
+ //# sourceMappingURL=3ddv-software-division-components-dvm-legend.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3ddv-software-division-components-dvm-legend.mjs","sources":["../../dvm/legend/ui/legend-elements/legend-elements.component.ts","../../dvm/legend/ui/legend-elements/legend-elements.component.html","../../dvm/legend/legend.component.ts","../../dvm/legend/legend.component.html","../../dvm/legend/public-api.ts","../../dvm/legend/3ddv-software-division-components-dvm-legend.ts"],"sourcesContent":["import { SIZE_ORDER, Size } from '@3ddv/software-division-components/shared';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { LegendElement, LegendSize } from '../../types';\n\n@Component({\n selector: 'sdc-legend-elements',\n standalone: true, // ← important if you use `imports`\n imports: [CommonModule],\n templateUrl: './legend-elements.component.html',\n styleUrls: ['./legend-elements.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LegendElementsComponent {\n public readonly size = input<Size>('md');\n public readonly elements = input.required<LegendElement[]>();\n public readonly className = input<string>('');\n\n private readonly supportedSizes: LegendSize[] = ['xs', 'sm', 'md', 'lg'];\n\n private normalizeSize = (s: Size): LegendSize => {\n const wantedIdx = SIZE_ORDER.indexOf(s);\n if (wantedIdx === -1) return 'md';\n for (let i = wantedIdx; i >= 0; i--) {\n const cand = SIZE_ORDER[i];\n if (this.supportedSizes.includes(cand as LegendSize)) return cand as LegendSize;\n }\n return 'md';\n };\n\n private readonly _effectiveSize = computed<LegendSize>(() => this.normalizeSize(this.size()));\n\n protected readonly computedClass = computed(() => {\n const sz = this._effectiveSize();\n return ['sdc-legend-elements', `size-${sz}`, this.className()].filter(Boolean).join(' ');\n });\n\n protected readonly itemClasses = computed(() =>\n this._effectiveSize() === 'lg' ? 'justify-center' : 'justify-start'\n );\n}\n","<div [class]=\"computedClass()\">\n @for (element of elements(); track element.name) {\n <div class=\"sdc-legend-elements__item\">\n <span class=\"sdc-legend-elements__dot\" [style.backgroundColor]=\"element.color\"></span>\n <p class=\"sdc-legend-elements__label\">{{ element.name }}</p>\n </div>\n }\n</div>\n","import { SIZE_ORDER, Size } from '@3ddv/software-division-components/shared';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { LegendElement, LegendSize } from './types';\nimport { LegendElementsComponent } from './ui/legend-elements/legend-elements.component';\n\n@Component({\n selector: 'sdc-legend',\n standalone: true,\n imports: [LegendElementsComponent],\n templateUrl: './legend.component.html',\n styleUrls: ['./legend.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LegendComponent {\n public readonly title = input('');\n public readonly size = input<Size>('md');\n public readonly elements = input.required<LegendElement[]>();\n public readonly className = input<string>('');\n\n private readonly supportedSizes: LegendSize[] = ['xxs', 'xs', 'sm', 'md', 'lg'];\n\n /** Normalize any Size → LegendSize by flooring to nearest supported size. */\n private normalizeSize = (s: Size): LegendSize => {\n const wantedIdx = SIZE_ORDER.indexOf(s);\n if (wantedIdx === -1) return 'md';\n for (let i = wantedIdx; i >= 0; i--) {\n const candidate = SIZE_ORDER[i];\n if (this.supportedSizes.includes(candidate as LegendSize)) {\n return candidate as LegendSize;\n }\n }\n return 'md';\n };\n\n private readonly _effectiveSize = computed<LegendSize>(() => this.normalizeSize(this.size()));\n\n protected readonly computedClass = computed(() => {\n const normalizedSize = this._effectiveSize();\n return ['sdc-legend', `size-${normalizedSize}`, this.className()].filter(Boolean).join(' ');\n });\n}\n","<fieldset [class]=\"computedClass()\">\n @if (title()) {\n <h1 class=\"sdc-legend__title\">\n {{ title() }}\n </h1>\n }\n <sdc-legend-elements [elements]=\"elements()\" [size]=\"size()\" />\n</fieldset>\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './legend.component';\nexport * from './types';\nexport * from './ui/legend-elements';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component, Injectable } from '@angular/core';
3
+
4
+ class LoaderComponent {
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: LoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.4", type: LoaderComponent, isStandalone: true, selector: "sdc-loader", ngImport: i0, template: "<div>loader component!</div>\n" });
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: LoaderComponent, decorators: [{
9
+ type: Component,
10
+ args: [{ selector: 'sdc-loader', standalone: true, template: "<div>loader component!</div>\n" }]
11
+ }] });
12
+
13
+ class LoaderService {
14
+ constructor() { }
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: LoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: LoaderService, providedIn: 'root' });
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: LoaderService, decorators: [{
19
+ type: Injectable,
20
+ args: [{
21
+ providedIn: 'root',
22
+ }]
23
+ }], ctorParameters: () => [] });
24
+
25
+ /*
26
+ * Public API Surface of software-division-components
27
+ */
28
+
29
+ /**
30
+ * Generated bundle index. Do not edit.
31
+ */
32
+
33
+ export { LoaderComponent, LoaderService };
34
+ //# sourceMappingURL=3ddv-software-division-components-dvm-loader.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3ddv-software-division-components-dvm-loader.mjs","sources":["../../dvm/loader/loader.component.ts","../../dvm/loader/loader.component.html","../../dvm/loader/loader.service.ts","../../dvm/loader/public-api.ts","../../dvm/loader/3ddv-software-division-components-dvm-loader.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'sdc-loader',\n standalone: true,\n templateUrl: './loader.component.html',\n})\nexport class LoaderComponent {}\n","<div>loader component!</div>\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoaderService {\n constructor() {}\n}\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './loader.component';\nexport * from './loader.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAOa,eAAe,CAAA;uGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,sECP5B,gCACA,EAAA,CAAA;;2FDMa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,cACV,IAAI,EAAA,QAAA,EAAA,gCAAA,EAAA;;;MECL,aAAa,CAAA;AACxB,IAAA,WAAA,GAAA,EAAe;uGADJ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAb,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA;;2FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACJD;;AAEG;;ACFH;;AAEG;;;;"}