@globalpayments/vega 2.28.1 → 2.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. package/dist/cjs/{app-globals-512d84f4.js → app-globals-391d9a14.js} +9 -8
  2. package/dist/cjs/{array-6e559cde.js → array-5adef7b2.js} +13 -1
  3. package/dist/cjs/{child-nodes-event-prevent-slimmer-e383a914.js → child-nodes-event-prevent-slimmer-bed95a1b.js} +2 -2
  4. package/dist/cjs/{create-public-api-runtime-metrics-slimmer-7510221b.js → create-public-api-runtime-metrics-slimmer-5cc88124.js} +1 -0
  5. package/dist/cjs/{design-token-17b8e4d8.js → design-token-92906579.js} +1 -1
  6. package/dist/cjs/{element-appender-slimmer-bf5ecbd8.js → element-appender-slimmer-415d261a.js} +726 -537
  7. package/dist/cjs/{event-emit-slimmer-8f51adaa.js → event-emit-slimmer-b321e3f5.js} +1 -1
  8. package/dist/cjs/{feature-flag-controller-078da332.js → feature-flag-controller-f0619cc7.js} +5 -0
  9. package/dist/cjs/{form-field-controller-slimmer-223f8ee3.js → form-field-controller-slimmer-a4231b97.js} +6 -6
  10. package/dist/cjs/{icon-manager-5a2b67cf.js → icon-manager-3787af39.js} +1 -1
  11. package/dist/cjs/index-09acd3c9.js +8 -0
  12. package/dist/cjs/index-d6bf3435.js +15 -0
  13. package/dist/cjs/index.cjs.js +16 -15
  14. package/dist/cjs/{internal-icon-manager-858baff1.js → internal-icon-manager-2ff58050.js} +1 -1
  15. package/dist/cjs/{internal-vega-event-manager-627b1328.js → internal-vega-event-manager-9ffb3ed1.js} +13 -3
  16. package/dist/cjs/{internal-vega-z-index-manager-23051df4.js → internal-vega-z-index-manager-f03ddb37.js} +1 -1
  17. package/dist/cjs/{legend-input-processor-6ab8782a.js → legend-input-processor-d0b3f621.js} +1 -1
  18. package/dist/cjs/loader.cjs.js +15 -14
  19. package/dist/cjs/{min-number-rule-84f21ad9.js → min-number-rule-115c5a3b.js} +1 -1
  20. package/dist/cjs/{mutation-observer-filters-79b60f28.js → mutation-observer-filters-e5a7f85a.js} +1 -1
  21. package/dist/cjs/{number-459031f7.js → number-4816603d.js} +11 -0
  22. package/dist/cjs/{responsive-format-facade-7bc51a43.js → responsive-format-facade-ad2f67bf.js} +1 -1
  23. package/dist/cjs/{static-subject-title-3599787e.js → static-subject-title-471e1793.js} +2 -0
  24. package/dist/cjs/{style-formatter-a0829641.js → style-formatter-68f3a5f8.js} +1 -1
  25. package/dist/cjs/sub-state-notify-slimmer-c729699e.js +81 -0
  26. package/dist/cjs/{sub-state-observer-slimmer-36660092.js → sub-state-observer-slimmer-c1332b19.js} +3 -73
  27. package/dist/cjs/{translation-0dd74433.js → translation-42c1b2c8.js} +2 -2
  28. package/dist/cjs/{translation-slimmer-83577cfd.js → translation-slimmer-32aa13e7.js} +1 -1
  29. package/dist/cjs/{valid-credit-card-number-rule-8d8f04f1.js → valid-credit-card-number-rule-4a9ae5d9.js} +1 -1
  30. package/dist/cjs/vega-accordion.cjs.entry.js +10 -10
  31. package/dist/cjs/vega-app-header-button.cjs.entry.js +11 -11
  32. package/dist/cjs/vega-banner.cjs.entry.js +7 -7
  33. package/dist/cjs/vega-bar-chart.cjs.entry.js +4 -4
  34. package/dist/cjs/vega-box.cjs.entry.js +4 -4
  35. package/dist/cjs/vega-breadcrumb.cjs.entry.js +5 -5
  36. package/dist/cjs/vega-button-circle.cjs.entry.js +9 -9
  37. package/dist/cjs/vega-button-group_2.cjs.entry.js +11 -10
  38. package/dist/cjs/vega-button-link.cjs.entry.js +5 -5
  39. package/dist/cjs/vega-button.cjs.entry.js +8 -8
  40. package/dist/cjs/vega-calendar_3.cjs.entry.js +18 -17
  41. package/dist/cjs/vega-card.cjs.entry.js +3 -3
  42. package/dist/cjs/vega-carousel.cjs.entry.js +5 -5
  43. package/dist/cjs/vega-checkbox_2.cjs.entry.js +13 -13
  44. package/dist/cjs/vega-chip.cjs.entry.js +8 -8
  45. package/dist/cjs/vega-color-picker.cjs.entry.js +19 -13
  46. package/dist/cjs/vega-combo-box.cjs.entry.js +367 -183
  47. package/dist/cjs/vega-date-picker_2.cjs.entry.js +23 -20
  48. package/dist/cjs/{vega-dialog-controller-6a8525b3.js → vega-dialog-controller-dce8cdaf.js} +1 -1
  49. package/dist/cjs/vega-dialog_2.cjs.entry.js +9 -9
  50. package/dist/cjs/vega-divider.cjs.entry.js +3 -3
  51. package/dist/cjs/vega-dropdown_5.cjs.entry.js +47 -32
  52. package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
  53. package/dist/cjs/{vega-event-id-e40ac8f0.js → vega-event-id-419d36a8.js} +2 -0
  54. package/dist/cjs/vega-field-error.cjs.entry.js +1 -1
  55. package/dist/cjs/vega-field-label.cjs.entry.js +3 -3
  56. package/dist/cjs/vega-file-uploader.cjs.entry.js +14 -14
  57. package/dist/cjs/vega-flex.cjs.entry.js +5 -5
  58. package/dist/cjs/vega-font.cjs.entry.js +3 -3
  59. package/dist/cjs/vega-form.cjs.entry.js +13 -13
  60. package/dist/cjs/vega-grid.cjs.entry.js +3 -3
  61. package/dist/cjs/vega-icon.cjs.entry.js +5 -5
  62. package/dist/cjs/vega-image-uploader.cjs.entry.js +16 -16
  63. package/dist/cjs/vega-input-credit-card.cjs.entry.js +16 -16
  64. package/dist/cjs/vega-input-numeric.cjs.entry.js +410 -0
  65. package/dist/cjs/vega-input-phone-number.cjs.entry.js +15 -15
  66. package/dist/cjs/vega-input-range.cjs.entry.js +14 -14
  67. package/dist/cjs/vega-input-select.cjs.entry.js +30 -18
  68. package/dist/cjs/vega-input.cjs.entry.js +218 -25
  69. package/dist/cjs/{vega-internal-event-id-c98e9a7d.js → vega-internal-event-id-99cc22e1.js} +2 -0
  70. package/dist/cjs/vega-item-toggle.cjs.entry.js +3 -3
  71. package/dist/cjs/vega-left-nav_5.cjs.entry.js +13 -13
  72. package/dist/cjs/vega-line-chart.cjs.entry.js +4 -4
  73. package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +2 -2
  74. package/dist/cjs/vega-page-notification_2.cjs.entry.js +1 -1
  75. package/dist/cjs/vega-pagination.cjs.entry.js +12 -12
  76. package/dist/cjs/vega-pie-chart.cjs.entry.js +3 -3
  77. package/dist/cjs/vega-popover_2.cjs.entry.js +9 -9
  78. package/dist/cjs/vega-progress-tracker.cjs.entry.js +4 -4
  79. package/dist/cjs/vega-radio_2.cjs.entry.js +13 -13
  80. package/dist/cjs/vega-segment-control.cjs.entry.js +3 -3
  81. package/dist/cjs/vega-selection-chip_2.cjs.entry.js +19 -18
  82. package/dist/cjs/vega-selection-tile_2.cjs.entry.js +18 -17
  83. package/dist/cjs/vega-sidenav_3.cjs.entry.js +1006 -0
  84. package/dist/cjs/vega-signature-capture.cjs.entry.js +16 -16
  85. package/dist/cjs/{vega-skeleton-loader-controller-e886dc58.js → vega-skeleton-loader-controller-4a016b04.js} +4 -14
  86. package/dist/cjs/vega-stepper.cjs.entry.js +14 -14
  87. package/dist/cjs/vega-tab-group_2.cjs.entry.js +6 -6
  88. package/dist/cjs/vega-table_8.cjs.entry.js +29 -28
  89. package/dist/cjs/vega-textarea.cjs.entry.js +13 -13
  90. package/dist/cjs/vega-time-picker_2.cjs.entry.js +17 -17
  91. package/dist/cjs/vega-toggle-switch.cjs.entry.js +11 -11
  92. package/dist/cjs/vega-tooltip_2.cjs.entry.js +7 -7
  93. package/dist/cjs/vega.cjs.js +15 -14
  94. package/dist/cjs/{y-axis-input-processor-cc6e9196.js → y-axis-input-processor-a0df5e74.js} +2 -2
  95. package/dist/collection/collection-manifest.json +16 -0
  96. package/dist/collection/components/vega-color-picker/vega-color-picker.css +8 -8
  97. package/dist/collection/components/vega-color-picker/vega-color-picker.js +30 -3
  98. package/dist/collection/components/vega-combo-box/slimmers/controllers/vega-combo-box-keyboard-controller.js +114 -0
  99. package/dist/collection/components/vega-combo-box/slimmers/controllers/vega-combo-box-value-controller.js +23 -0
  100. package/dist/collection/components/vega-combo-box/slimmers/renderers/vega-combo-box-dropdown-renderer.js +147 -0
  101. package/dist/collection/components/vega-combo-box/slimmers/renderers/vega-combo-box-renderer.js +50 -0
  102. package/dist/collection/components/vega-combo-box/vega-combo-box.js +30 -177
  103. package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-element-appender-controller.js +2 -0
  104. package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-search-renderer.js +19 -5
  105. package/dist/collection/components/vega-dropdown/vega-dropdown.js +55 -9
  106. package/dist/collection/components/vega-input/slimmers/controllers/vega-input-compact-width-controller.js +118 -0
  107. package/dist/collection/components/vega-input/slimmers/controllers/vega-input-state-controller.js +46 -0
  108. package/dist/collection/components/vega-input/vega-input.css +104 -0
  109. package/dist/collection/components/vega-input/vega-input.js +44 -2
  110. package/dist/collection/components/vega-input-numeric/slimmers/controllers/vega-input-numeric-keyboard-controller.js +79 -0
  111. package/dist/collection/components/vega-input-numeric/slimmers/controllers/vega-input-numeric-value-controller.js +45 -0
  112. package/dist/collection/components/vega-input-numeric/slimmers/renderers/vega-input-numeric-renderer.js +72 -0
  113. package/dist/collection/components/vega-input-numeric/vega-input-numeric.css +9 -0
  114. package/dist/collection/components/vega-input-numeric/vega-input-numeric.js +606 -0
  115. package/dist/collection/components/vega-input-select/slimmers/controllers/vega-input-select-dropdown-controller.js +7 -1
  116. package/dist/collection/components/vega-input-select/vega-input-select.js +55 -2
  117. package/dist/collection/components/vega-sidenav/icons/chevron-right.js +4 -0
  118. package/dist/collection/components/vega-sidenav/icons/toggle-button-bg.js +3 -0
  119. package/dist/collection/components/vega-sidenav/slimmers/controllers/vega-sidenav-backdrop-controller.js +101 -0
  120. package/dist/collection/components/vega-sidenav/slimmers/controllers/vega-sidenav-open-status-controller.js +316 -0
  121. package/dist/collection/components/vega-sidenav/slimmers/renderers/vega-sidenav-collapse-button-renderer.js +79 -0
  122. package/dist/collection/components/vega-sidenav/test/test.helper.js +68 -0
  123. package/dist/collection/components/vega-sidenav/utils/index.js +9 -0
  124. package/dist/collection/components/vega-sidenav/vega-sidenav-group/slimmers/controllers/vega-sidenav-group-sub-state-controller.js +28 -0
  125. package/dist/collection/components/vega-sidenav/vega-sidenav-group/vega-sidenav-group.css +172 -0
  126. package/dist/collection/components/vega-sidenav/vega-sidenav-group/vega-sidenav-group.js +152 -0
  127. package/dist/collection/components/vega-sidenav/vega-sidenav-link/slimmers/controllers/vega-sidenav-link-sub-state.controller.js +28 -0
  128. package/dist/collection/components/vega-sidenav/vega-sidenav-link/vega-sidenav-link.css +136 -0
  129. package/dist/collection/components/vega-sidenav/vega-sidenav-link/vega-sidenav-link.js +264 -0
  130. package/dist/collection/components/vega-sidenav/vega-sidenav.css +300 -0
  131. package/dist/collection/components/vega-sidenav/vega-sidenav.js +422 -0
  132. package/dist/collection/constants/ui.js +1 -0
  133. package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +13 -3
  134. package/dist/collection/helpers/event-manager/event-id/vega-event-id.js +1 -0
  135. package/dist/collection/helpers/event-manager/event-id/vega-internal-event-id.js +1 -0
  136. package/dist/collection/helpers/event-manager/test/vega-event-manager.test.js +2 -1
  137. package/dist/collection/helpers/feature-control/feature-flags-map.js +5 -0
  138. package/dist/collection/helpers/slimmers/element-appender-container/body-positioned-wrapper/body-positioned-wrapper.abstract.js +13 -0
  139. package/dist/collection/helpers/slimmers/element-appender-container/{position-relative-to-wrapper.js → body-positioned-wrapper/position-relative-to-wrapper.js} +23 -21
  140. package/dist/collection/helpers/slimmers/element-appender-container/{vega-modal-wrapper.js → body-positioned-wrapper/vega-modal-wrapper.js} +18 -15
  141. package/dist/collection/helpers/slimmers/element-appender-container/{vega-popover-wrapper.js → body-positioned-wrapper/vega-popover-wrapper.js} +20 -19
  142. package/dist/collection/helpers/slimmers/element-appender-container/default-wrapper.js +19 -19
  143. package/dist/collection/helpers/slimmers/element-appender-container/element-appender-container-controller.js +3 -3
  144. package/dist/collection/helpers/slimmers/element-appender-slimmer.js +10 -0
  145. package/dist/collection/helpers/slimmers/position-calculation/base-position-calculation-strategy.js +345 -0
  146. package/dist/collection/helpers/slimmers/position-calculation/body-position-calculation-strategy.js +66 -0
  147. package/dist/collection/helpers/slimmers/position-calculation/position-calculation-controller.js +121 -0
  148. package/dist/collection/helpers/slimmers/position-calculation/screen-position-calculation-strategy.js +59 -0
  149. package/dist/collection/{utils/test/position.test.js → helpers/slimmers/position-calculation/test/body-position-calculation-strategy.test.js} +135 -45
  150. package/dist/collection/helpers/slimmers/position-calculation/test/screen-position-calculation-strategy.test.js +113 -0
  151. package/dist/collection/helpers/slimmers/sub-state/sub-state-notify-slimmer.js +8 -5
  152. package/dist/collection/helpers/slimmers/sub-state/test/sub-state-observer-slimmer.test.js +24 -0
  153. package/dist/collection/helpers/ui/element-appender.js +21 -70
  154. package/dist/collection/helpers/ui/test/element-appender.test.js +53 -0
  155. package/dist/collection/utils/number.js +10 -0
  156. package/dist/collection/utils/pagination.js +2 -2
  157. package/dist/collection/utils/test/number.test.js +5 -1
  158. package/dist/collection/value-model-adapters/angular-ng-model-accessor-adapter.js +1 -0
  159. package/dist/collection/value-model-adapters/vue-component-v-model-adaptor.js +1 -0
  160. package/dist/esm/{app-globals-41797af8.js → app-globals-00a57fbe.js} +8 -7
  161. package/dist/esm/{array-506b88b9.js → array-b668466e.js} +13 -2
  162. package/dist/esm/{child-nodes-event-prevent-slimmer-345c46c5.js → child-nodes-event-prevent-slimmer-db288af1.js} +2 -2
  163. package/dist/esm/{create-public-api-runtime-metrics-slimmer-928ad7f0.js → create-public-api-runtime-metrics-slimmer-cc1164bb.js} +1 -1
  164. package/dist/esm/{design-token-3671ce60.js → design-token-2a527af3.js} +1 -1
  165. package/dist/esm/{element-appender-slimmer-1172e2ea.js → element-appender-slimmer-48d826b2.js} +720 -531
  166. package/dist/esm/{event-emit-slimmer-eee9fd41.js → event-emit-slimmer-44cb4573.js} +1 -1
  167. package/dist/esm/{feature-flag-controller-10780eeb.js → feature-flag-controller-297c4b9b.js} +5 -0
  168. package/dist/esm/{form-field-controller-slimmer-edbaaf7c.js → form-field-controller-slimmer-a64c679c.js} +6 -6
  169. package/dist/esm/{icon-manager-0f030f8a.js → icon-manager-1ee2c968.js} +1 -1
  170. package/dist/esm/index-187f71d1.js +8 -0
  171. package/dist/esm/index-fda6b5ee.js +13 -0
  172. package/dist/esm/index.js +15 -14
  173. package/dist/esm/{internal-icon-manager-9671142a.js → internal-icon-manager-7004584d.js} +1 -1
  174. package/dist/esm/{internal-vega-event-manager-722461c1.js → internal-vega-event-manager-8154661e.js} +13 -3
  175. package/dist/esm/{internal-vega-z-index-manager-0553458e.js → internal-vega-z-index-manager-7d2b54c3.js} +1 -1
  176. package/dist/esm/{legend-input-processor-abb0b4f4.js → legend-input-processor-0cef3ebe.js} +1 -1
  177. package/dist/esm/loader.js +15 -14
  178. package/dist/esm/{min-number-rule-8f643dbd.js → min-number-rule-31d48b22.js} +1 -1
  179. package/dist/esm/{mutation-observer-filters-9086b5cc.js → mutation-observer-filters-1035b064.js} +1 -1
  180. package/dist/esm/{number-e2519d1c.js → number-4398f2e1.js} +11 -1
  181. package/dist/esm/{responsive-format-facade-5a1329a7.js → responsive-format-facade-3dc84e41.js} +1 -1
  182. package/dist/esm/{static-subject-title-6987a80b.js → static-subject-title-500cf2a3.js} +2 -1
  183. package/dist/esm/{style-formatter-2fa5ce09.js → style-formatter-ccb2da0d.js} +1 -1
  184. package/dist/esm/sub-state-notify-slimmer-be5bcc4e.js +79 -0
  185. package/dist/esm/{sub-state-observer-slimmer-8eff5559.js → sub-state-observer-slimmer-cd7adab1.js} +5 -74
  186. package/dist/esm/{translation-0fa7cf77.js → translation-4eb3cf85.js} +2 -2
  187. package/dist/esm/{translation-slimmer-79f9a9c9.js → translation-slimmer-9d07a0ff.js} +1 -1
  188. package/dist/esm/{valid-credit-card-number-rule-232f2986.js → valid-credit-card-number-rule-2aef3ad5.js} +1 -1
  189. package/dist/esm/vega-accordion.entry.js +10 -10
  190. package/dist/esm/vega-app-header-button.entry.js +11 -11
  191. package/dist/esm/vega-banner.entry.js +7 -7
  192. package/dist/esm/vega-bar-chart.entry.js +4 -4
  193. package/dist/esm/vega-box.entry.js +4 -4
  194. package/dist/esm/vega-breadcrumb.entry.js +5 -5
  195. package/dist/esm/vega-button-circle.entry.js +9 -9
  196. package/dist/esm/vega-button-group_2.entry.js +8 -7
  197. package/dist/esm/vega-button-link.entry.js +5 -5
  198. package/dist/esm/vega-button.entry.js +8 -8
  199. package/dist/esm/vega-calendar_3.entry.js +16 -15
  200. package/dist/esm/vega-card.entry.js +3 -3
  201. package/dist/esm/vega-carousel.entry.js +5 -5
  202. package/dist/esm/vega-checkbox_2.entry.js +13 -13
  203. package/dist/esm/vega-chip.entry.js +8 -8
  204. package/dist/esm/vega-color-picker.entry.js +20 -14
  205. package/dist/esm/vega-combo-box.entry.js +370 -186
  206. package/dist/esm/vega-date-picker_2.entry.js +23 -20
  207. package/dist/esm/{vega-dialog-controller-3b905672.js → vega-dialog-controller-8b343a17.js} +1 -1
  208. package/dist/esm/vega-dialog_2.entry.js +9 -9
  209. package/dist/esm/vega-divider.entry.js +3 -3
  210. package/dist/esm/vega-dropdown_5.entry.js +43 -28
  211. package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
  212. package/dist/esm/{vega-event-id-7465a011.js → vega-event-id-b1655cbc.js} +2 -1
  213. package/dist/esm/vega-field-error.entry.js +1 -1
  214. package/dist/esm/vega-field-label.entry.js +3 -3
  215. package/dist/esm/vega-file-uploader.entry.js +14 -14
  216. package/dist/esm/vega-flex.entry.js +5 -5
  217. package/dist/esm/vega-font.entry.js +3 -3
  218. package/dist/esm/vega-form.entry.js +13 -13
  219. package/dist/esm/vega-grid.entry.js +3 -3
  220. package/dist/esm/vega-icon.entry.js +5 -5
  221. package/dist/esm/vega-image-uploader.entry.js +16 -16
  222. package/dist/esm/vega-input-credit-card.entry.js +16 -16
  223. package/dist/esm/vega-input-numeric.entry.js +406 -0
  224. package/dist/esm/vega-input-phone-number.entry.js +15 -15
  225. package/dist/esm/vega-input-range.entry.js +14 -14
  226. package/dist/esm/vega-input-select.entry.js +30 -18
  227. package/dist/esm/vega-input.entry.js +219 -26
  228. package/dist/esm/{vega-internal-event-id-7e05cf4a.js → vega-internal-event-id-c8507b85.js} +2 -1
  229. package/dist/esm/vega-item-toggle.entry.js +3 -3
  230. package/dist/esm/vega-left-nav_5.entry.js +13 -13
  231. package/dist/esm/vega-line-chart.entry.js +4 -4
  232. package/dist/esm/vega-loader-wrapper_2.entry.js +2 -2
  233. package/dist/esm/vega-page-notification_2.entry.js +1 -1
  234. package/dist/esm/vega-pagination.entry.js +12 -12
  235. package/dist/esm/vega-pie-chart.entry.js +3 -3
  236. package/dist/esm/vega-popover_2.entry.js +9 -9
  237. package/dist/esm/vega-progress-tracker.entry.js +4 -4
  238. package/dist/esm/vega-radio_2.entry.js +13 -13
  239. package/dist/esm/vega-segment-control.entry.js +3 -3
  240. package/dist/esm/vega-selection-chip_2.entry.js +16 -15
  241. package/dist/esm/vega-selection-tile_2.entry.js +15 -14
  242. package/dist/esm/vega-sidenav_3.entry.js +1000 -0
  243. package/dist/esm/vega-signature-capture.entry.js +16 -16
  244. package/dist/esm/{vega-skeleton-loader-controller-6fb25f3b.js → vega-skeleton-loader-controller-cec6753f.js} +4 -14
  245. package/dist/esm/vega-stepper.entry.js +14 -14
  246. package/dist/esm/vega-tab-group_2.entry.js +6 -6
  247. package/dist/esm/vega-table_8.entry.js +19 -18
  248. package/dist/esm/vega-textarea.entry.js +13 -13
  249. package/dist/esm/vega-time-picker_2.entry.js +17 -17
  250. package/dist/esm/vega-toggle-switch.entry.js +11 -11
  251. package/dist/esm/vega-tooltip_2.entry.js +7 -7
  252. package/dist/esm/vega.js +15 -14
  253. package/dist/esm/{y-axis-input-processor-08c89594.js → y-axis-input-processor-a4d6aa50.js} +2 -2
  254. package/dist/types/components/vega-color-picker/vega-color-picker.d.ts +6 -0
  255. package/dist/types/components/vega-combo-box/slimmers/controllers/vega-combo-box-keyboard-controller.d.ts +29 -0
  256. package/dist/types/components/vega-combo-box/slimmers/controllers/vega-combo-box-value-controller.d.ts +14 -0
  257. package/dist/types/components/vega-combo-box/slimmers/renderers/vega-combo-box-dropdown-renderer.d.ts +41 -0
  258. package/dist/types/components/vega-combo-box/slimmers/renderers/vega-combo-box-renderer.d.ts +17 -0
  259. package/dist/types/components/vega-combo-box/vega-combo-box.d.ts +8 -48
  260. package/dist/types/components/vega-dropdown/slimmers/renderers/vega-dropdown-search-renderer.d.ts +1 -0
  261. package/dist/types/components/vega-dropdown/types.d.ts +5 -0
  262. package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +21 -1
  263. package/dist/types/components/vega-input/slimmers/controllers/vega-input-compact-width-controller.d.ts +47 -0
  264. package/dist/types/components/vega-input/slimmers/controllers/vega-input-state-controller.d.ts +13 -0
  265. package/dist/types/components/vega-input/vega-input.d.ts +18 -6
  266. package/dist/types/components/vega-input-numeric/slimmers/controllers/vega-input-numeric-keyboard-controller.d.ts +18 -0
  267. package/dist/types/components/vega-input-numeric/slimmers/controllers/vega-input-numeric-value-controller.d.ts +20 -0
  268. package/dist/types/components/vega-input-numeric/slimmers/renderers/vega-input-numeric-renderer.d.ts +19 -0
  269. package/dist/types/components/vega-input-numeric/vega-input-numeric.d.ts +169 -0
  270. package/dist/types/components/vega-input-select/slimmers/controllers/vega-input-select-dropdown-controller.d.ts +1 -0
  271. package/dist/types/components/vega-input-select/vega-input-select.d.ts +20 -0
  272. package/dist/types/components/vega-sidenav/icons/chevron-right.d.ts +3 -0
  273. package/dist/types/components/vega-sidenav/icons/toggle-button-bg.d.ts +3 -0
  274. package/dist/types/components/vega-sidenav/slimmers/controllers/vega-sidenav-backdrop-controller.d.ts +42 -0
  275. package/dist/types/components/vega-sidenav/slimmers/controllers/vega-sidenav-open-status-controller.d.ts +94 -0
  276. package/dist/types/components/vega-sidenav/slimmers/renderers/vega-sidenav-collapse-button-renderer.d.ts +31 -0
  277. package/dist/types/components/vega-sidenav/test/test.helper.d.ts +6 -0
  278. package/dist/types/components/vega-sidenav/types.d.ts +24 -0
  279. package/dist/types/components/vega-sidenav/utils/index.d.ts +7 -0
  280. package/dist/types/components/vega-sidenav/vega-sidenav-group/slimmers/controllers/vega-sidenav-group-sub-state-controller.d.ts +10 -0
  281. package/dist/types/components/vega-sidenav/vega-sidenav-group/vega-sidenav-group.d.ts +47 -0
  282. package/dist/types/components/vega-sidenav/vega-sidenav-link/slimmers/controllers/vega-sidenav-link-sub-state.controller.d.ts +10 -0
  283. package/dist/types/components/vega-sidenav/vega-sidenav-link/vega-sidenav-link.d.ts +80 -0
  284. package/dist/types/components/vega-sidenav/vega-sidenav.d.ts +137 -0
  285. package/dist/types/components.d.ts +407 -1
  286. package/dist/types/constants/ui.d.ts +1 -1
  287. package/dist/types/helpers/event-manager/event-id/vega-event-id.d.ts +1 -0
  288. package/dist/types/helpers/event-manager/event-id/vega-internal-event-id.d.ts +1 -0
  289. package/dist/types/helpers/feature-control/feature-flag.d.ts +2 -1
  290. package/dist/types/helpers/slimmers/element-appender-container/body-positioned-wrapper/body-positioned-wrapper.abstract.d.ts +15 -0
  291. package/dist/types/helpers/slimmers/element-appender-container/{position-relative-to-wrapper.d.ts → body-positioned-wrapper/position-relative-to-wrapper.d.ts} +5 -5
  292. package/dist/types/helpers/slimmers/element-appender-container/{vega-modal-wrapper.d.ts → body-positioned-wrapper/vega-modal-wrapper.d.ts} +5 -5
  293. package/dist/types/helpers/slimmers/element-appender-container/{vega-popover-wrapper.d.ts → body-positioned-wrapper/vega-popover-wrapper.d.ts} +5 -5
  294. package/dist/types/helpers/slimmers/element-appender-container/default-wrapper.d.ts +2 -2
  295. package/dist/types/helpers/slimmers/element-appender-container/element-appender-container-controller.d.ts +3 -3
  296. package/dist/types/helpers/slimmers/element-appender-slimmer.d.ts +1 -0
  297. package/dist/types/helpers/slimmers/position-calculation/base-position-calculation-strategy.d.ts +138 -0
  298. package/dist/types/helpers/slimmers/position-calculation/body-position-calculation-strategy.d.ts +34 -0
  299. package/dist/types/helpers/slimmers/position-calculation/position-calculation-controller.d.ts +54 -0
  300. package/dist/types/helpers/slimmers/position-calculation/screen-position-calculation-strategy.d.ts +34 -0
  301. package/dist/types/helpers/slimmers/position-calculation/test/body-position-calculation-strategy.test.d.ts +15 -0
  302. package/dist/types/helpers/slimmers/sub-state/sub-state-notify-slimmer.d.ts +1 -1
  303. package/dist/types/helpers/ui/element-appender.d.ts +9 -24
  304. package/dist/types/types/components.type.d.ts +7 -0
  305. package/dist/types/utils/number.d.ts +7 -0
  306. package/dist/vega/index.esm.js +1 -1
  307. package/dist/vega/{p-d4c85e4e.entry.js → p-00c5aee5.entry.js} +1 -1
  308. package/dist/vega/{p-573948c2.js → p-04215e74.js} +1 -1
  309. package/dist/vega/p-042b4b3f.entry.js +1 -0
  310. package/dist/vega/{p-fd929ab5.entry.js → p-07a8cf89.entry.js} +1 -1
  311. package/dist/vega/p-0abe1ade.entry.js +1 -0
  312. package/dist/vega/p-0f0e4198.entry.js +1 -0
  313. package/dist/vega/{p-b86e8c8b.entry.js → p-11786565.entry.js} +1 -1
  314. package/dist/vega/{p-063c3ba6.entry.js → p-14f5a9ad.entry.js} +1 -1
  315. package/dist/vega/p-15023bad.entry.js +1 -0
  316. package/dist/vega/p-1be2fd46.entry.js +1 -0
  317. package/dist/vega/p-1bfcb6b7.entry.js +1 -0
  318. package/dist/vega/p-20d9c07c.entry.js +1 -0
  319. package/dist/vega/p-2306c736.js +1 -0
  320. package/dist/vega/p-262ec334.js +1 -0
  321. package/dist/vega/{p-a5f80d35.js → p-2d5a9f66.js} +1 -1
  322. package/dist/vega/{p-83af8ed7.js → p-302e7589.js} +1 -1
  323. package/dist/vega/p-32f651f7.js +1 -0
  324. package/dist/vega/p-34710a3c.entry.js +1 -0
  325. package/dist/vega/p-3903ce7a.entry.js +1 -0
  326. package/dist/vega/{p-b2053fa8.entry.js → p-4022f395.entry.js} +1 -1
  327. package/dist/vega/{p-51cd2a39.entry.js → p-438caeb3.entry.js} +1 -1
  328. package/dist/vega/{p-1ea57951.js → p-4d25df7d.js} +1 -1
  329. package/dist/vega/{p-319efe6c.js → p-4ffd7493.js} +1 -1
  330. package/dist/vega/p-5440344e.js +1 -0
  331. package/dist/vega/{p-fc746bae.entry.js → p-57d9bde6.entry.js} +1 -1
  332. package/dist/vega/p-5f377954.js +1 -1
  333. package/dist/vega/p-5fbac513.js +1 -0
  334. package/dist/vega/{p-d686dd96.entry.js → p-623fe226.entry.js} +1 -1
  335. package/dist/vega/{p-be26b334.entry.js → p-63bee4f1.entry.js} +1 -1
  336. package/dist/vega/{p-40f6add9.entry.js → p-64ff6318.entry.js} +1 -1
  337. package/dist/vega/{p-9e6934fb.js → p-68ad953c.js} +1 -1
  338. package/dist/vega/{p-7a1df282.entry.js → p-69e63d21.entry.js} +1 -1
  339. package/dist/vega/{p-ac0ab38b.js → p-6a8f1251.js} +1 -1
  340. package/dist/vega/{p-9a4ffc2c.entry.js → p-72ecc510.entry.js} +1 -1
  341. package/dist/vega/{p-a2169994.entry.js → p-7372cd79.entry.js} +1 -1
  342. package/dist/vega/{p-7b40ac07.js → p-74958b1a.js} +1 -1
  343. package/dist/vega/{p-3fc59fd3.entry.js → p-760283d1.entry.js} +1 -1
  344. package/dist/vega/{p-152393dd.js → p-781fd6e0.js} +1 -1
  345. package/dist/vega/p-79019d08.js +1 -0
  346. package/dist/vega/p-7941701a.entry.js +1 -0
  347. package/dist/vega/{p-8fd6775a.entry.js → p-799cb0a4.entry.js} +1 -1
  348. package/dist/vega/{p-34545d2d.entry.js → p-7a6a0740.entry.js} +1 -1
  349. package/dist/vega/{p-a59c221b.entry.js → p-7df3aa44.entry.js} +1 -1
  350. package/dist/vega/p-80785fcf.entry.js +1 -0
  351. package/dist/vega/{p-8c72aa56.entry.js → p-83ef4c13.entry.js} +1 -1
  352. package/dist/vega/{p-1e33c6e3.entry.js → p-87640a4d.entry.js} +1 -1
  353. package/dist/vega/{p-1bbc62ef.entry.js → p-87cd0d6a.entry.js} +1 -1
  354. package/dist/vega/{p-22a85055.entry.js → p-8cfe4027.entry.js} +1 -1
  355. package/dist/vega/{p-056f448c.entry.js → p-9281cdb2.entry.js} +1 -1
  356. package/dist/vega/p-95b25b97.entry.js +1 -0
  357. package/dist/vega/p-9b45e5dc.entry.js +1 -0
  358. package/dist/vega/{p-4bc042ec.entry.js → p-9b9c0afb.entry.js} +1 -1
  359. package/dist/vega/{p-128fbe13.entry.js → p-9ba68531.entry.js} +2 -2
  360. package/dist/vega/{p-be784f53.js → p-9f3b1d77.js} +1 -1
  361. package/dist/vega/p-a66ea015.entry.js +1 -0
  362. package/dist/vega/p-a67748c6.entry.js +1 -0
  363. package/dist/vega/{p-33366630.entry.js → p-a6e1d9bc.entry.js} +1 -1
  364. package/dist/vega/{p-38d81bde.js → p-a9354a5c.js} +1 -1
  365. package/dist/vega/p-ab983e7d.js +1 -0
  366. package/dist/vega/p-ae3fd67e.js +1 -0
  367. package/dist/vega/p-b0502d01.js +1 -0
  368. package/dist/vega/{p-8b0533c4.entry.js → p-b1a249ef.entry.js} +1 -1
  369. package/dist/vega/{p-bccacf42.js → p-b347f967.js} +1 -1
  370. package/dist/vega/p-b3e754da.entry.js +1 -0
  371. package/dist/vega/{p-ddc70a7b.js → p-b62f0454.js} +1 -1
  372. package/dist/vega/{p-26d0d411.entry.js → p-b6e49ee9.entry.js} +1 -1
  373. package/dist/vega/{p-a901494d.entry.js → p-bb6f8b70.entry.js} +1 -1
  374. package/dist/vega/{p-456416ea.js → p-bdb94242.js} +1 -1
  375. package/dist/vega/{p-5d231a82.entry.js → p-be6041fc.entry.js} +1 -1
  376. package/dist/vega/{p-0dd750b0.entry.js → p-bf38199b.entry.js} +1 -1
  377. package/dist/vega/p-bf3fbb9b.js +1 -0
  378. package/dist/vega/p-c06e7880.js +1 -0
  379. package/dist/vega/{p-51622ace.entry.js → p-c3c2890e.entry.js} +1 -1
  380. package/dist/vega/{p-6874d6a1.entry.js → p-c6ed1982.entry.js} +1 -1
  381. package/dist/vega/{p-33596687.js → p-c7d70786.js} +1 -1
  382. package/dist/vega/p-cdebfee7.entry.js +1 -0
  383. package/dist/vega/p-cea70476.entry.js +1 -0
  384. package/dist/vega/{p-d550fc66.entry.js → p-d3c07efa.entry.js} +1 -1
  385. package/dist/vega/p-d71f968e.entry.js +1 -0
  386. package/dist/vega/{p-365c340d.entry.js → p-e165c9f1.entry.js} +1 -1
  387. package/dist/vega/{p-5dc98104.js → p-e5d7b4b8.js} +1 -1
  388. package/dist/vega/p-e6f91767.entry.js +1 -0
  389. package/dist/vega/p-e731976a.js +1 -0
  390. package/dist/vega/p-ed237efc.js +1 -0
  391. package/dist/vega/{p-cbeda6ca.entry.js → p-f2685ec5.entry.js} +1 -1
  392. package/dist/vega/{p-115e5967.js → p-f2851f16.js} +1 -1
  393. package/dist/vega/p-f5b0ce61.js +1 -0
  394. package/dist/vega/{p-a57eed48.entry.js → p-f64fb740.entry.js} +1 -1
  395. package/dist/vega/{p-80c0f98c.entry.js → p-fb3233db.entry.js} +1 -1
  396. package/dist/vega/{p-8f60c3ee.entry.js → p-ff22a95f.entry.js} +1 -1
  397. package/dist/vega/vega.esm.js +1 -1
  398. package/package.json +7 -3
  399. package/dist/collection/utils/position.js +0 -373
  400. package/dist/types/utils/position.d.ts +0 -17
  401. package/dist/vega/p-0120ce7a.js +0 -1
  402. package/dist/vega/p-0395e791.entry.js +0 -1
  403. package/dist/vega/p-048a97d1.entry.js +0 -1
  404. package/dist/vega/p-1f38eef6.entry.js +0 -1
  405. package/dist/vega/p-1fc5373a.entry.js +0 -1
  406. package/dist/vega/p-344ee7cb.js +0 -1
  407. package/dist/vega/p-3f5e44c1.js +0 -1
  408. package/dist/vega/p-41784db1.js +0 -1
  409. package/dist/vega/p-6168c1e7.js +0 -1
  410. package/dist/vega/p-64e8bb64.js +0 -1
  411. package/dist/vega/p-657df167.entry.js +0 -1
  412. package/dist/vega/p-68055c2d.entry.js +0 -1
  413. package/dist/vega/p-6d015656.entry.js +0 -1
  414. package/dist/vega/p-6e3cc7f0.entry.js +0 -1
  415. package/dist/vega/p-880f91fb.js +0 -1
  416. package/dist/vega/p-8843226a.entry.js +0 -1
  417. package/dist/vega/p-a10074a8.entry.js +0 -1
  418. package/dist/vega/p-a454acc4.entry.js +0 -1
  419. package/dist/vega/p-a8b1f19c.entry.js +0 -1
  420. package/dist/vega/p-acf8b473.js +0 -1
  421. package/dist/vega/p-d0a83562.entry.js +0 -1
  422. package/dist/vega/p-d4fb2264.entry.js +0 -1
  423. package/dist/vega/p-da86ba01.js +0 -1
  424. package/dist/vega/p-ead1a647.js +0 -1
  425. package/dist/vega/p-ead9a2b9.entry.js +0 -1
  426. package/dist/vega/p-ee68920f.js +0 -1
  427. package/dist/vega/p-f0ad06bd.entry.js +0 -1
  428. package/dist/vega/p-f2019f70.entry.js +0 -1
  429. package/dist/vega/p-f948debe.entry.js +0 -1
  430. package/dist/vega/p-fb6c90d6.js +0 -1
  431. /package/dist/types/{utils/test/position.test.d.ts → helpers/slimmers/position-calculation/test/screen-position-calculation-strategy.test.d.ts} +0 -0
