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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) hide show
  1. package/fesm2022/3ddv-software-division-components-generic-carousel.mjs +354 -0
  2. package/fesm2022/3ddv-software-division-components-generic-carousel.mjs.map +1 -0
  3. package/package.json +47 -67
  4. package/styles.css +2 -46
  5. package/types/3ddv-software-division-components-generic-carousel.d.ts +53 -0
  6. package/.postcssrc.json +0 -5
  7. package/.storybook/main.ts +0 -78
  8. package/.storybook/manager-head.html +0 -1
  9. package/.storybook/preview.ts +0 -30
  10. package/.storybook/tsconfig.json +0 -25
  11. package/.storybook/typings.d.ts +0 -4
  12. package/CHANGELOG.md +0 -8
  13. package/LICENSE.md +0 -21
  14. package/backoffice/checkbox/checkbox.component.css +0 -193
  15. package/backoffice/checkbox/checkbox.component.html +0 -23
  16. package/backoffice/checkbox/checkbox.component.ts +0 -252
  17. package/backoffice/checkbox/index.ts +0 -1
  18. package/backoffice/checkbox/ng-package.json +0 -1
  19. package/backoffice/checkbox/public-api.ts +0 -1
  20. package/backoffice/checkbox/story/checkbox.stories.ts +0 -304
  21. package/backoffice/datepicker/datepicker.component.css +0 -262
  22. package/backoffice/datepicker/datepicker.component.html +0 -40
  23. package/backoffice/datepicker/datepicker.component.ts +0 -366
  24. package/backoffice/datepicker/index.ts +0 -1
  25. package/backoffice/datepicker/ng-package.json +0 -1
  26. package/backoffice/datepicker/public-api.ts +0 -2
  27. package/backoffice/datepicker/story/datepicker.stories.ts +0 -32
  28. package/backoffice/datepicker/ui/ui-calendar-helm/src/index.ts +0 -14
  29. package/backoffice/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar-multi.ts +0 -183
  30. package/backoffice/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar.ts +0 -171
  31. package/backoffice/datepicker/ui/ui-date-picker-helm/src/index.ts +0 -16
  32. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker-multi.token.ts +0 -43
  33. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker-multi.ts +0 -177
  34. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker.token.ts +0 -43
  35. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker.ts +0 -167
  36. package/backoffice/datepicker/ui/ui-icon-helm/src/index.ts +0 -11
  37. package/backoffice/datepicker/ui/ui-icon-helm/src/lib/hlm-icon.token.ts +0 -20
  38. package/backoffice/datepicker/ui/ui-icon-helm/src/lib/hlm-icon.ts +0 -35
  39. package/backoffice/datepicker/ui/ui-popover-helm/src/index.ts +0 -15
  40. package/backoffice/datepicker/ui/ui-popover-helm/src/lib/hlm-popover-close.ts +0 -19
  41. package/backoffice/datepicker/ui/ui-popover-helm/src/lib/hlm-popover-content.ts +0 -30
  42. package/backoffice/index.ts +0 -1
  43. package/backoffice/input/index.ts +0 -1
  44. package/backoffice/input/input.component.css +0 -319
  45. package/backoffice/input/input.component.html +0 -51
  46. package/backoffice/input/input.component.ts +0 -497
  47. package/backoffice/input/ng-package.json +0 -1
  48. package/backoffice/input/public-api.ts +0 -2
  49. package/backoffice/input/story/input.stories.ts +0 -243
  50. package/backoffice/radio/index.ts +0 -1
  51. package/backoffice/radio/ng-package.json +0 -1
  52. package/backoffice/radio/public-api.ts +0 -1
  53. package/backoffice/radio/radio.component.css +0 -143
  54. package/backoffice/radio/radio.component.html +0 -15
  55. package/backoffice/radio/radio.component.ts +0 -154
  56. package/backoffice/radio/story/radio.stories.ts +0 -287
  57. package/backoffice/table/_components/pagination/pagination.component.css +0 -117
  58. package/backoffice/table/_components/pagination/pagination.component.html +0 -55
  59. package/backoffice/table/_components/pagination/pagination.component.ts +0 -79
  60. package/backoffice/table/_components/selection-table-head/selection-table-head.component.css +0 -0
  61. package/backoffice/table/_components/selection-table-head/selection-table-head.component.html +0 -6
  62. package/backoffice/table/_components/selection-table-head/selection-table-head.component.ts +0 -36
  63. package/backoffice/table/_components/selection-table-row/selection-table-row.component.css +0 -0
  64. package/backoffice/table/_components/selection-table-row/selection-table-row.component.html +0 -5
  65. package/backoffice/table/_components/selection-table-row/selection-table-row.component.ts +0 -12
  66. package/backoffice/table/_components/sort-header-button/sort-header-button.component.css +0 -14
  67. package/backoffice/table/_components/sort-header-button/sort-header-button.component.html +0 -11
  68. package/backoffice/table/_components/sort-header-button/sort-header-button.component.ts +0 -55
  69. package/backoffice/table/index.ts +0 -1
  70. package/backoffice/table/ng-package.json +0 -1
  71. package/backoffice/table/public-api.ts +0 -6
  72. package/backoffice/table/story/table.stories.ts +0 -364
  73. package/backoffice/table/table.component.css +0 -172
  74. package/backoffice/table/table.component.html +0 -53
  75. package/backoffice/table/table.component.ts +0 -347
  76. package/backoffice/table/ui/ui-icon-helm/src/index.ts +0 -11
  77. package/backoffice/table/ui/ui-icon-helm/src/lib/hlm-icon.token.ts +0 -20
  78. package/backoffice/table/ui/ui-icon-helm/src/lib/hlm-icon.ts +0 -35
  79. package/backoffice/table/ui/ui-table-helm/src/index.ts +0 -13
  80. package/backoffice/table/ui/ui-table-helm/src/lib/hlm-table.ts +0 -220
  81. package/components.json +0 -3
  82. package/dist/styles.css +0 -2
  83. package/documentation.json +0 -30473
  84. package/dvm/cart/cart.component.css +0 -103
  85. package/dvm/cart/cart.component.html +0 -31
  86. package/dvm/cart/cart.component.ts +0 -49
  87. package/dvm/cart/cart.stories.ts +0 -370
  88. package/dvm/cart/cart.types.ts +0 -8
  89. package/dvm/cart/index.ts +0 -2
  90. package/dvm/cart/ng-package.json +0 -1
  91. package/dvm/cart/public-api.ts +0 -8
  92. package/dvm/cart/seat-list.component.css +0 -281
  93. package/dvm/cart/seat-list.component.html +0 -85
  94. package/dvm/cart/seat-list.component.ts +0 -76
  95. package/dvm/cart/seat-list.stories.ts +0 -337
  96. package/dvm/cart-item/cart-item.component.html +0 -1
  97. package/dvm/cart-item/cart-item.component.ts +0 -8
  98. package/dvm/cart-item/cart-item.service.ts +0 -8
  99. package/dvm/cart-item/cart.stories.ts +0 -31
  100. package/dvm/cart-item/index.ts +0 -1
  101. package/dvm/cart-item/ng-package.json +0 -1
  102. package/dvm/cart-item/public-api.ts +0 -6
  103. package/dvm/index.ts +0 -1
  104. package/dvm/legend/index.ts +0 -1
  105. package/dvm/legend/legend.component.css +0 -49
  106. package/dvm/legend/legend.component.html +0 -8
  107. package/dvm/legend/legend.component.ts +0 -41
  108. package/dvm/legend/legend.stories.ts +0 -16
  109. package/dvm/legend/ng-package.json +0 -1
  110. package/dvm/legend/public-api.ts +0 -7
  111. package/dvm/legend/types.ts +0 -6
  112. package/dvm/legend/ui/legend-elements/index.ts +0 -1
  113. package/dvm/legend/ui/legend-elements/legend-elements.component.css +0 -49
  114. package/dvm/legend/ui/legend-elements/legend-elements.component.html +0 -8
  115. package/dvm/legend/ui/legend-elements/legend-elements.component.ts +0 -41
  116. package/dvm/loader/index.ts +0 -1
  117. package/dvm/loader/loader.component.html +0 -1
  118. package/dvm/loader/loader.component.ts +0 -8
  119. package/dvm/loader/loader.service.ts +0 -8
  120. package/dvm/loader/loader.stories.ts +0 -31
  121. package/dvm/loader/ng-package.json +0 -1
  122. package/dvm/loader/public-api.ts +0 -6
  123. package/dvm/map-loader/index.ts +0 -1
  124. package/dvm/map-loader/map-loader.component.css +0 -91
  125. package/dvm/map-loader/map-loader.component.html +0 -23
  126. package/dvm/map-loader/map-loader.component.ts +0 -187
  127. package/dvm/map-loader/map-loader.stories.ts +0 -16
  128. package/dvm/map-loader/ng-package.json +0 -1
  129. package/dvm/map-loader/public-api.ts +0 -5
  130. package/dvm/neighbors/index.ts +0 -1
  131. package/dvm/neighbors/neighbors.component.css +0 -158
  132. package/dvm/neighbors/neighbors.component.html +0 -45
  133. package/dvm/neighbors/neighbors.component.ts +0 -218
  134. package/dvm/neighbors/ng-package.json +0 -1
  135. package/dvm/neighbors/public-api.ts +0 -2
  136. package/dvm/neighbors/story/arrow-left-black-icon.svg +0 -3
  137. package/dvm/neighbors/story/mock-data.ts +0 -15
  138. package/dvm/neighbors/story/neighbours.stories.css +0 -12
  139. package/dvm/neighbors/story/neighbours.stories.ts +0 -117
  140. package/dvm/neighbors/types.ts +0 -14
  141. package/dvm/popover/base-popover.component.ts +0 -70
  142. package/dvm/popover/index.ts +0 -1
  143. package/dvm/popover/ng-package.json +0 -1
  144. package/dvm/popover/popover.component.css +0 -227
  145. package/dvm/popover/popover.component.html +0 -27
  146. package/dvm/popover/popover.component.ts +0 -236
  147. package/dvm/popover/popover.config.ts +0 -30
  148. package/dvm/popover/popover.service.ts +0 -627
  149. package/dvm/popover/popover.stories.ts +0 -873
  150. package/dvm/popover/public-api.ts +0 -14
  151. package/dvm/popover/seat-popover/seat-popover.component.css +0 -89
  152. package/dvm/popover/seat-popover/seat-popover.component.html +0 -40
  153. package/dvm/popover/seat-popover/seat-popover.component.ts +0 -74
  154. package/dvm/popover/section-popover/section-popover.component.css +0 -157
  155. package/dvm/popover/section-popover/section-popover.component.html +0 -58
  156. package/dvm/popover/section-popover/section-popover.component.ts +0 -106
  157. package/dvm/popover/services/dvm-popover-positioner.service.ts +0 -73
  158. package/dvm/popover/services/popover-manager.service.ts +0 -88
  159. package/dvm/popover/transformers/base-popover-data-transformer.ts +0 -36
  160. package/dvm/popover/types.ts +0 -104
  161. package/dvm/stepper/index.ts +0 -1
  162. package/dvm/stepper/ng-package.json +0 -1
  163. package/dvm/stepper/public-api.ts +0 -5
  164. package/dvm/stepper/stepper.component.css +0 -142
  165. package/dvm/stepper/stepper.component.html +0 -9
  166. package/dvm/stepper/stepper.component.ts +0 -101
  167. package/dvm/stepper/types.ts +0 -6
  168. package/dvm/ticket-info-item/index.ts +0 -1
  169. package/dvm/ticket-info-item/ng-package.json +0 -1
  170. package/dvm/ticket-info-item/public-api.ts +0 -6
  171. package/dvm/ticket-info-item/ticket-info-item.component.html +0 -1
  172. package/dvm/ticket-info-item/ticket-info-item.component.ts +0 -8
  173. package/dvm/ticket-info-item/ticket-info-item.service.ts +0 -8
  174. package/dvm/ticket-info-item/ticket-info-item.stories.ts +0 -31
  175. package/generic/add-digital-wallet/add-digital-wallet.component.css +0 -76
  176. package/generic/add-digital-wallet/add-digital-wallet.component.html +0 -46
  177. package/generic/add-digital-wallet/add-digital-wallet.component.ts +0 -44
  178. package/generic/add-digital-wallet/index.ts +0 -1
  179. package/generic/add-digital-wallet/ng-package.json +0 -1
  180. package/generic/add-digital-wallet/public-api.ts +0 -1
  181. package/generic/braintree/braintree.component.css +0 -7
  182. package/generic/braintree/braintree.component.ts +0 -134
  183. package/generic/braintree/index.ts +0 -1
  184. package/generic/braintree/ng-package.json +0 -1
  185. package/generic/braintree/public-api.ts +0 -6
  186. package/generic/braintree/story/braintree.stories.css +0 -3
  187. package/generic/braintree/story/braintree.stories.ts +0 -27
  188. package/generic/braintree/types.ts +0 -28
  189. package/generic/button/button.component.css +0 -305
  190. package/generic/button/button.component.html +0 -10
  191. package/generic/button/button.component.ts +0 -353
  192. package/generic/button/index.ts +0 -1
  193. package/generic/button/ng-package.json +0 -1
  194. package/generic/button/public-api.ts +0 -6
  195. package/generic/button/story/button.stories.ts +0 -384
  196. package/generic/button/ui/ui-button-helm/src/index.ts +0 -10
  197. package/generic/button/ui/ui-button-helm/src/lib/hlm-button.token.ts +0 -22
  198. package/generic/button/ui/ui-button-helm/src/lib/hlm-button.ts +0 -62
  199. package/generic/carousel/carousel-item.component.ts +0 -15
  200. package/generic/carousel/carousel-item.directive.ts +0 -14
  201. package/generic/carousel/carousel.component.css +0 -90
  202. package/generic/carousel/carousel.component.html +0 -13
  203. package/generic/carousel/carousel.component.ts +0 -44
  204. package/generic/carousel/index.ts +0 -1
  205. package/generic/carousel/public-api.ts +0 -2
  206. package/generic/carousel/ui/ui-carousel-helm/src/index.ts +0 -29
  207. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-content.ts +0 -23
  208. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-item.ts +0 -25
  209. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-next.ts +0 -58
  210. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-previous.ts +0 -61
  211. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-slide-display.ts +0 -36
  212. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel.ts +0 -105
  213. package/generic/dialog/dialog.component.css +0 -5
  214. package/generic/dialog/dialog.component.html +0 -3
  215. package/generic/dialog/dialog.component.ts +0 -20
  216. package/generic/dialog/dialog.stories.ts +0 -14
  217. package/generic/dialog/index.ts +0 -1
  218. package/generic/dialog/libs/ui-dialog-helm/src/index.ts +0 -37
  219. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-close.ts +0 -20
  220. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-content.ts +0 -56
  221. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-description.ts +0 -17
  222. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-footer.ts +0 -19
  223. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-header.ts +0 -19
  224. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-overlay.ts +0 -23
  225. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-title.ts +0 -19
  226. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.service.ts +0 -59
  227. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.ts +0 -31
  228. package/generic/dialog/ng-package.json +0 -1
  229. package/generic/dialog/public-api.ts +0 -7
  230. package/generic/dialog/tsconfig.json +0 -7
  231. package/generic/dialog/ui/dialog-close-button/dialog-close-button.component.css +0 -0
  232. package/generic/dialog/ui/dialog-close-button/dialog-close-button.component.html +0 -1
  233. package/generic/dialog/ui/dialog-close-button/dialog-close-button.component.ts +0 -17
  234. package/generic/dialog/ui/dialog-footer/dialog-footer.component.css +0 -0
  235. package/generic/dialog/ui/dialog-footer/dialog-footer.component.html +0 -3
  236. package/generic/dialog/ui/dialog-footer/dialog-footer.component.ts +0 -11
  237. package/generic/dialog/ui/dialog-header/dialog-header.component.css +0 -0
  238. package/generic/dialog/ui/dialog-header/dialog-header.component.html +0 -8
  239. package/generic/dialog/ui/dialog-header/dialog-header.component.ts +0 -18
  240. package/generic/drawer/drawer.component.html +0 -1
  241. package/generic/drawer/drawer.component.ts +0 -8
  242. package/generic/drawer/drawer.service.ts +0 -8
  243. package/generic/drawer/drawer.stories.ts +0 -31
  244. package/generic/drawer/index.ts +0 -1
  245. package/generic/drawer/ng-package.json +0 -1
  246. package/generic/drawer/public-api.ts +0 -6
  247. package/generic/icon/icon.component.css +0 -7
  248. package/generic/icon/icon.component.html +0 -3
  249. package/generic/icon/icon.component.ts +0 -86
  250. package/generic/icon/icon.stories.ts +0 -16
  251. package/generic/icon/index.ts +0 -1
  252. package/generic/icon/lib/ui-icon-helm/src/index.ts +0 -11
  253. package/generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.token.ts +0 -20
  254. package/generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.ts +0 -36
  255. package/generic/icon/ng-package.json +0 -1
  256. package/generic/icon/public-api.ts +0 -6
  257. package/generic/icon/tsconfig.json +0 -7
  258. package/generic/index.ts +0 -1
  259. package/generic/select/index.ts +0 -1
  260. package/generic/select/lib/hlm-select-content.ts +0 -29
  261. package/generic/select/lib/hlm-select-group.ts +0 -17
  262. package/generic/select/lib/hlm-select-label.ts +0 -26
  263. package/generic/select/lib/hlm-select-option.ts +0 -37
  264. package/generic/select/lib/hlm-select-scroll-down.ts +0 -24
  265. package/generic/select/lib/hlm-select-scroll-up.ts +0 -23
  266. package/generic/select/lib/hlm-select-trigger.ts +0 -53
  267. package/generic/select/lib/hlm-select-value.ts +0 -17
  268. package/generic/select/lib/hlm-select.ts +0 -15
  269. package/generic/select/lib/index.ts +0 -38
  270. package/generic/select/ng-package.json +0 -1
  271. package/generic/select/public-api.ts +0 -3
  272. package/generic/select/select.component.css +0 -65
  273. package/generic/select/select.component.html +0 -19
  274. package/generic/select/select.component.ts +0 -25
  275. package/generic/select/types.ts +0 -4
  276. package/ng-package.json +0 -10
  277. package/public/3ddv-logo.jpg +0 -0
  278. package/public/neighbours-after.png +0 -0
  279. package/public/neighbours-before.png +0 -0
  280. package/shared/apply-theme-variables/apply-theme-variables.ts +0 -35
  281. package/shared/apply-theme-variables/index.ts +0 -1
  282. package/shared/format-value.pipe.ts +0 -23
  283. package/shared/index.ts +0 -1
  284. package/shared/lib-provider/config-token.ts +0 -4
  285. package/shared/lib-provider/index.ts +0 -1
  286. package/shared/lib-provider/provide-sdc.ts +0 -24
  287. package/shared/lib-provider/public-api.ts +0 -1
  288. package/shared/ng-package.json +0 -1
  289. package/shared/public-api.ts +0 -6
  290. package/shared/screen-observer/index.ts +0 -2
  291. package/shared/screen-observer/provide-screen-observer.ts +0 -17
  292. package/shared/screen-observer/screen-observer.ts +0 -56
  293. package/shared/screen-observer/sizable-base.ts +0 -70
  294. package/shared/theme-provider/generic-theme.ts +0 -1
  295. package/shared/theme-provider/index.ts +0 -1
  296. package/shared/theme-provider/public-api.ts +0 -1
  297. package/shared/theme-provider/theme-provider.directive.ts +0 -17
  298. package/shared/themes/sdc.css +0 -153
  299. package/shared/types.ts +0 -18
  300. package/src/private-exports.ts +0 -1
  301. package/src/public-api.ts +0 -20
  302. package/tsconfig.json +0 -50
  303. package/tsconfig.lib.prod.json +0 -6
  304. package/tsconfig.spec.json +0 -15
  305. package/tsconfig.temp.json +0 -1
  306. package/utils/index.ts +0 -1
  307. package/utils/ng-package.json +0 -1
  308. package/utils/public-api.ts +0 -1
  309. package/utils/validate-styles-for-component.ts +0 -39
  310. /package/{dist/README.md → README.md} +0 -0
  311. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-checkbox.mjs +0 -0
  312. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-checkbox.mjs.map +0 -0
  313. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-datepicker.mjs +0 -0
  314. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-datepicker.mjs.map +0 -0
  315. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-input.mjs +0 -0
  316. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-input.mjs.map +0 -0
  317. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-radio.mjs +0 -0
  318. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-radio.mjs.map +0 -0
  319. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-table.mjs +0 -0
  320. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-table.mjs.map +0 -0
  321. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-cart-item.mjs +0 -0
  322. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-cart-item.mjs.map +0 -0
  323. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-cart.mjs +0 -0
  324. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-cart.mjs.map +0 -0
  325. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-legend.mjs +0 -0
  326. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-legend.mjs.map +0 -0
  327. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-loader.mjs +0 -0
  328. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-loader.mjs.map +0 -0
  329. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-map-loader.mjs +0 -0
  330. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-map-loader.mjs.map +0 -0
  331. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-neighbors.mjs +0 -0
  332. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-neighbors.mjs.map +0 -0
  333. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-popover.mjs +0 -0
  334. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-popover.mjs.map +0 -0
  335. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-stepper.mjs +0 -0
  336. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-stepper.mjs.map +0 -0
  337. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-ticket-info-item.mjs +0 -0
  338. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-ticket-info-item.mjs.map +0 -0
  339. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-add-digital-wallet.mjs +0 -0
  340. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-add-digital-wallet.mjs.map +0 -0
  341. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-braintree.mjs +0 -0
  342. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-braintree.mjs.map +0 -0
  343. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-button.mjs +0 -0
  344. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-button.mjs.map +0 -0
  345. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-dialog.mjs +0 -0
  346. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-dialog.mjs.map +0 -0
  347. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-drawer.mjs +0 -0
  348. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-drawer.mjs.map +0 -0
  349. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-icon.mjs +0 -0
  350. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-icon.mjs.map +0 -0
  351. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-select.mjs +0 -0
  352. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-select.mjs.map +0 -0
  353. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-shared.mjs +0 -0
  354. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-shared.mjs.map +0 -0
  355. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-utils.mjs +0 -0
  356. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-utils.mjs.map +0 -0
  357. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components.mjs +0 -0
  358. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components.mjs.map +0 -0
  359. /package/{dist/types → types}/3ddv-software-division-components-backoffice-checkbox.d.ts +0 -0
  360. /package/{dist/types → types}/3ddv-software-division-components-backoffice-datepicker.d.ts +0 -0
  361. /package/{dist/types → types}/3ddv-software-division-components-backoffice-input.d.ts +0 -0
  362. /package/{dist/types → types}/3ddv-software-division-components-backoffice-radio.d.ts +0 -0
  363. /package/{dist/types → types}/3ddv-software-division-components-backoffice-table.d.ts +0 -0
  364. /package/{dist/types → types}/3ddv-software-division-components-dvm-cart-item.d.ts +0 -0
  365. /package/{dist/types → types}/3ddv-software-division-components-dvm-cart.d.ts +0 -0
  366. /package/{dist/types → types}/3ddv-software-division-components-dvm-legend.d.ts +0 -0
  367. /package/{dist/types → types}/3ddv-software-division-components-dvm-loader.d.ts +0 -0
  368. /package/{dist/types → types}/3ddv-software-division-components-dvm-map-loader.d.ts +0 -0
  369. /package/{dist/types → types}/3ddv-software-division-components-dvm-neighbors.d.ts +0 -0
  370. /package/{dist/types → types}/3ddv-software-division-components-dvm-popover.d.ts +0 -0
  371. /package/{dist/types → types}/3ddv-software-division-components-dvm-stepper.d.ts +0 -0
  372. /package/{dist/types → types}/3ddv-software-division-components-dvm-ticket-info-item.d.ts +0 -0
  373. /package/{dist/types → types}/3ddv-software-division-components-generic-add-digital-wallet.d.ts +0 -0
  374. /package/{dist/types → types}/3ddv-software-division-components-generic-braintree.d.ts +0 -0
  375. /package/{dist/types → types}/3ddv-software-division-components-generic-button.d.ts +0 -0
  376. /package/{dist/types → types}/3ddv-software-division-components-generic-dialog.d.ts +0 -0
  377. /package/{dist/types → types}/3ddv-software-division-components-generic-drawer.d.ts +0 -0
  378. /package/{dist/types → types}/3ddv-software-division-components-generic-icon.d.ts +0 -0
  379. /package/{dist/types → types}/3ddv-software-division-components-generic-select.d.ts +0 -0
  380. /package/{dist/types → types}/3ddv-software-division-components-shared.d.ts +0 -0
  381. /package/{dist/types → types}/3ddv-software-division-components-utils.d.ts +0 -0
  382. /package/{dist/types → types}/3ddv-software-division-components.d.ts +0 -0
