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

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 (379) hide show
  1. package/package.json +43 -67
  2. package/styles.css +2 -46
  3. package/.postcssrc.json +0 -5
  4. package/.storybook/main.ts +0 -78
  5. package/.storybook/manager-head.html +0 -1
  6. package/.storybook/preview.ts +0 -30
  7. package/.storybook/tsconfig.json +0 -25
  8. package/.storybook/typings.d.ts +0 -4
  9. package/CHANGELOG.md +0 -8
  10. package/LICENSE.md +0 -21
  11. package/backoffice/checkbox/checkbox.component.css +0 -193
  12. package/backoffice/checkbox/checkbox.component.html +0 -23
  13. package/backoffice/checkbox/checkbox.component.ts +0 -252
  14. package/backoffice/checkbox/index.ts +0 -1
  15. package/backoffice/checkbox/ng-package.json +0 -1
  16. package/backoffice/checkbox/public-api.ts +0 -1
  17. package/backoffice/checkbox/story/checkbox.stories.ts +0 -304
  18. package/backoffice/datepicker/datepicker.component.css +0 -262
  19. package/backoffice/datepicker/datepicker.component.html +0 -40
  20. package/backoffice/datepicker/datepicker.component.ts +0 -366
  21. package/backoffice/datepicker/index.ts +0 -1
  22. package/backoffice/datepicker/ng-package.json +0 -1
  23. package/backoffice/datepicker/public-api.ts +0 -2
  24. package/backoffice/datepicker/story/datepicker.stories.ts +0 -32
  25. package/backoffice/datepicker/ui/ui-calendar-helm/src/index.ts +0 -14
  26. package/backoffice/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar-multi.ts +0 -183
  27. package/backoffice/datepicker/ui/ui-calendar-helm/src/lib/hlm-calendar.ts +0 -171
  28. package/backoffice/datepicker/ui/ui-date-picker-helm/src/index.ts +0 -16
  29. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker-multi.token.ts +0 -43
  30. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker-multi.ts +0 -177
  31. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker.token.ts +0 -43
  32. package/backoffice/datepicker/ui/ui-date-picker-helm/src/lib/hlm-date-picker.ts +0 -167
  33. package/backoffice/datepicker/ui/ui-icon-helm/src/index.ts +0 -11
  34. package/backoffice/datepicker/ui/ui-icon-helm/src/lib/hlm-icon.token.ts +0 -20
  35. package/backoffice/datepicker/ui/ui-icon-helm/src/lib/hlm-icon.ts +0 -35
  36. package/backoffice/datepicker/ui/ui-popover-helm/src/index.ts +0 -15
  37. package/backoffice/datepicker/ui/ui-popover-helm/src/lib/hlm-popover-close.ts +0 -19
  38. package/backoffice/datepicker/ui/ui-popover-helm/src/lib/hlm-popover-content.ts +0 -30
  39. package/backoffice/index.ts +0 -1
  40. package/backoffice/input/index.ts +0 -1
  41. package/backoffice/input/input.component.css +0 -319
  42. package/backoffice/input/input.component.html +0 -51
  43. package/backoffice/input/input.component.ts +0 -497
  44. package/backoffice/input/ng-package.json +0 -1
  45. package/backoffice/input/public-api.ts +0 -2
  46. package/backoffice/input/story/input.stories.ts +0 -243
  47. package/backoffice/radio/index.ts +0 -1
  48. package/backoffice/radio/ng-package.json +0 -1
  49. package/backoffice/radio/public-api.ts +0 -1
  50. package/backoffice/radio/radio.component.css +0 -143
  51. package/backoffice/radio/radio.component.html +0 -15
  52. package/backoffice/radio/radio.component.ts +0 -154
  53. package/backoffice/radio/story/radio.stories.ts +0 -287
  54. package/backoffice/table/_components/pagination/pagination.component.css +0 -117
  55. package/backoffice/table/_components/pagination/pagination.component.html +0 -55
  56. package/backoffice/table/_components/pagination/pagination.component.ts +0 -79
  57. package/backoffice/table/_components/selection-table-head/selection-table-head.component.css +0 -0
  58. package/backoffice/table/_components/selection-table-head/selection-table-head.component.html +0 -6
  59. package/backoffice/table/_components/selection-table-head/selection-table-head.component.ts +0 -36
  60. package/backoffice/table/_components/selection-table-row/selection-table-row.component.css +0 -0
  61. package/backoffice/table/_components/selection-table-row/selection-table-row.component.html +0 -5
  62. package/backoffice/table/_components/selection-table-row/selection-table-row.component.ts +0 -12
  63. package/backoffice/table/_components/sort-header-button/sort-header-button.component.css +0 -14
  64. package/backoffice/table/_components/sort-header-button/sort-header-button.component.html +0 -11
  65. package/backoffice/table/_components/sort-header-button/sort-header-button.component.ts +0 -55
  66. package/backoffice/table/index.ts +0 -1
  67. package/backoffice/table/ng-package.json +0 -1
  68. package/backoffice/table/public-api.ts +0 -6
  69. package/backoffice/table/story/table.stories.ts +0 -364
  70. package/backoffice/table/table.component.css +0 -172
  71. package/backoffice/table/table.component.html +0 -53
  72. package/backoffice/table/table.component.ts +0 -347
  73. package/backoffice/table/ui/ui-icon-helm/src/index.ts +0 -11
  74. package/backoffice/table/ui/ui-icon-helm/src/lib/hlm-icon.token.ts +0 -20
  75. package/backoffice/table/ui/ui-icon-helm/src/lib/hlm-icon.ts +0 -35
  76. package/backoffice/table/ui/ui-table-helm/src/index.ts +0 -13
  77. package/backoffice/table/ui/ui-table-helm/src/lib/hlm-table.ts +0 -220
  78. package/components.json +0 -3
  79. package/dist/styles.css +0 -2
  80. package/documentation.json +0 -30473
  81. package/dvm/cart/cart.component.css +0 -103
  82. package/dvm/cart/cart.component.html +0 -31
  83. package/dvm/cart/cart.component.ts +0 -49
  84. package/dvm/cart/cart.stories.ts +0 -370
  85. package/dvm/cart/cart.types.ts +0 -8
  86. package/dvm/cart/index.ts +0 -2
  87. package/dvm/cart/ng-package.json +0 -1
  88. package/dvm/cart/public-api.ts +0 -8
  89. package/dvm/cart/seat-list.component.css +0 -281
  90. package/dvm/cart/seat-list.component.html +0 -85
  91. package/dvm/cart/seat-list.component.ts +0 -76
  92. package/dvm/cart/seat-list.stories.ts +0 -337
  93. package/dvm/cart-item/cart-item.component.html +0 -1
  94. package/dvm/cart-item/cart-item.component.ts +0 -8
  95. package/dvm/cart-item/cart-item.service.ts +0 -8
  96. package/dvm/cart-item/cart.stories.ts +0 -31
  97. package/dvm/cart-item/index.ts +0 -1
  98. package/dvm/cart-item/ng-package.json +0 -1
  99. package/dvm/cart-item/public-api.ts +0 -6
  100. package/dvm/index.ts +0 -1
  101. package/dvm/legend/index.ts +0 -1
  102. package/dvm/legend/legend.component.css +0 -49
  103. package/dvm/legend/legend.component.html +0 -8
  104. package/dvm/legend/legend.component.ts +0 -41
  105. package/dvm/legend/legend.stories.ts +0 -16
  106. package/dvm/legend/ng-package.json +0 -1
  107. package/dvm/legend/public-api.ts +0 -7
  108. package/dvm/legend/types.ts +0 -6
  109. package/dvm/legend/ui/legend-elements/index.ts +0 -1
  110. package/dvm/legend/ui/legend-elements/legend-elements.component.css +0 -49
  111. package/dvm/legend/ui/legend-elements/legend-elements.component.html +0 -8
  112. package/dvm/legend/ui/legend-elements/legend-elements.component.ts +0 -41
  113. package/dvm/loader/index.ts +0 -1
  114. package/dvm/loader/loader.component.html +0 -1
  115. package/dvm/loader/loader.component.ts +0 -8
  116. package/dvm/loader/loader.service.ts +0 -8
  117. package/dvm/loader/loader.stories.ts +0 -31
  118. package/dvm/loader/ng-package.json +0 -1
  119. package/dvm/loader/public-api.ts +0 -6
  120. package/dvm/map-loader/index.ts +0 -1
  121. package/dvm/map-loader/map-loader.component.css +0 -91
  122. package/dvm/map-loader/map-loader.component.html +0 -23
  123. package/dvm/map-loader/map-loader.component.ts +0 -187
  124. package/dvm/map-loader/map-loader.stories.ts +0 -16
  125. package/dvm/map-loader/ng-package.json +0 -1
  126. package/dvm/map-loader/public-api.ts +0 -5
  127. package/dvm/neighbors/index.ts +0 -1
  128. package/dvm/neighbors/neighbors.component.css +0 -158
  129. package/dvm/neighbors/neighbors.component.html +0 -45
  130. package/dvm/neighbors/neighbors.component.ts +0 -218
  131. package/dvm/neighbors/ng-package.json +0 -1
  132. package/dvm/neighbors/public-api.ts +0 -2
  133. package/dvm/neighbors/story/arrow-left-black-icon.svg +0 -3
  134. package/dvm/neighbors/story/mock-data.ts +0 -15
  135. package/dvm/neighbors/story/neighbours.stories.css +0 -12
  136. package/dvm/neighbors/story/neighbours.stories.ts +0 -117
  137. package/dvm/neighbors/types.ts +0 -14
  138. package/dvm/popover/base-popover.component.ts +0 -70
  139. package/dvm/popover/index.ts +0 -1
  140. package/dvm/popover/ng-package.json +0 -1
  141. package/dvm/popover/popover.component.css +0 -227
  142. package/dvm/popover/popover.component.html +0 -27
  143. package/dvm/popover/popover.component.ts +0 -236
  144. package/dvm/popover/popover.config.ts +0 -30
  145. package/dvm/popover/popover.service.ts +0 -627
  146. package/dvm/popover/popover.stories.ts +0 -873
  147. package/dvm/popover/public-api.ts +0 -14
  148. package/dvm/popover/seat-popover/seat-popover.component.css +0 -89
  149. package/dvm/popover/seat-popover/seat-popover.component.html +0 -40
  150. package/dvm/popover/seat-popover/seat-popover.component.ts +0 -74
  151. package/dvm/popover/section-popover/section-popover.component.css +0 -157
  152. package/dvm/popover/section-popover/section-popover.component.html +0 -58
  153. package/dvm/popover/section-popover/section-popover.component.ts +0 -106
  154. package/dvm/popover/services/dvm-popover-positioner.service.ts +0 -73
  155. package/dvm/popover/services/popover-manager.service.ts +0 -88
  156. package/dvm/popover/transformers/base-popover-data-transformer.ts +0 -36
  157. package/dvm/popover/types.ts +0 -104
  158. package/dvm/stepper/index.ts +0 -1
  159. package/dvm/stepper/ng-package.json +0 -1
  160. package/dvm/stepper/public-api.ts +0 -5
  161. package/dvm/stepper/stepper.component.css +0 -142
  162. package/dvm/stepper/stepper.component.html +0 -9
  163. package/dvm/stepper/stepper.component.ts +0 -101
  164. package/dvm/stepper/types.ts +0 -6
  165. package/dvm/ticket-info-item/index.ts +0 -1
  166. package/dvm/ticket-info-item/ng-package.json +0 -1
  167. package/dvm/ticket-info-item/public-api.ts +0 -6
  168. package/dvm/ticket-info-item/ticket-info-item.component.html +0 -1
  169. package/dvm/ticket-info-item/ticket-info-item.component.ts +0 -8
  170. package/dvm/ticket-info-item/ticket-info-item.service.ts +0 -8
  171. package/dvm/ticket-info-item/ticket-info-item.stories.ts +0 -31
  172. package/generic/add-digital-wallet/add-digital-wallet.component.css +0 -76
  173. package/generic/add-digital-wallet/add-digital-wallet.component.html +0 -46
  174. package/generic/add-digital-wallet/add-digital-wallet.component.ts +0 -44
  175. package/generic/add-digital-wallet/index.ts +0 -1
  176. package/generic/add-digital-wallet/ng-package.json +0 -1
  177. package/generic/add-digital-wallet/public-api.ts +0 -1
  178. package/generic/braintree/braintree.component.css +0 -7
  179. package/generic/braintree/braintree.component.ts +0 -134
  180. package/generic/braintree/index.ts +0 -1
  181. package/generic/braintree/ng-package.json +0 -1
  182. package/generic/braintree/public-api.ts +0 -6
  183. package/generic/braintree/story/braintree.stories.css +0 -3
  184. package/generic/braintree/story/braintree.stories.ts +0 -27
  185. package/generic/braintree/types.ts +0 -28
  186. package/generic/button/button.component.css +0 -305
  187. package/generic/button/button.component.html +0 -10
  188. package/generic/button/button.component.ts +0 -353
  189. package/generic/button/index.ts +0 -1
  190. package/generic/button/ng-package.json +0 -1
  191. package/generic/button/public-api.ts +0 -6
  192. package/generic/button/story/button.stories.ts +0 -384
  193. package/generic/button/ui/ui-button-helm/src/index.ts +0 -10
  194. package/generic/button/ui/ui-button-helm/src/lib/hlm-button.token.ts +0 -22
  195. package/generic/button/ui/ui-button-helm/src/lib/hlm-button.ts +0 -62
  196. package/generic/carousel/carousel-item.component.ts +0 -15
  197. package/generic/carousel/carousel-item.directive.ts +0 -14
  198. package/generic/carousel/carousel.component.css +0 -90
  199. package/generic/carousel/carousel.component.html +0 -13
  200. package/generic/carousel/carousel.component.ts +0 -44
  201. package/generic/carousel/index.ts +0 -1
  202. package/generic/carousel/public-api.ts +0 -2
  203. package/generic/carousel/ui/ui-carousel-helm/src/index.ts +0 -29
  204. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-content.ts +0 -23
  205. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-item.ts +0 -25
  206. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-next.ts +0 -58
  207. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-previous.ts +0 -61
  208. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel-slide-display.ts +0 -36
  209. package/generic/carousel/ui/ui-carousel-helm/src/lib/hlm-carousel.ts +0 -105
  210. package/generic/dialog/dialog.component.css +0 -5
  211. package/generic/dialog/dialog.component.html +0 -3
  212. package/generic/dialog/dialog.component.ts +0 -20
  213. package/generic/dialog/dialog.stories.ts +0 -14
  214. package/generic/dialog/index.ts +0 -1
  215. package/generic/dialog/libs/ui-dialog-helm/src/index.ts +0 -37
  216. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-close.ts +0 -20
  217. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-content.ts +0 -56
  218. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-description.ts +0 -17
  219. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-footer.ts +0 -19
  220. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-header.ts +0 -19
  221. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-overlay.ts +0 -23
  222. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog-title.ts +0 -19
  223. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.service.ts +0 -59
  224. package/generic/dialog/libs/ui-dialog-helm/src/lib/hlm-dialog.ts +0 -31
  225. package/generic/dialog/ng-package.json +0 -1
  226. package/generic/dialog/public-api.ts +0 -7
  227. package/generic/dialog/tsconfig.json +0 -7
  228. package/generic/dialog/ui/dialog-close-button/dialog-close-button.component.css +0 -0
  229. package/generic/dialog/ui/dialog-close-button/dialog-close-button.component.html +0 -1
  230. package/generic/dialog/ui/dialog-close-button/dialog-close-button.component.ts +0 -17
  231. package/generic/dialog/ui/dialog-footer/dialog-footer.component.css +0 -0
  232. package/generic/dialog/ui/dialog-footer/dialog-footer.component.html +0 -3
  233. package/generic/dialog/ui/dialog-footer/dialog-footer.component.ts +0 -11
  234. package/generic/dialog/ui/dialog-header/dialog-header.component.css +0 -0
  235. package/generic/dialog/ui/dialog-header/dialog-header.component.html +0 -8
  236. package/generic/dialog/ui/dialog-header/dialog-header.component.ts +0 -18
  237. package/generic/drawer/drawer.component.html +0 -1
  238. package/generic/drawer/drawer.component.ts +0 -8
  239. package/generic/drawer/drawer.service.ts +0 -8
  240. package/generic/drawer/drawer.stories.ts +0 -31
  241. package/generic/drawer/index.ts +0 -1
  242. package/generic/drawer/ng-package.json +0 -1
  243. package/generic/drawer/public-api.ts +0 -6
  244. package/generic/icon/icon.component.css +0 -7
  245. package/generic/icon/icon.component.html +0 -3
  246. package/generic/icon/icon.component.ts +0 -86
  247. package/generic/icon/icon.stories.ts +0 -16
  248. package/generic/icon/index.ts +0 -1
  249. package/generic/icon/lib/ui-icon-helm/src/index.ts +0 -11
  250. package/generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.token.ts +0 -20
  251. package/generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.ts +0 -36
  252. package/generic/icon/ng-package.json +0 -1
  253. package/generic/icon/public-api.ts +0 -6
  254. package/generic/icon/tsconfig.json +0 -7
  255. package/generic/index.ts +0 -1
  256. package/generic/select/index.ts +0 -1
  257. package/generic/select/lib/hlm-select-content.ts +0 -29
  258. package/generic/select/lib/hlm-select-group.ts +0 -17
  259. package/generic/select/lib/hlm-select-label.ts +0 -26
  260. package/generic/select/lib/hlm-select-option.ts +0 -37
  261. package/generic/select/lib/hlm-select-scroll-down.ts +0 -24
  262. package/generic/select/lib/hlm-select-scroll-up.ts +0 -23
  263. package/generic/select/lib/hlm-select-trigger.ts +0 -53
  264. package/generic/select/lib/hlm-select-value.ts +0 -17
  265. package/generic/select/lib/hlm-select.ts +0 -15
  266. package/generic/select/lib/index.ts +0 -38
  267. package/generic/select/ng-package.json +0 -1
  268. package/generic/select/public-api.ts +0 -3
  269. package/generic/select/select.component.css +0 -65
  270. package/generic/select/select.component.html +0 -19
  271. package/generic/select/select.component.ts +0 -25
  272. package/generic/select/types.ts +0 -4
  273. package/ng-package.json +0 -10
  274. package/public/3ddv-logo.jpg +0 -0
  275. package/public/neighbours-after.png +0 -0
  276. package/public/neighbours-before.png +0 -0
  277. package/shared/apply-theme-variables/apply-theme-variables.ts +0 -35
  278. package/shared/apply-theme-variables/index.ts +0 -1
  279. package/shared/format-value.pipe.ts +0 -23
  280. package/shared/index.ts +0 -1
  281. package/shared/lib-provider/config-token.ts +0 -4
  282. package/shared/lib-provider/index.ts +0 -1
  283. package/shared/lib-provider/provide-sdc.ts +0 -24
  284. package/shared/lib-provider/public-api.ts +0 -1
  285. package/shared/ng-package.json +0 -1
  286. package/shared/public-api.ts +0 -6
  287. package/shared/screen-observer/index.ts +0 -2
  288. package/shared/screen-observer/provide-screen-observer.ts +0 -17
  289. package/shared/screen-observer/screen-observer.ts +0 -56
  290. package/shared/screen-observer/sizable-base.ts +0 -70
  291. package/shared/theme-provider/generic-theme.ts +0 -1
  292. package/shared/theme-provider/index.ts +0 -1
  293. package/shared/theme-provider/public-api.ts +0 -1
  294. package/shared/theme-provider/theme-provider.directive.ts +0 -17
  295. package/shared/themes/sdc.css +0 -153
  296. package/shared/types.ts +0 -18
  297. package/src/private-exports.ts +0 -1
  298. package/src/public-api.ts +0 -20
  299. package/tsconfig.json +0 -50
  300. package/tsconfig.lib.prod.json +0 -6
  301. package/tsconfig.spec.json +0 -15
  302. package/tsconfig.temp.json +0 -1
  303. package/utils/index.ts +0 -1
  304. package/utils/ng-package.json +0 -1
  305. package/utils/public-api.ts +0 -1
  306. package/utils/validate-styles-for-component.ts +0 -39
  307. /package/{dist/README.md → README.md} +0 -0
  308. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-checkbox.mjs +0 -0
  309. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-checkbox.mjs.map +0 -0
  310. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-datepicker.mjs +0 -0
  311. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-datepicker.mjs.map +0 -0
  312. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-input.mjs +0 -0
  313. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-input.mjs.map +0 -0
  314. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-radio.mjs +0 -0
  315. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-radio.mjs.map +0 -0
  316. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-table.mjs +0 -0
  317. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-backoffice-table.mjs.map +0 -0
  318. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-cart-item.mjs +0 -0
  319. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-cart-item.mjs.map +0 -0
  320. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-cart.mjs +0 -0
  321. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-cart.mjs.map +0 -0
  322. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-legend.mjs +0 -0
  323. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-legend.mjs.map +0 -0
  324. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-loader.mjs +0 -0
  325. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-loader.mjs.map +0 -0
  326. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-map-loader.mjs +0 -0
  327. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-map-loader.mjs.map +0 -0
  328. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-neighbors.mjs +0 -0
  329. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-neighbors.mjs.map +0 -0
  330. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-popover.mjs +0 -0
  331. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-popover.mjs.map +0 -0
  332. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-stepper.mjs +0 -0
  333. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-stepper.mjs.map +0 -0
  334. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-ticket-info-item.mjs +0 -0
  335. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-dvm-ticket-info-item.mjs.map +0 -0
  336. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-add-digital-wallet.mjs +0 -0
  337. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-add-digital-wallet.mjs.map +0 -0
  338. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-braintree.mjs +0 -0
  339. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-braintree.mjs.map +0 -0
  340. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-button.mjs +0 -0
  341. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-button.mjs.map +0 -0
  342. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-dialog.mjs +0 -0
  343. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-dialog.mjs.map +0 -0
  344. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-drawer.mjs +0 -0
  345. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-drawer.mjs.map +0 -0
  346. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-icon.mjs +0 -0
  347. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-icon.mjs.map +0 -0
  348. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-select.mjs +0 -0
  349. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-generic-select.mjs.map +0 -0
  350. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-shared.mjs +0 -0
  351. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-shared.mjs.map +0 -0
  352. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-utils.mjs +0 -0
  353. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components-utils.mjs.map +0 -0
  354. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components.mjs +0 -0
  355. /package/{dist/fesm2022 → fesm2022}/3ddv-software-division-components.mjs.map +0 -0
  356. /package/{dist/types → types}/3ddv-software-division-components-backoffice-checkbox.d.ts +0 -0
  357. /package/{dist/types → types}/3ddv-software-division-components-backoffice-datepicker.d.ts +0 -0
  358. /package/{dist/types → types}/3ddv-software-division-components-backoffice-input.d.ts +0 -0
  359. /package/{dist/types → types}/3ddv-software-division-components-backoffice-radio.d.ts +0 -0
  360. /package/{dist/types → types}/3ddv-software-division-components-backoffice-table.d.ts +0 -0
  361. /package/{dist/types → types}/3ddv-software-division-components-dvm-cart-item.d.ts +0 -0
  362. /package/{dist/types → types}/3ddv-software-division-components-dvm-cart.d.ts +0 -0
  363. /package/{dist/types → types}/3ddv-software-division-components-dvm-legend.d.ts +0 -0
  364. /package/{dist/types → types}/3ddv-software-division-components-dvm-loader.d.ts +0 -0
  365. /package/{dist/types → types}/3ddv-software-division-components-dvm-map-loader.d.ts +0 -0
  366. /package/{dist/types → types}/3ddv-software-division-components-dvm-neighbors.d.ts +0 -0
  367. /package/{dist/types → types}/3ddv-software-division-components-dvm-popover.d.ts +0 -0
  368. /package/{dist/types → types}/3ddv-software-division-components-dvm-stepper.d.ts +0 -0
  369. /package/{dist/types → types}/3ddv-software-division-components-dvm-ticket-info-item.d.ts +0 -0
  370. /package/{dist/types → types}/3ddv-software-division-components-generic-add-digital-wallet.d.ts +0 -0
  371. /package/{dist/types → types}/3ddv-software-division-components-generic-braintree.d.ts +0 -0
  372. /package/{dist/types → types}/3ddv-software-division-components-generic-button.d.ts +0 -0
  373. /package/{dist/types → types}/3ddv-software-division-components-generic-dialog.d.ts +0 -0
  374. /package/{dist/types → types}/3ddv-software-division-components-generic-drawer.d.ts +0 -0
  375. /package/{dist/types → types}/3ddv-software-division-components-generic-icon.d.ts +0 -0
  376. /package/{dist/types → types}/3ddv-software-division-components-generic-select.d.ts +0 -0
  377. /package/{dist/types → types}/3ddv-software-division-components-shared.d.ts +0 -0
  378. /package/{dist/types → types}/3ddv-software-division-components-utils.d.ts +0 -0
  379. /package/{dist/types → types}/3ddv-software-division-components.d.ts +0 -0