@@ -0,0 +1,59 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { MapToComponentField } from 'vega-slimmer/core';
8
+ import { BasePositionCalculationStrategy } from './base-position-calculation-strategy';
9
+ /**
10
+ * calculate position by screen container
11
+ */
12
+ export class ScreenPositionCalculationStrategy extends BasePositionCalculationStrategy {
13
+ /**
14
+ * Get the position of the element in the container according to the target element and the placement
15
+ * If give a translocation, it will apply the translocation to the result.
16
+ *
17
+ * @param {boolean} usePreviousPlacement - Should keep use previous placement and alignment.
18
+ * @returns {ElementPositionBox} A function that takes in a container, element, target, placement, and translocation and
19
+ * returns an ElementPositionBox.
20
+ */
21
+ getPosition(usePreviousPlacement) {
22
+ const positionBox = usePreviousPlacement
23
+ ? this.getPositionBox([this.previousPositionBox.placement], [this.previousPositionBox.alignment])
24
+ : this.getPositionBox();
25
+ this.previousPositionBox = positionBox;
26
+ return positionBox;
27
+ }
28
+ /**
29
+ * It returns the position of an element relative to its container and also includes the scroll height of container.
30
+ *
31
+ * @returns {ElementBoundBox} An object with the properties width, height, top, and left.
32
+ */
33
+ getTargetBoundBox() {
34
+ const targetRect = this.showConfig.target.getBoundingClientRect();
35
+ return {
36
+ width: targetRect.width,
37
+ height: targetRect.height,
38
+ top: targetRect.top,
39
+ left: targetRect.left,
40
+ };
41
+ }
42
+ /**
43
+ * "Get the width and height of an element."
44
+ *
45
+ * The function takes a single parameter, a container element, and returns an object with two
46
+ * properties: width and height
47
+ *
48
+ * @returns {ElementScrollDimension} An object with two properties: width and height.
49
+ */
50
+ getElementScrollDimension() {
51
+ return {
52
+ width: window.innerWidth,
53
+ height: window.innerHeight,
54
+ };
55
+ }
56
+ }
57
+ __decorate([
58
+ MapToComponentField()
59
+ ], ScreenPositionCalculationStrategy.prototype, "showConfig", void 0);
@@ -1,13 +1,69 @@
1
- import { getPositionBox } from '../../utils/position';
2
- import { LogUtility } from '../log';
3
- describe('getPositionBox', () => {
4
- const innerHTML = `
5
- <vega-modal>
6
- <div class='target'> test target </div>
7
- </vega-modal>
8
- <div class='element'>test element</div>
9
- `;
10
- document.body.innerHTML = innerHTML;
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { InjectVegaSlimmer } from 'vega-slimmer/core';
8
+ import { LogUtility } from '../../../../utils/log';
9
+ import { PositionCalculationController } from '../position-calculation-controller';
10
+ import { ElementAppenderContainerController } from '../../element-appender-container/element-appender-container-controller';
11
+ export class PositionCalculationMockedComponent {
12
+ constructor() {
13
+ this.elementAppenderContainerController = new ElementAppenderContainerController();
14
+ this.positionCalculationController = new PositionCalculationController();
15
+ this.isScreenPosition = false;
16
+ this.setHtml();
17
+ }
18
+ setIsScreenPosition(isScreenPosition) {
19
+ this.isScreenPosition = isScreenPosition;
20
+ }
21
+ getPositionBox(container, element, target, placement, alignment, translocation = { X: 0, Y: 0 }) {
22
+ this.container = container;
23
+ this.showConfig = {
24
+ target: target,
25
+ appendableElement: element,
26
+ placement: placement,
27
+ alignment: alignment,
28
+ translocation: translocation,
29
+ isScreenPosition: this.isScreenPosition,
30
+ };
31
+ this.positionCalculationController.setCalculationStrategy();
32
+ this.positionCalculationController.adjustPosition();
33
+ let placementResult;
34
+ let alignmentResult;
35
+ element.className.split(' ').forEach((item) => {
36
+ if (item.includes('vega-placement')) {
37
+ placementResult = item.replace('vega-placement-', '');
38
+ }
39
+ if (item.includes('vega-alignment')) {
40
+ alignmentResult = item.replace('vega-alignment-', '');
41
+ }
42
+ });
43
+ return {
44
+ top: Number(element.style.top.replace('px', '')),
45
+ left: Number(element.style.left.replace('px', '')),
46
+ placement: placementResult,
47
+ alignment: alignmentResult,
48
+ };
49
+ }
50
+ setHtml() {
51
+ document.body.innerHTML = `
52
+ <vega-modal>
53
+ <div class='target'> test target </div>
54
+ </vega-modal>
55
+ <div class='element'>test element</div>
56
+ `;
57
+ }
58
+ }
59
+ __decorate([
60
+ InjectVegaSlimmer()
61
+ ], PositionCalculationMockedComponent.prototype, "elementAppenderContainerController", void 0);
62
+ __decorate([
63
+ InjectVegaSlimmer()
64
+ ], PositionCalculationMockedComponent.prototype, "positionCalculationController", void 0);
65
+ describe('component.getPositionBox', () => {
66
+ const component = new PositionCalculationMockedComponent();
11
67
  const element = document.querySelector('.element');
12
68
  const target = document.querySelector('.target');
13
69
  const container = document.querySelector('vega-modal');
@@ -32,7 +88,7 @@ describe('getPositionBox', () => {
32
88
  width: 100,
33
89
  height: 100,
34
90
  });
35
- getPositionBox(container, element, target);
91
+ component.getPositionBox(container, element, target);
36
92
  expect(LogUtility.warn).toHaveBeenCalledWith(`Calculate position should make container as 'position: relative', otherwise the result might not be accurate.`);
37
93
  });
38
94
  describe('directions', () => {
@@ -48,7 +104,7 @@ describe('getPositionBox', () => {
48
104
  top: 100,
49
105
  left: 100,
50
106
  });
51
- const positionBox = getPositionBox(container, element, target, [
107
+ const positionBox = component.getPositionBox(container, element, target, [
52
108
  'left',
53
109
  'bottom',
54
110
  'right',
@@ -63,7 +119,7 @@ describe('getPositionBox', () => {
63
119
  top: 100,
64
120
  left: 100,
65
121
  });
66
- const positionBox = getPositionBox(container, element, target);
122
+ const positionBox = component.getPositionBox(container, element, target);
67
123
  expect(positionBox).toEqual({ top: 50, left: 100, placement: 'top', alignment: 'start' });
68
124
  });
69
125
  test('return result as expected when with single placement', () => {
@@ -75,13 +131,13 @@ describe('getPositionBox', () => {
75
131
  left: 100,
76
132
  });
77
133
  let positionBox;
78
- positionBox = getPositionBox(container, element, target, 'left');
134
+ positionBox = component.getPositionBox(container, element, target, 'left');
79
135
  expect(positionBox).toEqual({ top: 100, left: 50, placement: 'left', alignment: 'start' });
80
- positionBox = getPositionBox(container, element, target, 'top');
136
+ positionBox = component.getPositionBox(container, element, target, 'top');
81
137
  expect(positionBox).toEqual({ top: 50, left: 100, placement: 'top', alignment: 'start' });
82
- positionBox = getPositionBox(container, element, target, 'right');
138
+ positionBox = component.getPositionBox(container, element, target, 'right');
83
139
  expect(positionBox).toEqual({ top: 100, left: 200, placement: 'right', alignment: 'start' });
84
- positionBox = getPositionBox(container, element, target, 'bottom');
140
+ positionBox = component.getPositionBox(container, element, target, 'bottom');
85
141
  expect(positionBox).toEqual({ top: 200, left: 100, placement: 'bottom', alignment: 'start' });
86
142
  });
87
143
  test('return result as expected when container scroll', () => {
@@ -95,13 +151,13 @@ describe('getPositionBox', () => {
95
151
  let positionBox;
96
152
  container.scrollTop = 20;
97
153
  container.scrollLeft = 20;
98
- positionBox = getPositionBox(container, element, target, 'left');
154
+ positionBox = component.getPositionBox(container, element, target, 'left');
99
155
  expect(positionBox).toEqual({ top: 100, left: 50, placement: 'left', alignment: 'start' });
100
- positionBox = getPositionBox(container, element, target, 'top');
156
+ positionBox = component.getPositionBox(container, element, target, 'top');
101
157
  expect(positionBox).toEqual({ top: 50, left: 100, placement: 'top', alignment: 'start' });
102
- positionBox = getPositionBox(container, element, target, 'right');
158
+ positionBox = component.getPositionBox(container, element, target, 'right');
103
159
  expect(positionBox).toEqual({ top: 100, left: 200, placement: 'right', alignment: 'start' });
104
- positionBox = getPositionBox(container, element, target, 'bottom');
160
+ positionBox = component.getPositionBox(container, element, target, 'bottom');
105
161
  expect(positionBox).toEqual({ top: 200, left: 100, placement: 'bottom', alignment: 'start' });
106
162
  });
107
163
  test('return result as expected when top have not enough placement', () => {
@@ -112,7 +168,7 @@ describe('getPositionBox', () => {
112
168
  top: 100,
113
169
  left: 100,
114
170
  });
115
- const positionBox = getPositionBox(container, element, target, 'top');
171
+ const positionBox = component.getPositionBox(container, element, target, 'top');
116
172
  expect(positionBox).toEqual({ top: 100, left: 50, placement: 'left', alignment: 'start' });
117
173
  });
118
174
  test('return result as expected when top have not enough placement and with translocation', () => {
@@ -123,7 +179,7 @@ describe('getPositionBox', () => {
123
179
  top: 100,
124
180
  left: 100,
125
181
  });
126
- const positionBox = getPositionBox(container, element, target, 'top', undefined, {
182
+ const positionBox = component.getPositionBox(container, element, target, 'top', undefined, {
127
183
  X: 10,
128
184
  Y: 20,
129
185
  });
@@ -137,7 +193,7 @@ describe('getPositionBox', () => {
137
193
  top: 100,
138
194
  left: 100,
139
195
  });
140
- const positionBox = getPositionBox(container, element, target, 'top');
196
+ const positionBox = component.getPositionBox(container, element, target, 'top');
141
197
  expect(positionBox).toEqual({ top: 200, left: 100, placement: 'bottom', alignment: 'start' });
142
198
  });
143
199
  test('return result as expected when top, left and bottom have not enough placement', () => {
@@ -148,7 +204,7 @@ describe('getPositionBox', () => {
148
204
  top: 100,
149
205
  left: 100,
150
206
  });
151
- const positionBox = getPositionBox(container, element, target, 'top');
207
+ const positionBox = component.getPositionBox(container, element, target, 'top');
152
208
  expect(positionBox).toEqual({ top: 100, left: 200, placement: 'right', alignment: 'start' });
153
209
  });
154
210
  test('return result as expected when container scrollHeight/scrollWidth is big than body scrollHeight/scrollWidth', () => {
@@ -161,12 +217,12 @@ describe('getPositionBox', () => {
161
217
  top: 200,
162
218
  left: 200,
163
219
  });
164
- const positionBox = getPositionBox(container, element, target, [
220
+ const positionBox = component.getPositionBox(container, element, target, [
165
221
  'bottom',
166
222
  'top',
167
223
  ]);
168
224
  expect(positionBox).toEqual({ top: 400, left: 200, placement: 'bottom', alignment: 'start' });
169
- const positionBox1 = getPositionBox(container, element, target, [
225
+ const positionBox1 = component.getPositionBox(container, element, target, [
170
226
  'right',
171
227
  'left',
172
228
  ]);
@@ -182,9 +238,43 @@ describe('getPositionBox', () => {
182
238
  Object.assign(target, { offsetTop: 0 });
183
239
  Object.assign(target, { offsetLeft: 0 });
184
240
  spyOn(LogUtility, 'warn');
185
- getPositionBox(container, target, element);
241
+ component.getPositionBox(container, target, element);
186
242
  expect(LogUtility.warn).toBeCalled();
187
243
  });
244
+ test('return result as expected when top center have enough placement', () => {
245
+ Object.assign(container, { scrollHeight: 530 });
246
+ Object.assign(container, { scrollWidth: 530 });
247
+ mockElementReturn(element, 'getBoundingClientRect', { width: 200, height: 200 });
248
+ mockElementReturn(target, 'getBoundingClientRect', {
249
+ width: 100,
250
+ height: 100,
251
+ top: 300,
252
+ left: 80,
253
+ });
254
+ expect(component.getPositionBox(container, element, target, ['top', 'left'], ['center', 'start'])).toEqual({
255
+ top: 100,
256
+ left: 30,
257
+ placement: 'top',
258
+ alignment: 'center',
259
+ });
260
+ });
261
+ test('return result as expected when left center have enough placement', () => {
262
+ Object.assign(container, { scrollHeight: 530 });
263
+ Object.assign(container, { scrollWidth: 530 });
264
+ mockElementReturn(element, 'getBoundingClientRect', { width: 200, height: 200 });
265
+ mockElementReturn(target, 'getBoundingClientRect', {
266
+ width: 100,
267
+ height: 100,
268
+ top: 80,
269
+ left: 300,
270
+ });
271
+ expect(component.getPositionBox(container, element, target, ['left', 'top'], ['center', 'start'])).toEqual({
272
+ top: 30,
273
+ left: 100,
274
+ placement: 'left',
275
+ alignment: 'center',
276
+ });
277
+ });
188
278
  });
189
279
  describe('with translocation', () => {
190
280
  beforeAll(() => {
@@ -197,17 +287,17 @@ describe('getPositionBox', () => {
197
287
  });
198
288
  });
199
289
  test('return result as expected when container not scrolled', () => {
200
- const positionBox = getPositionBox(container, element, target, 'top', undefined, {
290
+ const positionBox = component.getPositionBox(container, element, target, 'top', undefined, {
201
291
  X: 100,
202
292
  Y: 100,
203
293
  });
204
294
  expect(positionBox).toEqual({ top: -60, left: 200, placement: 'top', alignment: 'start' });
205
- const positionBox1 = getPositionBox(container, element, target, 'right', undefined, {
295
+ const positionBox1 = component.getPositionBox(container, element, target, 'right', undefined, {
206
296
  X: 100,
207
297
  Y: 100,
208
298
  });
209
299
  expect(positionBox1).toEqual({ top: 200, left: 300, placement: 'right', alignment: 'start' });
210
- const positionBox2 = getPositionBox(container, element, target, 'left', undefined, {
300
+ const positionBox2 = component.getPositionBox(container, element, target, 'left', undefined, {
211
301
  X: 100,
212
302
  Y: 100,
213
303
  });
@@ -216,46 +306,46 @@ describe('getPositionBox', () => {
216
306
  test('return result as expected when container scrolled', () => {
217
307
  container.scrollTop = 20;
218
308
  container.scrollLeft = 20;
219
- const positionBox = getPositionBox(container, element, target, 'top', undefined, {
309
+ const positionBox = component.getPositionBox(container, element, target, 'top', undefined, {
220
310
  X: 100,
221
311
  Y: 100,
222
312
  });
223
313
  expect(positionBox).toEqual({ top: -40, left: 220, placement: 'top', alignment: 'start' });
224
- const positionBox1 = getPositionBox(container, element, target, 'right', undefined, {
314
+ const positionBox1 = component.getPositionBox(container, element, target, 'right', undefined, {
225
315
  X: 100,
226
316
  Y: 100,
227
317
  });
228
318
  expect(positionBox1).toEqual({ top: 220, left: 320, placement: 'right', alignment: 'start' });
229
319
  });
230
320
  test('return result as expected when alignment set', () => {
231
- const positionBox1 = getPositionBox(container, element, target, 'bottom', 'start');
321
+ const positionBox1 = component.getPositionBox(container, element, target, 'bottom', 'start');
232
322
  expect(positionBox1).toEqual({ top: 200, left: 100, placement: 'bottom', alignment: 'start' });
233
- const positionBox2 = getPositionBox(container, element, target, 'bottom', 'center');
323
+ const positionBox2 = component.getPositionBox(container, element, target, 'bottom', 'center');
234
324
  expect(positionBox2).toEqual({
235
325
  top: 200,
236
326
  left: 120,
237
327
  placement: 'bottom',
238
328
  alignment: 'center',
239
329
  });
240
- const positionBox3 = getPositionBox(container, element, target, 'bottom', 'end');
330
+ const positionBox3 = component.getPositionBox(container, element, target, 'bottom', 'end');
241
331
  expect(positionBox3).toEqual({ top: 200, left: 140, placement: 'bottom', alignment: 'end' });
242
- const positionBox4 = getPositionBox(container, element, target, 'top', 'start');
332
+ const positionBox4 = component.getPositionBox(container, element, target, 'top', 'start');
243
333
  expect(positionBox4).toEqual({ top: 40, left: 100, placement: 'top', alignment: 'start' });
244
- const positionBox5 = getPositionBox(container, element, target, 'top', 'center');
334
+ const positionBox5 = component.getPositionBox(container, element, target, 'top', 'center');
245
335
  expect(positionBox5).toEqual({ top: 40, left: 120, placement: 'top', alignment: 'center' });
246
- const positionBox6 = getPositionBox(container, element, target, 'top', 'end');
336
+ const positionBox6 = component.getPositionBox(container, element, target, 'top', 'end');
247
337
  expect(positionBox6).toEqual({ top: 40, left: 140, placement: 'top', alignment: 'end' });
248
- const positionBox7 = getPositionBox(container, element, target, 'left', 'start');
338
+ const positionBox7 = component.getPositionBox(container, element, target, 'left', 'start');
249
339
  expect(positionBox7).toEqual({ top: 100, left: 40, placement: 'left', alignment: 'start' });
250
- const positionBox8 = getPositionBox(container, element, target, 'left', 'center');
340
+ const positionBox8 = component.getPositionBox(container, element, target, 'left', 'center');
251
341
  expect(positionBox8).toEqual({ top: 120, left: 40, placement: 'left', alignment: 'center' });
252
- const positionBox9 = getPositionBox(container, element, target, 'left', 'end', undefined);
342
+ const positionBox9 = component.getPositionBox(container, element, target, 'left', 'end', undefined);
253
343
  expect(positionBox9).toEqual({ top: 140, left: 40, placement: 'left', alignment: 'end' });
254
- const positionBox10 = getPositionBox(container, element, target, 'right', 'start');
344
+ const positionBox10 = component.getPositionBox(container, element, target, 'right', 'start');
255
345
  expect(positionBox10).toEqual({ top: 100, left: 200, placement: 'right', alignment: 'start' });
256
- const positionBox11 = getPositionBox(container, element, target, 'right', 'center');
346
+ const positionBox11 = component.getPositionBox(container, element, target, 'right', 'center');
257
347
  expect(positionBox11).toEqual({ top: 120, left: 200, placement: 'right', alignment: 'center' });
258
- const positionBox12 = getPositionBox(container, element, target, 'right', 'end');
348
+ const positionBox12 = component.getPositionBox(container, element, target, 'right', 'end');
259
349
  expect(positionBox12).toEqual({ top: 140, left: 200, placement: 'right', alignment: 'end' });
260
350
  });
261
351
  });
@@ -0,0 +1,113 @@
1
+ import { PositionCalculationMockedComponent } from './body-position-calculation-strategy.test';
2
+ describe('BodyPositionCalculationStrategy.getPositionBox', () => {
3
+ const component = new PositionCalculationMockedComponent();
4
+ component.setIsScreenPosition(true);
5
+ const innerHTML = `
6
+ <div class='container'>
7
+ <div class='target'> test target </div>
8
+ <div class='element'>test element</div>
9
+ </div>
10
+ `;
11
+ document.body.innerHTML = innerHTML;
12
+ const element = document.querySelector('.element');
13
+ const target = document.querySelector('.target');
14
+ const container = document.querySelector('.container');
15
+ function mockElementReturn(element, method, value) {
16
+ spyOn(element, method).and.returnValue(value);
17
+ }
18
+ beforeAll(() => {
19
+ Object.assign(window, { innerWidth: 500 });
20
+ Object.assign(window, { innerHeight: 500 });
21
+ });
22
+ describe('directions', () => {
23
+ beforeAll(() => {
24
+ mockElementReturn(element, 'getBoundingClientRect', { width: 50, height: 50 });
25
+ mockElementReturn(target, 'getBoundingClientRect', {
26
+ width: 100,
27
+ height: 100,
28
+ top: 100,
29
+ left: 100,
30
+ });
31
+ });
32
+ test('return result as expected in top', () => {
33
+ expect(component.getPositionBox(container, element, target, ['top'], ['start'])).toEqual({
34
+ top: 50,
35
+ left: 100,
36
+ placement: 'top',
37
+ alignment: 'start',
38
+ });
39
+ expect(component.getPositionBox(container, element, target, ['top'], ['center'])).toEqual({
40
+ top: 50,
41
+ left: 125,
42
+ placement: 'top',
43
+ alignment: 'center',
44
+ });
45
+ expect(component.getPositionBox(container, element, target, ['top'], ['end'])).toEqual({
46
+ top: 50,
47
+ left: 150,
48
+ placement: 'top',
49
+ alignment: 'end',
50
+ });
51
+ });
52
+ test('return result as expected in left', () => {
53
+ expect(component.getPositionBox(container, element, target, ['left'], ['start'])).toEqual({
54
+ top: 100,
55
+ left: 50,
56
+ placement: 'left',
57
+ alignment: 'start',
58
+ });
59
+ expect(component.getPositionBox(container, element, target, ['left'], ['center'])).toEqual({
60
+ top: 125,
61
+ left: 50,
62
+ placement: 'left',
63
+ alignment: 'center',
64
+ });
65
+ expect(component.getPositionBox(container, element, target, ['left'], ['end'])).toEqual({
66
+ top: 150,
67
+ left: 50,
68
+ placement: 'left',
69
+ alignment: 'end',
70
+ });
71
+ });
72
+ test('return result as expected in bottom', () => {
73
+ expect(component.getPositionBox(container, element, target, ['bottom'], ['start'])).toEqual({
74
+ top: 200,
75
+ left: 100,
76
+ placement: 'bottom',
77
+ alignment: 'start',
78
+ });
79
+ expect(component.getPositionBox(container, element, target, ['bottom'], ['center'])).toEqual({
80
+ top: 200,
81
+ left: 125,
82
+ placement: 'bottom',
83
+ alignment: 'center',
84
+ });
85
+ expect(component.getPositionBox(container, element, target, ['bottom'], ['end'])).toEqual({
86
+ top: 200,
87
+ left: 150,
88
+ placement: 'bottom',
89
+ alignment: 'end',
90
+ });
91
+ });
92
+ test('return result as expected in right', () => {
93
+ expect(component.getPositionBox(container, element, target, ['right'], ['start'])).toEqual({
94
+ top: 100,
95
+ left: 200,
96
+ placement: 'right',
97
+ alignment: 'start',
98
+ });
99
+ expect(component.getPositionBox(container, element, target, ['right'], ['center'])).toEqual({
100
+ top: 125,
101
+ left: 200,
102
+ placement: 'right',
103
+ alignment: 'center',
104
+ });
105
+ expect(component.getPositionBox(container, element, target, ['right'], ['end'])).toEqual({
106
+ top: 150,
107
+ left: 200,
108
+ placement: 'right',
109
+ alignment: 'end',
110
+ });
111
+ });
112
+ });
113
+ });
@@ -9,14 +9,17 @@ import { SubStateNotifySlimmerBase } from './sub-state-notify-slimmer-base';
9
9
  * @returns {SubStateNotifySlimmerBase} - SubState notify slimmer
10
10
  */
11
11
  export function createSubStateNotifySlimmer(mapFromClass, propName, watchMethodName) {
12
+ const methodsMap = [
13
+ { mapFrom: 'connectedCallback', mapTo: 'connectedCallback' },
14
+ { mapFrom: 'disconnectedCallback', mapTo: 'disconnectedCallback' },
15
+ ];
16
+ if (watchMethodName) {
17
+ methodsMap.push({ mapFrom: watchMethodName, mapTo: 'subStateNotify' });
18
+ }
12
19
  return createDynamicSlimmer(mapFromClass, SubStateNotifySlimmerBase, [
13
20
  { mapFrom: 'host', mapTo: 'host' },
14
21
  { mapFrom: propName, mapTo: 'propValue' },
15
- ], [
16
- { mapFrom: watchMethodName, mapTo: 'subStateNotify' },
17
- { mapFrom: 'connectedCallback', mapTo: 'connectedCallback' },
18
- { mapFrom: 'disconnectedCallback', mapTo: 'disconnectedCallback' },
19
- ], [
22
+ ], methodsMap, [
20
23
  {
21
24
  propName: propName,
22
25
  },
@@ -21,9 +21,11 @@ describe('SubStateObserverSlimmer', () => {
21
21
  this.parentState = 'parent only';
22
22
  // Mock component @State by using protected
23
23
  this.name = 'parent name';
24
+ this.staticState = true;
24
25
  this.nameNotifySlimmer = createSubStateNotifySlimmer(MockedParentComponent, 'name', 'watchName');
25
26
  this.ageNotifySlimmer = createSubStateNotifySlimmer(MockedParentComponent, 'age', 'watchAge');
26
27
  this.parentStateNotifySlimmer = createSubStateNotifySlimmer(MockedParentComponent, 'parentState', 'watchParentState');
28
+ this.staticStateNotifySlimmer = createSubStateNotifySlimmer(MockedParentComponent, 'staticState');
27
29
  }
28
30
  connectedCallback() {
29
31
  jest.fn();
@@ -53,6 +55,9 @@ describe('SubStateObserverSlimmer', () => {
53
55
  __decorate([
54
56
  InjectVegaSlimmer()
55
57
  ], MockedParentComponent.prototype, "parentStateNotifySlimmer", void 0);
58
+ __decorate([
59
+ InjectVegaSlimmer()
60
+ ], MockedParentComponent.prototype, "staticStateNotifySlimmer", void 0);
56
61
  class ChildStateSlimmer extends SubStateObserverSlimmer {
57
62
  constructor(entry) {
58
63
  super({
@@ -69,6 +74,10 @@ describe('SubStateObserverSlimmer', () => {
69
74
  this.age = value - 1;
70
75
  },
71
76
  },
77
+ {
78
+ subStateName: 'staticState',
79
+ parentStateName: 'staticState',
80
+ },
72
81
  ],
73
82
  pullStatesWhenReattached: entry && entry.pullStatesWhenReattached,
74
83
  });
@@ -83,6 +92,9 @@ describe('SubStateObserverSlimmer', () => {
83
92
  __decorate([
84
93
  MapToComponentField({ writable: true })
85
94
  ], ChildStateSlimmer.prototype, "age", void 0);
95
+ __decorate([
96
+ MapToComponentField({ writable: true })
97
+ ], ChildStateSlimmer.prototype, "staticState", void 0);
86
98
  class ChildComponent {
87
99
  constructor(childStateSlimmerEntry) {
88
100
  this.host = child;
@@ -108,6 +120,9 @@ describe('SubStateObserverSlimmer', () => {
108
120
  getChildState() {
109
121
  return this.childState;
110
122
  }
123
+ getStaticState() {
124
+ return this.staticState;
125
+ }
111
126
  }
112
127
  __decorate([
113
128
  InjectVegaSlimmer()
@@ -201,4 +216,13 @@ describe('SubStateObserverSlimmer', () => {
201
216
  childComponent.connectedCallback();
202
217
  expect(childComponent.getName()).toEqual('parent name');
203
218
  });
219
+ it('should subscribe parent static value as expected', () => {
220
+ const parentComponent = new MockedParentComponent();
221
+ const childComponent = new ChildComponent();
222
+ parentComponent.connectedCallback();
223
+ parentComponent.componentWillLoad();
224
+ childComponent.connectedCallback();
225
+ childComponent.componentWillLoad();
226
+ expect(childComponent.getStaticState()).toEqual(true);
227
+ });
204
228
  });