@@ -1,14 +0,0 @@
1
- /*
2
- * Public API Surface of software-division-components
3
- */
4
-
5
- export * from './popover.component';
6
- export * from './popover.config';
7
- export * from './popover.service';
8
- export type * from './types';
9
- export * from './base-popover.component';
10
- export * from './seat-popover/seat-popover.component';
11
- export * from './section-popover/section-popover.component';
12
- export * from './services/popover-manager.service';
13
- export * from './services/dvm-popover-positioner.service';
14
- export * from './transformers/base-popover-data-transformer';
@@ -1,89 +0,0 @@
1
- :host {
2
- display: block;
3
- }
4
-
5
- .sdc-seat-popover {
6
- width: var(--sdc-popover-width, 20rem);
7
- height: auto;
8
- color: var(--sdc-popover-text-color, #ffffff);
9
- background-color: var(--sdc-popover-bg-color, #000000);
10
- border-radius: var(--sdc-popover-border-radius, 0.75rem);
11
- overflow: hidden;
12
- }
13
-
14
- .sdc-popover-thumbnail {
15
- width: 100%;
16
- height: var(--sdc-popover-thumbnail-height, 12rem);
17
- position: relative;
18
- }
19
-
20
- .sdc-thumbnail-image {
21
- width: 100%;
22
- height: 100%;
23
- background-position: center;
24
- background-size: cover;
25
- background-repeat: no-repeat;
26
- }
27
-
28
- .sdc-popover-loader {
29
- width: 100%;
30
- height: 100%;
31
- display: flex;
32
- justify-content: center;
33
- align-items: center;
34
- }
35
-
36
- .sdc-spinner {
37
- display: inline-block;
38
- width: 80px;
39
- height: 80px;
40
- }
41
-
42
- .sdc-spinner:after {
43
- content: ' ';
44
- display: block;
45
- width: 32px;
46
- height: 32px;
47
- margin: 8px;
48
- margin-top: 16px;
49
- margin-left: 16px;
50
- border-radius: 50%;
51
- border: 3px solid var(--sdc-spinner-color, #fff);
52
- border-color: var(--sdc-spinner-color, #fff) transparent var(--sdc-spinner-color, #fff) transparent;
53
- animation: sdc-spinner-rotate 1.2s linear infinite;
54
- }
55
-
56
- @keyframes sdc-spinner-rotate {
57
- 0% { transform: rotate(0deg); }
58
- 100% { transform: rotate(360deg); }
59
- }
60
-
61
- .sdc-popover-content {
62
- padding: 0.75rem;
63
- }
64
-
65
- .sdc-popover-grid {
66
- display: flex;
67
- gap: 1.25rem;
68
- }
69
-
70
- .sdc-popover-col-left {
71
- flex: 1;
72
- }
73
-
74
- .sdc-popover-col-right {
75
- flex: 1;
76
- text-align: right;
77
- min-width: max-content;
78
- }
79
-
80
- .sdc-popover-label {
81
- margin: 0.25rem 0;
82
- font-size: var(--sdc-popover-label-font-size, 0.875rem);
83
- line-height: 1.25rem;
84
- font-weight: var(--sdc-popover-label-font-weight, 700);
85
- }
86
-
87
- .sdc-popover-label-text {
88
- font-weight: var(--sdc-popover-label-text-font-weight, 400);
89
- }
@@ -1,40 +0,0 @@
1
- <div
2
- (mouseenter)="onEnter($event)"
3
- (mouseleave)="onLeave($event)"
4
- class="sdc-seat-popover">
5
- <div class="sdc-popover-thumbnail">
6
- @if (isLoadingThumbnail && showLoader) {
7
- <div class="sdc-popover-loader">
8
- <div class="sdc-spinner"></div>
9
- </div>
10
- }
11
- @if (thumbnail && !isLoadingThumbnail) {
12
- <div class="sdc-thumbnail-image" [style.background-image]="'url(' + thumbnail + ')'"></div>
13
- }
14
- </div>
15
-
16
- <div class="sdc-popover-content">
17
- <div class="sdc-popover-grid">
18
- <div class="sdc-popover-col-left">
19
- <h5 class="sdc-popover-label">
20
- <span class="sdc-popover-label-text">Section:</span>
21
- {{ formattedSection }}
22
- </h5>
23
- <h5 class="sdc-popover-label">
24
- <span class="sdc-popover-label-text">Row:</span>
25
- {{ data.row }}
26
- </h5>
27
- </div>
28
- <div class="sdc-popover-col-right">
29
- <h5 class="sdc-popover-label">
30
- <span class="sdc-popover-label-text">Seat:</span>
31
- {{ formattedSeat }}
32
- </h5>
33
- <h5 class="sdc-popover-label">
34
- <span class="sdc-popover-label-text">Price:</span>
35
- {{ data.price | currency: 'USD' }}
36
- </h5>
37
- </div>
38
- </div>
39
- </div>
40
- </div>
@@ -1,74 +0,0 @@
1
- import {
2
- ChangeDetectionStrategy,
3
- ChangeDetectorRef,
4
- Component,
5
- EventEmitter,
6
- inject,
7
- Input,
8
- OnInit,
9
- Output,
10
- } from '@angular/core';
11
- import { CommonModule, CurrencyPipe } from '@angular/common';
12
- import { type SeatPopoverData } from '../types';
13
- import { THUMBNAIL_PROVIDER } from '../popover.config';
14
- import { BasePopoverComponent } from '../base-popover.component';
15
-
16
- @Component({
17
- selector: 'sdc-seat-popover',
18
- templateUrl: './seat-popover.component.html',
19
- styleUrl: './seat-popover.component.css',
20
- changeDetection: ChangeDetectionStrategy.OnPush,
21
- standalone: true,
22
- imports: [CommonModule, CurrencyPipe],
23
- })
24
- export class SeatPopoverComponent extends BasePopoverComponent implements OnInit {
25
- @Input() data!: SeatPopoverData;
26
- @Input() showLoader: boolean = true;
27
-
28
- private readonly thumbnailProvider = inject(THUMBNAIL_PROVIDER, { optional: true });
29
- protected override readonly cdr = inject(ChangeDetectorRef);
30
-
31
- protected thumbnail?: string;
32
- protected isLoadingThumbnail = true;
33
-
34
- override ngOnInit(): void {
35
- super.ngOnInit(); // Initialize base component timer logic
36
-
37
- if (this.data.thumbnail) {
38
- this.thumbnail = this.data.thumbnail;
39
- this.isLoadingThumbnail = false;
40
- } else if (this.thumbnailProvider && this.showLoader) {
41
- this.loadThumbnail();
42
- }
43
- }
44
-
45
- private loadThumbnail(): void {
46
- this.thumbnailProvider!.getThumbnail(this.data.id).subscribe({
47
- next: url => {
48
- this.thumbnail = url;
49
- this.isLoadingThumbnail = false;
50
- this.cdr.markForCheck();
51
- },
52
- error: () => {
53
- this.isLoadingThumbnail = false;
54
- this.cdr.markForCheck();
55
- },
56
- });
57
- }
58
-
59
- protected get formattedSection(): string {
60
- return this.data.section.includes('_') ? this.data.section.split('_')[1].split('-')[0] : this.data.section;
61
- }
62
-
63
- protected get formattedSeat(): string {
64
- return this.data.seat.split('-')[2] || this.data.seat;
65
- }
66
-
67
- protected onEnter(event: MouseEvent): void {
68
- this.onMouseEnter(event);
69
- }
70
-
71
- protected onLeave(event: MouseEvent): void {
72
- this.onMouseLeave(event);
73
- }
74
- }
@@ -1,157 +0,0 @@
1
- :host {
2
- display: block;
3
- }
4
-
5
- .sdc-section-popover {
6
- width: var(--sdc-popover-width, 20rem);
7
- height: auto;
8
- color: var(--sdc-popover-text-color, #ffffff);
9
- background-color: var(--sdc-popover-bg-color, #000000);
10
- border-radius: var(--sdc-popover-border-radius, 0.75rem);
11
- overflow: hidden;
12
- }
13
-
14
- .sdc-popover-thumbnail {
15
- width: 100%;
16
- height: var(--sdc-popover-thumbnail-height, 12rem);
17
- position: relative;
18
- }
19
-
20
- .sdc-thumbnail-image {
21
- width: 100%;
22
- height: 100%;
23
- background-position: center;
24
- background-size: cover;
25
- background-repeat: no-repeat;
26
- }
27
-
28
- .sdc-thumbnail-clickable {
29
- cursor: pointer;
30
- display: flex;
31
- align-items: flex-end;
32
- justify-content: center;
33
- padding: 8px;
34
- }
35
-
36
- .sdc-thumbnail-overlay-text {
37
- font-size: var(--sdc-thumbnail-overlay-font-size, 12px);
38
- color: var(--sdc-thumbnail-overlay-color, #ffffff);
39
- background-color: var(--sdc-thumbnail-overlay-bg, rgba(0, 0, 0, 0.5));
40
- padding: 4px 8px;
41
- border-radius: 4px;
42
- }
43
-
44
- .sdc-popover-loader {
45
- width: 100%;
46
- height: 100%;
47
- display: flex;
48
- justify-content: center;
49
- align-items: center;
50
- }
51
-
52
- .sdc-spinner {
53
- display: inline-block;
54
- width: 80px;
55
- height: 80px;
56
- }
57
-
58
- .sdc-spinner:after {
59
- content: ' ';
60
- display: block;
61
- width: 32px;
62
- height: 32px;
63
- margin: 8px;
64
- margin-top: 16px;
65
- margin-left: 24px;
66
- border-radius: 50%;
67
- border: 3px solid var(--sdc-spinner-color, #fff);
68
- border-color: var(--sdc-spinner-color, #fff) transparent var(--sdc-spinner-color, #fff) transparent;
69
- animation: sdc-spinner-rotate 1.2s linear infinite;
70
- }
71
-
72
- @keyframes sdc-spinner-rotate {
73
- 0% { transform: rotate(0deg); }
74
- 100% { transform: rotate(360deg); }
75
- }
76
-
77
- .sdc-popover-content {
78
- padding: 0.75rem;
79
- }
80
-
81
- .sdc-popover-grid {
82
- display: flex;
83
- gap: 1.25rem;
84
- }
85
-
86
- .sdc-popover-col-left {
87
- flex: 1;
88
- }
89
-
90
- .sdc-popover-col-right {
91
- flex: 1;
92
- text-align: right;
93
- min-width: max-content;
94
- }
95
-
96
- .sdc-popover-label {
97
- margin: 0.25rem 0;
98
- font-size: var(--sdc-popover-label-font-size, 0.875rem);
99
- line-height: 1.25rem;
100
- font-weight: var(--sdc-popover-label-font-weight, 700);
101
- }
102
-
103
- .sdc-popover-label-text {
104
- font-weight: var(--sdc-popover-label-text-font-weight, 400);
105
- }
106
-
107
- .sdc-popover-actions {
108
- padding: 0.5rem 0;
109
- display: flex;
110
- justify-content: center;
111
- gap: 0.5rem;
112
- }
113
-
114
- .sdc-popover-btn {
115
- border: none;
116
- border-radius: var(--sdc-btn-border-radius, 4px);
117
- padding: 0.5rem 1rem;
118
- height: var(--sdc-btn-height, 2.25rem);
119
- font-size: var(--sdc-btn-font-size, 0.75rem);
120
- cursor: pointer;
121
- transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1);
122
- }
123
-
124
- .sdc-popover-btn:hover:not(:disabled) {
125
- transform: scale(0.95);
126
- }
127
-
128
- .sdc-popover-btn:disabled {
129
- opacity: 0.3;
130
- cursor: not-allowed;
131
- }
132
-
133
- .sdc-popover-btn-primary {
134
- background-color: var(--sdc-btn-primary-bg, #007bff);
135
- color: var(--sdc-btn-primary-color, white);
136
- margin-right: 0.5rem;
137
- }
138
-
139
- .sdc-popover-btn-secondary {
140
- background-color: var(--sdc-btn-secondary-bg, white);
141
- color: var(--sdc-btn-secondary-color, #007bff);
142
- border: 1px solid var(--sdc-btn-secondary-border, #007bff);
143
- }
144
-
145
- .sdc-popover-btn-secondary:hover:not(:disabled) {
146
- color: var(--sdc-btn-secondary-hover-color, #0056b3);
147
- }
148
-
149
- .sdc-popover-btn-mobile-only {
150
- display: block;
151
- }
152
-
153
- @media (min-width: 768px) {
154
- .sdc-popover-btn-mobile-only {
155
- display: none;
156
- }
157
- }
@@ -1,58 +0,0 @@
1
- <div (mouseenter)="onEnter($event)" (mouseleave)="onLeave($event)" class="sdc-section-popover">
2
- <div class="sdc-popover-thumbnail">
3
- @if (isLoadingThumbnail && showLoader) {
4
- <div class="sdc-popover-loader">
5
- <div class="sdc-spinner"></div>
6
- </div>
7
- }
8
- @if (thumbnail && !isLoadingThumbnail) {
9
- <div
10
- class="sdc-thumbnail-image sdc-thumbnail-clickable"
11
- [style.background-image]="'url(' + thumbnail + ')'"
12
- (click)="onLoad3dView()">
13
- <span class="sdc-thumbnail-overlay-text">Click to open view</span>
14
- </div>
15
- }
16
- </div>
17
-
18
- <div class="sdc-popover-content">
19
- <div class="sdc-popover-grid">
20
- <div class="sdc-popover-col-left">
21
- <h5 class="sdc-popover-label">
22
- <span class="sdc-popover-label-text">Section:</span>
23
- {{ data.section }}
24
- </h5>
25
- @if (isTicketFeeEnabled && priceRangeWithFees) {
26
- <h5 class="sdc-popover-label">
27
- <span class="sdc-popover-label-text">Price:</span> $ {{ priceRangeWithFees }}
28
- </h5>
29
- } @else {
30
- <h5 class="sdc-popover-label">
31
- <span class="sdc-popover-label-text">Price:</span> $ {{ priceRangeDisplay }}
32
- </h5>
33
- }
34
- </div>
35
- <div class="sdc-popover-col-right">
36
- <h5 class="sdc-popover-label">
37
- <span class="sdc-popover-label-text">Available Seats:</span>
38
- {{ data.availableQuantity }}
39
- </h5>
40
- <h5 class="sdc-popover-label">
41
- <span class="sdc-popover-label-text">Available ADA Seats:</span>
42
- {{ data.adaQuantity }}
43
- </h5>
44
- </div>
45
- </div>
46
-
47
- <div class="sdc-popover-actions">
48
- @if (showBestAvailable) {
49
- <button class="sdc-popover-btn sdc-popover-btn-primary sdc-popover-btn-mobile-only" (click)="onSelectForBA()">
50
- {{ data.isSelectedForBA ? 'Deselect' : 'Select' }}
51
- </button>
52
- }
53
- @if (shouldShowSeatMapButton) {
54
- <button class="sdc-popover-btn sdc-popover-btn-secondary" (click)="onOpenSeatMap()">Open Seat Map</button>
55
- }
56
- </div>
57
- </div>
58
- </div>
@@ -1,106 +0,0 @@
1
- import {
2
- ChangeDetectionStrategy,
3
- ChangeDetectorRef,
4
- Component,
5
- EventEmitter,
6
- inject,
7
- Input,
8
- OnInit,
9
- Output,
10
- } from '@angular/core';
11
- import { CommonModule } from '@angular/common';
12
- import { type SectionPopoverData } from '../types';
13
- import { THUMBNAIL_PROVIDER } from '../popover.config';
14
- import { BasePopoverComponent } from '../base-popover.component';
15
-
16
- @Component({
17
- selector: 'sdc-section-popover',
18
- templateUrl: './section-popover.component.html',
19
- styleUrl: './section-popover.component.css',
20
- changeDetection: ChangeDetectionStrategy.OnPush,
21
- standalone: true,
22
- imports: [CommonModule],
23
- })
24
- export class SectionPopoverComponent extends BasePopoverComponent implements OnInit {
25
- @Input() data!: SectionPopoverData;
26
- @Input() showLoader: boolean = true;
27
- @Input() showBestAvailable: boolean = false;
28
- @Input() showOpenSeatMap: boolean = true;
29
- @Input() excludeSeatMapSections: string[] = ['S_BLCHADA', 'S_Bleacher'];
30
- @Input() isTicketFeeEnabled: boolean = false;
31
-
32
- @Output() load3dView = new EventEmitter<void>();
33
- @Output() selectForBA = new EventEmitter<boolean>();
34
- @Output() openSeatMap = new EventEmitter<void>();
35
-
36
- private readonly thumbnailProvider = inject(THUMBNAIL_PROVIDER, { optional: true });
37
- protected override readonly cdr = inject(ChangeDetectorRef);
38
-
39
- protected thumbnail?: string;
40
- protected isLoadingThumbnail = true;
41
-
42
- override ngOnInit(): void {
43
- super.ngOnInit(); // Initialize base component timer logic
44
-
45
- if (this.data.thumbnail) {
46
- this.thumbnail = this.data.thumbnail;
47
- this.isLoadingThumbnail = false;
48
- } else if (this.thumbnailProvider && this.showLoader) {
49
- this.loadThumbnail();
50
- }
51
- }
52
-
53
- private loadThumbnail(): void {
54
- this.thumbnailProvider!.getThumbnail(this.data.id).subscribe({
55
- next: url => {
56
- this.thumbnail = url;
57
- this.isLoadingThumbnail = false;
58
- this.cdr.markForCheck();
59
- },
60
- error: () => {
61
- this.isLoadingThumbnail = false;
62
- this.cdr.markForCheck();
63
- },
64
- });
65
- }
66
-
67
- protected get priceRangeDisplay(): string {
68
- const { min, max } = this.data.priceRange;
69
- return min === max ? min.toString() : `${min} - ${max}`;
70
- }
71
-
72
- protected get priceRangeWithFees(): string | undefined {
73
- if (this.isTicketFeeEnabled && this.data.priceRangeWithFees) {
74
- return this.data.priceRangeWithFees;
75
- }
76
- return undefined;
77
- }
78
-
79
- protected get shouldShowSeatMapButton(): boolean {
80
- return (
81
- this.showOpenSeatMap &&
82
- !this.excludeSeatMapSections.includes(this.data.section) &&
83
- this.data.type !== 'general_admission'
84
- );
85
- }
86
-
87
- protected onEnter(event: MouseEvent): void {
88
- this.onMouseEnter(event);
89
- }
90
-
91
- protected onLeave(event: MouseEvent): void {
92
- this.onMouseLeave(event);
93
- }
94
-
95
- protected onLoad3dView(): void {
96
- this.load3dView.emit();
97
- }
98
-
99
- protected onSelectForBA(): void {
100
- this.selectForBA.emit(!this.data.isSelectedForBA);
101
- }
102
-
103
- protected onOpenSeatMap(): void {
104
- this.openSeatMap.emit();
105
- }
106
- }
@@ -1,73 +0,0 @@
1
- import { inject, Injectable, Inject } from '@angular/core';
2
- import type { MapViewerNode, V2 } from '@3ddv/dvm-internal';
3
- import { Placement } from '@floating-ui/dom';
4
- import { IPopoverPositioner } from '../types';
5
- import { DVM_SERVICE, CONFIGURATION_SERVICE } from '../popover.config';
6
- import type { IDvmService, IConfigurationService } from '../popover.config';
7
-
8
- /**
9
- * DVM-specific positioning service for popovers.
10
- * Handles calculation of popover placement and offset based on DVM node properties.
11
- */
12
- @Injectable()
13
- export class DvmPopoverPositionerService implements IPopoverPositioner {
14
- private readonly dvmService: IDvmService;
15
- private readonly configService: IConfigurationService;
16
-
17
- constructor(
18
- @Inject(DVM_SERVICE) dvmService: IDvmService,
19
- @Inject(CONFIGURATION_SERVICE) configService: IConfigurationService
20
- ) {
21
- this.dvmService = dvmService;
22
- this.configService = configService;
23
- }
24
-
25
- /**
26
- * Calculates the optimal placement for a popover based on node position.
27
- * @param node - The MapViewerNode to position relative to
28
- * @param container - The container element for positioning reference
29
- * @returns The calculated placement ('top' or 'bottom')
30
- */
31
- calculatePlacement(node: MapViewerNode, container: HTMLElement): Placement {
32
- if (!node.aabb) {
33
- throw new Error('Node AABB is not defined');
34
- }
35
-
36
- const nodeSceneCenter: [number, number] = [
37
- node.aabb[0] + node.aabb[2] / 2,
38
- node.aabb[1] + node.aabb[3] / 2,
39
- ];
40
-
41
- const nodeDomCenter: V2 = this.dvmService.viewerService.fromSceneToDom(nodeSceneCenter)!;
42
-
43
- if (nodeDomCenter[1] > container.offsetHeight / 2) {
44
- return 'top';
45
- } else {
46
- return 'bottom';
47
- }
48
- }
49
-
50
- /**
51
- * Calculates the offset for popover positioning based on node type and configuration.
52
- * @param node - The MapViewerNode to calculate offset for
53
- * @returns An array of [x, y] offset values
54
- */
55
- calculateOffset(node: MapViewerNode): number[] {
56
- if (node.type === 'seat') {
57
- return [0, 6];
58
- }
59
-
60
- if (node.type === 'section' || node.type === 'general_admission') {
61
- const dvmData = this.configService.configuration.dvmData as any;
62
- const sectionOffsets = dvmData?.sectionOffsets || {};
63
- const nodeId = node.id as keyof typeof sectionOffsets;
64
- const nodeOriginalId = node.original_id as keyof typeof sectionOffsets;
65
- const dvmOffset = sectionOffsets[nodeId] ?? sectionOffsets[nodeOriginalId];
66
-
67
- return dvmOffset ?? [0, 0];
68
- }
69
-
70
- return [0, 0];
71
- }
72
- }
73
-
@@ -1,88 +0,0 @@
1
- import { inject, Injectable, Inject } from '@angular/core';
2
- import { createPopper } from '@popperjs/core';
3
- import type { IPopoverManager, IPopoverPositioner, PopoverConfig } from '../types';
4
- import { POPOVER_POSITIONER } from '../popover.config';
5
-
6
- /**
7
- * Generic popover manager service that handles popover lifecycle and positioning.
8
- * This service is DVM-agnostic and delegates positioning logic to IPopoverPositioner.
9
- */
10
- @Injectable()
11
- export class PopoverManagerService implements IPopoverManager {
12
- private currentPopoverId: string = '';
13
- private tooltip?: HTMLElement;
14
- private readonly positioner: IPopoverPositioner;
15
-
16
- constructor(@Inject(POPOVER_POSITIONER) positioner: IPopoverPositioner) {
17
- this.positioner = positioner;
18
- }
19
-
20
- /**
21
- * Shows a popover with the specified configuration.
22
- * @param config - Configuration for the popover including component, data, and positioning
23
- */
24
- showPopover<T>(config: PopoverConfig<T>): void {
25
- config.container.clear();
26
- this.currentPopoverId = config.nodeId;
27
- this.tooltip = config.tooltip;
28
-
29
- const componentRef = config.container.createComponent(config.component);
30
-
31
- if (config.componentInputs) {
32
- Object.entries(config.componentInputs).forEach(([key, value]) => {
33
- (componentRef.instance as any)[key] = value;
34
- });
35
- }
36
-
37
- if (config.eventHandlers) {
38
- Object.entries(config.eventHandlers).forEach(([key, handler]) => {
39
- const instance = componentRef.instance as any;
40
- if (instance[key] && typeof instance[key].subscribe === 'function') {
41
- instance[key].subscribe(handler);
42
- }
43
- });
44
- }
45
-
46
- const placement = this.positioner.calculatePlacement(config.node, config.containerElement);
47
- const offset = this.positioner.calculateOffset(config.node);
48
-
49
- createPopper(config.node, this.tooltip, {
50
- placement,
51
- modifiers: [
52
- {
53
- name: 'offset',
54
- options: {
55
- offset,
56
- },
57
- },
58
- {
59
- name: 'flip',
60
- options: {
61
- fallbackPlacements: [],
62
- },
63
- },
64
- ],
65
- });
66
-
67
- this.tooltip.setAttribute('data-show', '');
68
- }
69
-
70
- /**
71
- * Hides the popover for the specified node ID.
72
- * @param nodeId - The node ID of the popover to hide
73
- */
74
- hidePopover(nodeId: string): void {
75
- if (this.currentPopoverId === nodeId) {
76
- this.tooltip?.removeAttribute('data-show');
77
- }
78
- }
79
-
80
- /**
81
- * Clears all popovers.
82
- */
83
- clearAll(): void {
84
- this.tooltip?.removeAttribute('data-show');
85
- this.currentPopoverId = '';
86
- }
87
- }
88
-