@@ -1,873 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/angular';
2
- import { applicationConfig, moduleMetadata } from '@storybook/angular';
3
- import { provideHttpClient } from '@angular/common/http';
4
- import { of } from 'rxjs';
5
- import { PopoverComponent } from './popover.component';
6
- import { PopoverService, type PopoverContentProjection } from './popover.service';
7
- import { AppNodes, SeatPopoverData, SectionPopoverData, IThumbnailProvider } from './types';
8
- import { Component, inject, input, signal } from '@angular/core';
9
- import { CONFIGURATION_SERVICE, DVM_FORMATTER, DVM_SERVICE, THUMBNAIL_PROVIDER } from './popover.config';
10
- import type { IConfigurationService, IDvmFormatter, IDvmService } from './popover.config';
11
- import type { MapViewerNode } from '@3ddv/dvm-internal';
12
- import { SeatPopoverComponent } from './seat-popover/seat-popover.component';
13
- import { SectionPopoverComponent } from './section-popover/section-popover.component';
14
-
15
- // Mock services
16
- const mockConfigurationService: IConfigurationService = {
17
- configuration: {
18
- dvmData: {
19
- venueId: 'venue-123',
20
- },
21
- },
22
- };
23
-
24
- const mockDvmFormatter: IDvmFormatter = {
25
- transform: (value: string) => {
26
- // Simulate formatting logic - split by dashes and spaces
27
- return value ? value.replace(/-/g, ' ').toUpperCase() : '';
28
- },
29
- };
30
-
31
- const mockViewer3dService = {
32
- isInitialized: () => true,
33
- getThumbnail: () => of('https://via.placeholder.com/275x124/1a1a1a/ffffff?text=Thumbnail'),
34
- };
35
-
36
- const mockDvmService: IDvmService = {
37
- viewer3dService: mockViewer3dService as any,
38
- viewerService: mockViewer3dService as any,
39
- };
40
-
41
- const mockThumbnailProvider: IThumbnailProvider = {
42
- getThumbnail: (nodeId: string) => of(`https://via.placeholder.com/275x124/1a1a1a/ffffff?text=Thumbnail+${nodeId}`),
43
- };
44
-
45
- // Mock node data
46
- const createMockNode = (id: string, type: AppNodes): MapViewerNode =>
47
- ({
48
- id,
49
- type,
50
- // Add other required properties as needed
51
- }) as MapViewerNode;
52
-
53
- // Wrapper component for service injection
54
- @Component({
55
- selector: 'storybook-wrapper',
56
- template: `
57
- <div
58
- style="padding: 2rem; background: #f5f5f5; min-height: 400px; display: flex; align-items: center; justify-content: center; position: relative;">
59
- <div style="text-align: center;">
60
- <p style="margin-bottom: 1rem; color: #666;">
61
- Click the button to create a popover with service-based content projection
62
- </p>
63
- <button
64
- (click)="createPopoverWithContent()"
65
- style="background: #007bff; color: white; border: none; padding: 0.5rem 1rem; border-radius: 4px; cursor: pointer;">
66
- Create Service Popover
67
- </button>
68
- </div>
69
- </div>
70
- `,
71
- standalone: true,
72
- imports: [],
73
- })
74
- class StorybookWrapperComponent {
75
- private readonly popoverService = inject(PopoverService);
76
-
77
- createPopoverWithContent(): void {
78
- const referenceElement = document.createElement('div');
79
- referenceElement.style.position = 'absolute';
80
- referenceElement.style.top = '50%';
81
- referenceElement.style.left = '50%';
82
- referenceElement.style.width = '20px';
83
- referenceElement.style.height = '20px';
84
- referenceElement.style.background = 'red';
85
- document.body.appendChild(referenceElement);
86
-
87
- const contentProjection: PopoverContentProjection = {
88
- thumbnail:
89
- '<div style="width: 100%; height: 124px; background: linear-gradient(45deg, #667eea 0%, #764ba2 100%); display: flex; align-items: center; justify-content: center; color: white; font-weight: bold;">SERVICE THUMBNAIL</div>',
90
- content:
91
- '<div style="text-align: center; padding: 0.5rem;"><h4 style="color: #fff; margin: 0 0 0.5rem 0; font-size: 0.875rem;">SERVICE CONTENT</h4><p style="color: #ccc; margin: 0; font-size: 0.75rem;">Created via PopoverService</p></div>',
92
- price:
93
- '<div style="text-align: center; padding: 0.5rem;"><span style="color: #f39c12; font-size: 0.75rem; font-weight: bold;">SERVICE PRICE</span><div style="color: #fff; font-size: 1rem; font-weight: bold;">$199.99</div></div>',
94
- };
95
-
96
- const mockNode = createMockNode('section-service-row-3-seat-20', AppNodes.Seat);
97
-
98
- // Use the same providers as defined in the story decorators
99
- const customProviders = [
100
- { provide: CONFIGURATION_SERVICE, useValue: mockConfigurationService },
101
- { provide: DVM_FORMATTER, useValue: mockDvmFormatter },
102
- { provide: DVM_SERVICE, useValue: mockDvmService },
103
- ];
104
-
105
- const popoverInstance = this.popoverService.createPopoverComponentWithContent(
106
- 'service-popover',
107
- referenceElement,
108
- PopoverComponent,
109
- { node: mockNode }, // Wrap mockNode with signal()
110
- contentProjection,
111
- {}, // default options
112
- { providers: customProviders }
113
- );
114
-
115
- // Clean up after 5 seconds
116
- setTimeout(() => {
117
- this.popoverService.destroyPopover('service-popover');
118
- document.body.removeChild(referenceElement);
119
- }, 5000);
120
- }
121
- }
122
-
123
- const meta: Meta<PopoverComponent> = {
124
- title: 'Dvm/Popover',
125
- component: PopoverComponent,
126
- id: 'Popover',
127
- decorators: [
128
- moduleMetadata({
129
- imports: [PopoverComponent, StorybookWrapperComponent],
130
- providers: [
131
- { provide: CONFIGURATION_SERVICE, useValue: mockConfigurationService },
132
- { provide: DVM_FORMATTER, useValue: mockDvmFormatter },
133
- { provide: DVM_SERVICE, useValue: mockDvmService },
134
- ],
135
- }),
136
- applicationConfig({
137
- providers: [provideHttpClient()],
138
- }),
139
- ],
140
- argTypes: {
141
- node: {
142
- control: 'object',
143
- description: 'The node to attach the popover to',
144
- table: {
145
- type: { summary: 'MapViewerNode' },
146
- },
147
- },
148
- theme: {
149
- control: 'select',
150
- options: ['theme-sdc', 'theme-backoffice'],
151
- description: 'Theme class to apply to the popover component',
152
- table: {
153
- type: { summary: 'ThemeClass' },
154
- },
155
- },
156
- },
157
- parameters: {
158
- docs: {
159
- description: {
160
- component:
161
- 'A popover component for displaying venue map information with thumbnails, seat details, and pricing.',
162
- },
163
- },
164
- },
165
- };
166
-
167
- export default meta;
168
-
169
- type Story = StoryObj<PopoverComponent>;
170
-
171
- export const Default: Story = {
172
- args: {
173
- node: createMockNode('section-a-1-15', AppNodes.Seat),
174
- theme: 'theme-sdc',
175
- },
176
- render: args => ({
177
- props: {
178
- ...args,
179
- onLoad3dView: (event: { node: any; section: string }) => {
180
- console.log('3D View requested:', event);
181
- alert(`Loading 3D view for section: ${event.section}`);
182
- },
183
- onSelectSectionForBA: (event: { node: any; section: string; selected: boolean }) => {
184
- console.log('Section selection changed:', event);
185
- alert(`Section ${event.section} ${event.selected ? 'selected' : 'deselected'} for best available`);
186
- },
187
- onOpenSeatMap: (event: { node: any; section: string }) => {
188
- console.log('Seat map requested:', event);
189
- alert(`Opening seat map for section: ${event.section}`);
190
- },
191
- },
192
- template: `
193
- <div style="padding: 2rem; background: #f5f5f5; min-height: 400px; display: flex; align-items: center; justify-content: center;">
194
- <sdc-map-popover
195
- [node]="node"
196
- [theme]="theme"
197
- (load3dView)="onLoad3dView($event)"
198
- (selectSectionForBA)="onSelectSectionForBA($event)"
199
- (openSeatMap)="onOpenSeatMap($event)">
200
- </sdc-map-popover>
201
- </div>
202
- `,
203
- }),
204
- };
205
-
206
- export const SectionNode: Story = {
207
- args: {
208
- node: createMockNode('section-b', AppNodes.Section),
209
- theme: 'theme-sdc',
210
- },
211
- render: args => ({
212
- props: {
213
- ...args,
214
- onLoad3dView: (event: { node: any; section: string }) => {
215
- console.log('3D View requested:', event);
216
- alert(`Loading 3D view for section: ${event.section}`);
217
- },
218
- onSelectSectionForBA: (event: { node: any; section: string; selected: boolean }) => {
219
- console.log('Section selection changed:', event);
220
- alert(`Section ${event.section} ${event.selected ? 'selected' : 'deselected'} for best available`);
221
- },
222
- onOpenSeatMap: (event: { node: any; section: string }) => {
223
- console.log('Seat map requested:', event);
224
- alert(`Opening seat map for section: ${event.section}`);
225
- },
226
- },
227
- template: `
228
- <div style="padding: 2rem; background: #f5f5f5; min-height: 400px; display: flex; align-items: center; justify-content: center;">
229
- <sdc-map-popover
230
- [node]="node"
231
- [theme]="theme"
232
- (load3dView)="onLoad3dView($event)"
233
- (selectSectionForBA)="onSelectSectionForBA($event)"
234
- (openSeatMap)="onOpenSeatMap($event)">
235
- </sdc-map-popover>
236
- </div>
237
- `,
238
- }),
239
- };
240
-
241
- export const RowNode: Story = {
242
- args: {
243
- node: createMockNode('section-c-row-5', AppNodes.Row),
244
- theme: 'theme-sdc',
245
- },
246
- render: args => ({
247
- props: args,
248
- template: `
249
- <div style="padding: 2rem; background: #f5f5f5; min-height: 400px; display: flex; align-items: center; justify-content: center;">
250
- <sdc-map-popover
251
- [node]="node"
252
- [theme]="theme">
253
- </sdc-map-popover>
254
- </div>
255
- `,
256
- }),
257
- };
258
-
259
- export const SeatNode: Story = {
260
- args: {
261
- node: createMockNode('section-d-row-3-seat-12', AppNodes.Seat),
262
- theme: 'theme-sdc',
263
- },
264
- render: args => ({
265
- props: args,
266
- template: `
267
- <div style="padding: 2rem; background: #f5f5f5; min-height: 400px; display: flex; align-items: center; justify-content: center;">
268
- <sdc-map-popover
269
- [node]="node"
270
- [theme]="theme">
271
- </sdc-map-popover>
272
- </div>
273
- `,
274
- }),
275
- };
276
-
277
- export const VIPNode: Story = {
278
- args: {
279
- node: createMockNode('vip-lounge-1-5', AppNodes.Vip),
280
- theme: 'theme-sdc',
281
- },
282
- render: args => ({
283
- props: args,
284
- template: `
285
- <div style="padding: 2rem; background: #f5f5f5; min-height: 400px; display: flex; align-items: center; justify-content: center;">
286
- <sdc-map-popover
287
- [node]="node"
288
- [theme]="theme">
289
- </sdc-map-popover>
290
- </div>
291
- `,
292
- }),
293
- };
294
-
295
- export const GeneralAdmissionNode: Story = {
296
- args: {
297
- node: createMockNode('ga-floor-1', AppNodes.Ga),
298
- theme: 'theme-sdc',
299
- },
300
- render: args => ({
301
- props: args,
302
- template: `
303
- <div style="padding: 2rem; background: #f5f5f5; min-height: 400px; display: flex; align-items: center; justify-content: center;">
304
- <sdc-map-popover
305
- [node]="node"
306
- [theme]="theme">
307
- </sdc-map-popover>
308
- </div>
309
- `,
310
- }),
311
- };
312
-
313
- export const LoadingState: Story = {
314
- args: {
315
- node: createMockNode('section-e-row-2-seat-8', AppNodes.Seat),
316
- theme: 'theme-sdc',
317
- },
318
- decorators: [
319
- moduleMetadata({
320
- imports: [PopoverComponent],
321
- providers: [
322
- { provide: CONFIGURATION_SERVICE, useValue: mockConfigurationService },
323
- { provide: DVM_FORMATTER, useValue: mockDvmFormatter },
324
- {
325
- provide: DVM_SERVICE,
326
- useValue: {
327
- viewer3dService: {
328
- isInitialized: () => false,
329
- getThumbnail: () => of(''),
330
- },
331
- },
332
- },
333
- ],
334
- }),
335
- applicationConfig({
336
- providers: [provideHttpClient()],
337
- }),
338
- ],
339
- render: args => ({
340
- props: args,
341
- template: `
342
- <div style="padding: 2rem; background: #f5f5f5; min-height: 400px; display: flex; align-items: center; justify-content: center;">
343
- <sdc-map-popover
344
- [node]="node"
345
- [theme]="theme">
346
- </sdc-map-popover>
347
- </div>
348
- `,
349
- }),
350
- };
351
-
352
- export const WithPrice: Story = {
353
- args: {
354
- node: createMockNode('section-f-row-1-seat-25', AppNodes.Seat),
355
- theme: 'theme-sdc',
356
- },
357
- decorators: [
358
- moduleMetadata({
359
- imports: [PopoverComponent],
360
- providers: [
361
- { provide: CONFIGURATION_SERVICE, useValue: mockConfigurationService },
362
- { provide: DVM_FORMATTER, useValue: mockDvmFormatter },
363
- {
364
- provide: DVM_SERVICE,
365
- useValue: {
366
- viewer3dService: {
367
- isInitialized: () => true,
368
- getThumbnail: () => of('https://via.placeholder.com/275x124/1a1a1a/ffffff?text=Premium+Seat'),
369
- },
370
- },
371
- },
372
- ],
373
- }),
374
- applicationConfig({
375
- providers: [provideHttpClient()],
376
- }),
377
- ],
378
- render: args => ({
379
- props: args,
380
- template: `
381
- <div style="padding: 2rem; background: #f5f5f5; min-height: 400px; display: flex; align-items: center; justify-content: center;">
382
- <sdc-map-popover
383
- [node]="node"
384
- [theme]="theme">
385
- </sdc-map-popover>
386
- </div>
387
- `,
388
- }),
389
- };
390
-
391
- export const BackofficeTheme: Story = {
392
- args: {
393
- node: createMockNode('section-g-row-4-seat-10', AppNodes.Seat),
394
- theme: 'theme-backoffice',
395
- },
396
- render: args => ({
397
- props: args,
398
- template: `
399
- <div style="padding: 2rem; background: #f5f5f5; min-height: 400px; display: flex; align-items: center; justify-content: center;">
400
- <sdc-map-popover
401
- [node]="node"
402
- [theme]="theme">
403
- </sdc-map-popover>
404
- </div>
405
- `,
406
- }),
407
- };
408
-
409
- export const AllNodeTypes: Story = {
410
- args: {
411
- theme: 'theme-sdc',
412
- },
413
- render: args => ({
414
- props: {
415
- ...args,
416
- sectionNode: createMockNode('section-a', AppNodes.Section),
417
- rowNode: createMockNode('section-b-row-3', AppNodes.Row),
418
- seatNode: createMockNode('section-c-row-2-seat-15', AppNodes.Seat),
419
- vipNode: createMockNode('vip-premium-1-8', AppNodes.Vip),
420
- gaNode: createMockNode('ga-standing-1', AppNodes.Ga),
421
- },
422
- template: `
423
- <div style="padding: 2rem; background: #f5f5f5; min-height: 600px;">
424
- <h3 style="margin-bottom: 2rem; text-align: center;">All Node Types</h3>
425
- <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 2rem; justify-items: center;">
426
- <div style="text-align: center;">
427
- <h4 style="margin-bottom: 1rem;">Section</h4>
428
- <sdc-map-popover [node]="sectionNode" [theme]="theme"></sdc-map-popover>
429
- </div>
430
- <div style="text-align: center;">
431
- <h4 style="margin-bottom: 1rem;">Row</h4>
432
- <sdc-map-popover [node]="rowNode" [theme]="theme"></sdc-map-popover>
433
- </div>
434
- <div style="text-align: center;">
435
- <h4 style="margin-bottom: 1rem;">Seat</h4>
436
- <sdc-map-popover [node]="seatNode" [theme]="theme"></sdc-map-popover>
437
- </div>
438
- <div style="text-align: center;">
439
- <h4 style="margin-bottom: 1rem;">VIP</h4>
440
- <sdc-map-popover [node]="vipNode" [theme]="theme"></sdc-map-popover>
441
- </div>
442
- <div style="text-align: center;">
443
- <h4 style="margin-bottom: 1rem;">General Admission</h4>
444
- <sdc-map-popover [node]="gaNode" [theme]="theme"></sdc-map-popover>
445
- </div>
446
- </div>
447
- </div>
448
- `,
449
- }),
450
- };
451
-
452
- export const Interactive: Story = {
453
- args: {
454
- node: createMockNode('section-h-row-5-seat-20', AppNodes.Seat),
455
- theme: 'theme-sdc',
456
- },
457
- render: args => ({
458
- props: args,
459
- template: `
460
- <div style="padding: 2rem; background: #f5f5f5; min-height: 400px; display: flex; align-items: center; justify-content: center;">
461
- <div style="text-align: center;">
462
- <p style="margin-bottom: 1rem; color: #666;">Hover over the popover to see interaction effects</p>
463
- <sdc-map-popover
464
- [node]="node"
465
- [theme]="theme"
466
- (mouseenter)="onEnter($event)"
467
- (mouseleave)="onLeave($event)">
468
- </sdc-map-popover>
469
- </div>
470
- </div>
471
- `,
472
- methods: {
473
- onEnter: (event: MouseEvent) => {
474
- console.log('Mouse entered popover', event);
475
- },
476
- onLeave: (event: MouseEvent) => {
477
- console.log('Mouse left popover', event);
478
- },
479
- },
480
- }),
481
- };
482
-
483
- export const CustomContent: Story = {
484
- args: {
485
- node: createMockNode('section-i-row-3-seat-15', AppNodes.Seat),
486
- theme: 'theme-sdc',
487
- },
488
- render: args => ({
489
- props: args,
490
- template: `
491
- <div style="padding: 2rem; background: #f5f5f5; min-height: 400px; display: flex; align-items: center; justify-content: center;">
492
- <sdc-map-popover [node]="node" [theme]="theme">
493
- <div slot="content" style="text-align: center; padding: 0.5rem;">
494
- <h4 style="color: #fff; margin: 0 0 0.5rem 0; font-size: 0.875rem;">PREMIUM SEAT</h4>
495
- <p style="color: #ccc; margin: 0; font-size: 0.75rem;">VIP Experience</p>
496
- <div style="margin-top: 0.5rem;">
497
- <span style="background: #f39c12; color: #000; padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.75rem; font-weight: bold;">EXCLUSIVE</span>
498
- </div>
499
- </div>
500
- </sdc-map-popover>
501
- </div>
502
- `,
503
- }),
504
- };
505
-
506
- export const CustomThumbnail: Story = {
507
- args: {
508
- node: createMockNode('section-j-row-2-seat-8', AppNodes.Seat),
509
- theme: 'theme-sdc',
510
- },
511
- render: args => ({
512
- props: args,
513
- template: `
514
- <div style="padding: 2rem; background: #f5f5f5; min-height: 400px; display: flex; align-items: center; justify-content: center;">
515
- <sdc-map-popover [node]="node" [theme]="theme">
516
- <div slot="thumbnail" style="width: 100%; height: 124px; background: linear-gradient(45deg, #667eea 0%, #764ba2 100%); display: flex; align-items: center; justify-content: center; color: white; font-weight: bold; font-size: 1.2rem;">
517
- CUSTOM VIEW
518
- </div>
519
- </sdc-map-popover>
520
- </div>
521
- `,
522
- }),
523
- };
524
-
525
- export const CustomPrice: Story = {
526
- args: {
527
- node: createMockNode('section-k-row-4-seat-12', AppNodes.Seat),
528
- theme: 'theme-sdc',
529
- },
530
- render: args => ({
531
- props: args,
532
- template: `
533
- <div style="padding: 2rem; background: #f5f5f5; min-height: 400px; display: flex; align-items: center; justify-content: center;">
534
- <sdc-map-popover [node]="node" [theme]="theme">
535
- <div slot="price" style="text-align: center; padding: 0.5rem;">
536
- <div style="display: flex; flex-direction: column; gap: 0.25rem;">
537
- <span style="color: #f39c12; font-size: 0.75rem; font-weight: bold;">SPECIAL OFFER</span>
538
- <span style="color: #fff; font-size: 1rem; font-weight: bold;">$99.99</span>
539
- <span style="color: #ccc; font-size: 0.625rem; text-decoration: line-through;">$149.99</span>
540
- </div>
541
- </div>
542
- </sdc-map-popover>
543
- </div>
544
- `,
545
- }),
546
- };
547
-
548
- export const FullyCustom: Story = {
549
- args: {
550
- node: createMockNode('section-l-row-1-seat-5', AppNodes.Seat),
551
- theme: 'theme-sdc',
552
- },
553
- render: args => ({
554
- props: args,
555
- template: `
556
- <div style="padding: 2rem; background: #f5f5f5; min-height: 400px; display: flex; align-items: center; justify-content: center;">
557
- <sdc-map-popover [node]="node" [theme]="theme">
558
- <div slot="thumbnail" style="width: 100%; height: 124px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); display: flex; align-items: center; justify-content: center; color: white; font-weight: bold; font-size: 1.1rem; position: relative;">
559
- <div style="position: absolute; top: 0.5rem; right: 0.5rem; background: #e74c3c; color: white; padding: 0.25rem 0.5rem; border-radius: 4px; font-size: 0.625rem; font-weight: bold;">HOT</div>
560
- PREMIUM VIEW
561
- </div>
562
- <div slot="content" style="text-align: center; padding: 0.75rem;">
563
- <h3 style="color: #f39c12; margin: 0 0 0.5rem 0; font-size: 1rem; font-weight: bold;">VIP SECTION</h3>
564
- <p style="color: #ecf0f1; margin: 0.25rem 0; font-size: 0.875rem;">Row A • Seat 5</p>
565
- <div style="margin: 0.5rem 0;">
566
- <span style="background: #3498db; color: #fff; padding: 0.125rem 0.375rem; border-radius: 12px; font-size: 0.625rem; font-weight: 500; margin: 0 0.125rem;">VIP Access</span>
567
- <span style="background: #e74c3c; color: #fff; padding: 0.125rem 0.375rem; border-radius: 12px; font-size: 0.625rem; font-weight: 500; margin: 0 0.125rem;">Premium View</span>
568
- </div>
569
- </div>
570
- <div slot="price" style="text-align: center; padding: 0.75rem;">
571
- <div style="display: flex; flex-direction: column; gap: 0.25rem;">
572
- <span style="color: #f39c12; font-size: 0.75rem; font-weight: bold;">EXCLUSIVE PRICING</span>
573
- <span style="color: #fff; font-size: 1.25rem; font-weight: bold;">$299.99</span>
574
- <span style="color: #95a5a6; font-size: 0.625rem;">All amenities included</span>
575
- </div>
576
- </div>
577
- </sdc-map-popover>
578
- </div>
579
- `,
580
- }),
581
- };
582
-
583
- export const ContentProjectionExamples: Story = {
584
- args: {
585
- theme: 'theme-sdc',
586
- },
587
- render: args => ({
588
- props: {
589
- ...args,
590
- defaultNode: createMockNode('section-default-row-1-seat-1', AppNodes.Seat),
591
- customContentNode: createMockNode('section-content-row-2-seat-2', AppNodes.Seat),
592
- customThumbnailNode: createMockNode('section-thumbnail-row-3-seat-3', AppNodes.Seat),
593
- customPriceNode: createMockNode('section-price-row-4-seat-4', AppNodes.Seat),
594
- fullyCustomNode: createMockNode('section-custom-row-5-seat-5', AppNodes.Seat),
595
- },
596
- template: `
597
- <div style="padding: 2rem; background: #f5f5f5; min-height: 600px;">
598
- <h3 style="margin-bottom: 2rem; text-align: center;">Content Projection Examples</h3>
599
- <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 2rem; justify-items: center;">
600
- <div style="text-align: center;">
601
- <h4 style="margin-bottom: 1rem;">Default</h4>
602
- <sdc-map-popover [node]="defaultNode" [theme]="theme"></sdc-map-popover>
603
- </div>
604
- <div style="text-align: center;">
605
- <h4 style="margin-bottom: 1rem;">Custom Content</h4>
606
- <sdc-map-popover [node]="customContentNode" [theme]="theme">
607
- <div slot="content" style="text-align: center; padding: 0.5rem;">
608
- <h4 style="color: #fff; margin: 0 0 0.5rem 0; font-size: 0.875rem;">CUSTOM</h4>
609
- <p style="color: #ccc; margin: 0; font-size: 0.75rem;">Custom Content</p>
610
- </div>
611
- </sdc-map-popover>
612
- </div>
613
- <div style="text-align: center;">
614
- <h4 style="margin-bottom: 1rem;">Custom Thumbnail</h4>
615
- <sdc-map-popover [node]="customThumbnailNode" [theme]="theme">
616
- <div slot="thumbnail" style="width: 100%; height: 124px; background: linear-gradient(45deg, #667eea 0%, #764ba2 100%); display: flex; align-items: center; justify-content: center; color: white; font-weight: bold;">
617
- CUSTOM
618
- </div>
619
- </sdc-map-popover>
620
- </div>
621
- <div style="text-align: center;">
622
- <h4 style="margin-bottom: 1rem;">Custom Price</h4>
623
- <sdc-map-popover [node]="customPriceNode" [theme]="theme">
624
- <div slot="price" style="text-align: center; padding: 0.5rem;">
625
- <span style="color: #f39c12; font-size: 0.75rem; font-weight: bold;">SPECIAL</span>
626
- <div style="color: #fff; font-size: 1rem; font-weight: bold;">$199.99</div>
627
- </div>
628
- </sdc-map-popover>
629
- </div>
630
- <div style="text-align: center;">
631
- <h4 style="margin-bottom: 1rem;">Fully Custom</h4>
632
- <sdc-map-popover [node]="fullyCustomNode" [theme]="theme">
633
- <div slot="thumbnail" style="width: 100%; height: 124px; background: linear-gradient(135deg, #e74c3c 0%, #c0392b 100%); display: flex; align-items: center; justify-content: center; color: white; font-weight: bold;">
634
- PREMIUM
635
- </div>
636
- <div slot="content" style="text-align: center; padding: 0.5rem;">
637
- <h4 style="color: #f39c12; margin: 0; font-size: 0.875rem;">VIP EXPERIENCE</h4>
638
- </div>
639
- <div slot="price" style="text-align: center; padding: 0.5rem;">
640
- <span style="color: #fff; font-size: 1rem; font-weight: bold;">$399.99</span>
641
- </div>
642
- </sdc-map-popover>
643
- </div>
644
- </div>
645
- </div>
646
- `,
647
- }),
648
- };
649
-
650
- export const ServiceContentProjection: Story = {
651
- args: {},
652
- decorators: [
653
- moduleMetadata({
654
- imports: [StorybookWrapperComponent],
655
- providers: [
656
- { provide: CONFIGURATION_SERVICE, useValue: mockConfigurationService },
657
- { provide: DVM_FORMATTER, useValue: mockDvmFormatter },
658
- { provide: DVM_SERVICE, useValue: mockDvmService },
659
- PopoverService,
660
- ],
661
- }),
662
- applicationConfig({
663
- providers: [provideHttpClient()],
664
- }),
665
- ],
666
- render: () => ({
667
- template: `<storybook-wrapper></storybook-wrapper>`,
668
- }),
669
- };
670
-
671
- // Seat Popover Stories
672
- export const seatPopoverMeta: Meta<SeatPopoverComponent> = {
673
- title: 'DVM/Popover/Seat Popover',
674
- component: SeatPopoverComponent,
675
- parameters: {
676
- layout: 'centered',
677
- },
678
- decorators: [
679
- moduleMetadata({
680
- imports: [SeatPopoverComponent],
681
- providers: [{ provide: THUMBNAIL_PROVIDER, useValue: mockThumbnailProvider }],
682
- }),
683
- ],
684
- argTypes: {
685
- data: {
686
- control: 'object',
687
- description: 'Seat popover data',
688
- },
689
- showLoader: {
690
- control: 'boolean',
691
- description: 'Whether to show loading spinner',
692
- },
693
- mouseEnter: {
694
- action: 'mouseEnter',
695
- description: 'Mouse enter event',
696
- },
697
- mouseLeave: {
698
- action: 'mouseLeave',
699
- description: 'Mouse leave event',
700
- },
701
- },
702
- };
703
- type SeatPopoverStory = StoryObj<SeatPopoverComponent>;
704
-
705
- export const SeatPopoverDefault: SeatPopoverStory = {
706
- args: {
707
- data: {
708
- id: 'seat-123',
709
- section: 'S_Section_A',
710
- row: '10',
711
- seat: 'S_Section_A-10-15',
712
- price: 75.0,
713
- thumbnail: 'https://via.placeholder.com/275x124/1a1a1a/ffffff?text=Seat+Thumbnail',
714
- },
715
- showLoader: true,
716
- },
717
- };
718
-
719
- export const SeatPopoverWithoutThumbnail: SeatPopoverStory = {
720
- args: {
721
- data: {
722
- id: 'seat-456',
723
- section: 'S_Section_B',
724
- row: '5',
725
- seat: 'S_Section_B-5-8',
726
- price: 95.0,
727
- },
728
- showLoader: true,
729
- },
730
- };
731
-
732
- export const SeatPopoverNoLoader: SeatPopoverStory = {
733
- args: {
734
- data: {
735
- id: 'seat-789',
736
- section: 'S_Section_C',
737
- row: '12',
738
- seat: 'S_Section_C-12-20',
739
- price: 65.0,
740
- },
741
- showLoader: false,
742
- },
743
- };
744
-
745
- // Section Popover Stories
746
- export const sectionPopoverMeta: Meta<SectionPopoverComponent> = {
747
- title: 'DVM/Popover/Section Popover',
748
- component: SectionPopoverComponent,
749
- parameters: {
750
- layout: 'centered',
751
- },
752
- decorators: [
753
- moduleMetadata({
754
- imports: [SectionPopoverComponent],
755
- providers: [{ provide: THUMBNAIL_PROVIDER, useValue: mockThumbnailProvider }],
756
- }),
757
- ],
758
- argTypes: {
759
- data: {
760
- control: 'object',
761
- description: 'Section popover data',
762
- },
763
- showLoader: {
764
- control: 'boolean',
765
- description: 'Whether to show loading spinner',
766
- },
767
- showBestAvailable: {
768
- control: 'boolean',
769
- description: 'Whether to show Best Available button',
770
- },
771
- showOpenSeatMap: {
772
- control: 'boolean',
773
- description: 'Whether to show Open Seat Map button',
774
- },
775
- excludeSeatMapSections: {
776
- control: 'object',
777
- description: 'Sections to exclude from seat map button',
778
- },
779
- mouseEnter: {
780
- action: 'mouseEnter',
781
- description: 'Mouse enter event',
782
- },
783
- mouseLeave: {
784
- action: 'mouseLeave',
785
- description: 'Mouse leave event',
786
- },
787
- load3dView: {
788
- action: 'load3dView',
789
- description: 'Load 3D view event',
790
- },
791
- selectForBA: {
792
- action: 'selectForBA',
793
- description: 'Select for Best Available event',
794
- },
795
- openSeatMap: {
796
- action: 'openSeatMap',
797
- description: 'Open seat map event',
798
- },
799
- },
800
- };
801
-
802
- type SectionPopoverStory = StoryObj<SectionPopoverComponent>;
803
-
804
- export const SectionPopoverDefault: SectionPopoverStory = {
805
- args: {
806
- data: {
807
- id: 'section-123',
808
- section: 'Section A',
809
- priceRange: { min: 75, max: 95 },
810
- availableQuantity: 25,
811
- adaQuantity: 3,
812
- thumbnail: 'https://via.placeholder.com/275x124/1a1a1a/ffffff?text=Section+Thumbnail',
813
- type: 'section',
814
- isSelectedForBA: false,
815
- },
816
- showLoader: true,
817
- showBestAvailable: true,
818
- showOpenSeatMap: true,
819
- excludeSeatMapSections: ['S_BLCHADA', 'S_Bleacher'],
820
- },
821
- };
822
-
823
- export const SectionPopoverWithBA: SectionPopoverStory = {
824
- args: {
825
- data: {
826
- id: 'section-456',
827
- section: 'Section B',
828
- priceRange: { min: 85, max: 85 },
829
- availableQuantity: 15,
830
- adaQuantity: 2,
831
- type: 'section',
832
- isSelectedForBA: true,
833
- },
834
- showLoader: true,
835
- showBestAvailable: true,
836
- showOpenSeatMap: true,
837
- },
838
- };
839
-
840
- export const SectionPopoverGeneralAdmission: SectionPopoverStory = {
841
- args: {
842
- data: {
843
- id: 'section-ga',
844
- section: 'S_Bleacher',
845
- priceRange: { min: 45, max: 45 },
846
- availableQuantity: 100,
847
- adaQuantity: 10,
848
- type: 'general_admission',
849
- isSelectedForBA: false,
850
- },
851
- showLoader: true,
852
- showBestAvailable: true,
853
- showOpenSeatMap: false,
854
- },
855
- };
856
-
857
- export const SectionPopoverExcludedSection: SectionPopoverStory = {
858
- args: {
859
- data: {
860
- id: 'section-excluded',
861
- section: 'S_BLCHADA',
862
- priceRange: { min: 35, max: 35 },
863
- availableQuantity: 50,
864
- adaQuantity: 5,
865
- type: 'section',
866
- isSelectedForBA: false,
867
- },
868
- showLoader: true,
869
- showBestAvailable: true,
870
- showOpenSeatMap: true,
871
- excludeSeatMapSections: ['S_BLCHADA', 'S_Bleacher'],
872
- },
873
- };