@watermarkinsights/ripple 3.0.1-0 → 3.0.2-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 (224) hide show
  1. package/dist/{ripple/functions-316c1b23.js → cjs/functions-e3f5ae65.js} +188 -2391
  2. package/dist/cjs/global-1e540de6.js +38 -0
  3. package/dist/cjs/http-service-9e8c4dd5.js +57 -0
  4. package/dist/cjs/index-d930307d.js +1392 -0
  5. package/dist/cjs/index.cjs.js +2 -0
  6. package/dist/cjs/interfaces-30a74c1f.js +35 -0
  7. package/dist/cjs/loader.cjs.js +22 -0
  8. package/dist/cjs/priv-chart-popover.cjs.entry.js +89 -0
  9. package/dist/cjs/priv-datepicker.cjs.entry.js +672 -0
  10. package/dist/cjs/priv-navigator-button.cjs.entry.js +29 -0
  11. package/dist/cjs/priv-navigator-item.cjs.entry.js +34 -0
  12. package/dist/cjs/ripple.cjs.js +20 -0
  13. package/dist/cjs/wm-action-menu_2.cjs.entry.js +318 -0
  14. package/dist/cjs/wm-button.cjs.entry.js +152 -0
  15. package/dist/cjs/wm-chart-slice.cjs.entry.js +22 -0
  16. package/dist/cjs/wm-chart.cjs.entry.js +508 -0
  17. package/dist/cjs/wm-datepicker.cjs.entry.js +257 -0
  18. package/dist/cjs/wm-input.cjs.entry.js +110 -0
  19. package/dist/cjs/wm-modal-footer.cjs.entry.js +43 -0
  20. package/dist/cjs/wm-modal-header.cjs.entry.js +45 -0
  21. package/dist/cjs/wm-modal.cjs.entry.js +149 -0
  22. package/dist/cjs/wm-navigator.cjs.entry.js +279 -0
  23. package/dist/cjs/wm-network-uploader.cjs.entry.js +431 -0
  24. package/dist/cjs/wm-option_2.cjs.entry.js +483 -0
  25. package/dist/cjs/wm-pagination.cjs.entry.js +176 -0
  26. package/dist/cjs/wm-search.cjs.entry.js +231 -0
  27. package/dist/cjs/wm-snackbar.cjs.entry.js +160 -0
  28. package/dist/cjs/wm-tab-item_3.cjs.entry.js +316 -0
  29. package/dist/cjs/wm-tag-input.cjs.entry.js +538 -0
  30. package/dist/cjs/wm-timepicker.cjs.entry.js +386 -0
  31. package/dist/cjs/wm-toggletip.cjs.entry.js +128 -0
  32. package/dist/cjs/wm-uploader.cjs.entry.js +342 -0
  33. package/dist/cjs/wm-wrapper.cjs.entry.js +21 -0
  34. package/dist/collection/collection-manifest.json +131 -0
  35. package/dist/{ripple/ripple.css → collection/components/wm-action-menu/wm-action-menu.css} +80 -42
  36. package/dist/collection/components/wm-action-menu/wm-action-menu.js +392 -0
  37. package/dist/collection/components/wm-button/wm-button.css +572 -0
  38. package/dist/collection/components/wm-button/wm-button.js +365 -0
  39. package/dist/collection/components/wm-chart/priv-chart-popover/priv-chart-popover.css +132 -0
  40. package/dist/collection/components/wm-chart/priv-chart-popover/priv-chart-popover.js +232 -0
  41. package/dist/collection/components/wm-chart/wm-chart-slice.js +64 -0
  42. package/dist/collection/components/wm-chart/wm-chart.css +337 -0
  43. package/dist/collection/components/wm-chart/wm-chart.js +710 -0
  44. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.css +374 -0
  45. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +1003 -0
  46. package/dist/collection/components/wm-datepicker/wm-datepicker.css +211 -0
  47. package/dist/collection/components/wm-datepicker/wm-datepicker.js +439 -0
  48. package/dist/collection/components/wm-input/wm-input.css +220 -0
  49. package/dist/collection/components/wm-input/wm-input.js +302 -0
  50. package/dist/collection/components/wm-menuitem/wm-menuitem.css +118 -0
  51. package/dist/collection/components/wm-menuitem/wm-menuitem.js +411 -0
  52. package/dist/collection/components/wm-modal/wm-modal-footer.css +84 -0
  53. package/dist/collection/components/wm-modal/wm-modal-footer.js +159 -0
  54. package/dist/collection/components/wm-modal/wm-modal-header.css +78 -0
  55. package/dist/collection/components/wm-modal/wm-modal-header.js +109 -0
  56. package/dist/collection/components/wm-modal/wm-modal.css +155 -0
  57. package/dist/collection/components/wm-modal/wm-modal.js +356 -0
  58. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.css +94 -0
  59. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +97 -0
  60. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.css +67 -0
  61. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +114 -0
  62. package/dist/collection/components/wm-navigator/wm-navigator.css +137 -0
  63. package/dist/collection/components/wm-navigator/wm-navigator.js +468 -0
  64. package/dist/collection/components/wm-option/wm-option.css +162 -0
  65. package/dist/collection/components/wm-option/wm-option.js +394 -0
  66. package/dist/collection/components/wm-pagination/wm-pagination.css +217 -0
  67. package/dist/collection/components/wm-pagination/wm-pagination.js +348 -0
  68. package/dist/collection/components/wm-search/wm-search.css +155 -0
  69. package/dist/collection/components/wm-search/wm-search.js +439 -0
  70. package/dist/collection/components/wm-select/wm-select.css +315 -0
  71. package/dist/collection/components/wm-select/wm-select.js +676 -0
  72. package/dist/collection/components/wm-snackbar/wm-snackbar.css +331 -0
  73. package/dist/collection/components/wm-snackbar/wm-snackbar.js +240 -0
  74. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.css +104 -0
  75. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +202 -0
  76. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.css +73 -0
  77. package/dist/{ripple/wm-tab-list.entry.js → collection/components/wm-tabs/wm-tab-list/wm-tab-list.js} +131 -17
  78. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.css +57 -0
  79. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +104 -0
  80. package/dist/collection/components/wm-tag-input/wm-tag-input.css +431 -0
  81. package/dist/collection/components/wm-tag-input/wm-tag-input.js +754 -0
  82. package/dist/collection/components/wm-timepicker/wm-timepicker.css +370 -0
  83. package/dist/collection/components/wm-timepicker/wm-timepicker.js +567 -0
  84. package/dist/collection/components/wm-toggletip/wm-toggletip.css +350 -0
  85. package/dist/collection/components/wm-toggletip/wm-toggletip.js +217 -0
  86. package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.css +642 -0
  87. package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js +753 -0
  88. package/dist/collection/components/wm-uploader/wm-uploader.css +666 -0
  89. package/dist/collection/components/wm-uploader/wm-uploader.js +673 -0
  90. package/dist/collection/components/wm-wrapper/wm-wrapper.js +27 -0
  91. package/dist/collection/dev/scripts.js +20 -0
  92. package/dist/collection/global/__mocks__/functions.js +5 -0
  93. package/dist/collection/global/functions.js +420 -0
  94. package/dist/{ripple/app-globals-b5693c90.js → collection/global/global.js} +3 -8
  95. package/dist/{ripple/interfaces-50753346.js → collection/global/interfaces.js} +4 -6
  96. package/dist/collection/global/services/__mocks__/http-service.js +130 -0
  97. package/dist/collection/global/services/http-service.js +50 -0
  98. package/dist/collection/lang/lang.js +5 -0
  99. package/dist/collection/lang/piglatin.js +93 -0
  100. package/dist/esm/functions-0deb7f8e.js +6117 -0
  101. package/dist/esm/global-d6b49e98.js +36 -0
  102. package/dist/{ripple → esm}/http-service-5d037e16.js +0 -0
  103. package/dist/esm/index-5a842e48.js +1363 -0
  104. package/dist/esm/index.js +1 -0
  105. package/dist/esm/interfaces-61c6305b.js +32 -0
  106. package/dist/esm/loader.js +18 -0
  107. package/dist/esm/polyfills/core-js.js +11 -0
  108. package/dist/esm/polyfills/css-shim.js +1 -0
  109. package/dist/esm/polyfills/dom.js +79 -0
  110. package/dist/esm/polyfills/es5-html-element.js +1 -0
  111. package/dist/esm/polyfills/index.js +34 -0
  112. package/dist/esm/polyfills/system.js +6 -0
  113. package/dist/{ripple → esm}/priv-chart-popover.entry.js +2 -2
  114. package/dist/{ripple → esm}/priv-datepicker.entry.js +3 -3
  115. package/dist/{ripple → esm}/priv-navigator-button.entry.js +1 -1
  116. package/dist/{ripple → esm}/priv-navigator-item.entry.js +1 -1
  117. package/dist/esm/ripple.js +18 -0
  118. package/dist/{ripple/wm-action-menu.entry.js → esm/wm-action-menu_2.entry.js} +114 -3
  119. package/dist/{ripple → esm}/wm-button.entry.js +3 -3
  120. package/dist/{ripple → esm}/wm-chart-slice.entry.js +1 -1
  121. package/dist/{ripple → esm}/wm-chart.entry.js +2 -2
  122. package/dist/{ripple → esm}/wm-datepicker.entry.js +27 -32
  123. package/dist/{ripple → esm}/wm-input.entry.js +2 -2
  124. package/dist/{ripple → esm}/wm-modal-footer.entry.js +2 -2
  125. package/dist/{ripple → esm}/wm-modal-header.entry.js +2 -2
  126. package/dist/{ripple → esm}/wm-modal.entry.js +2 -2
  127. package/dist/{ripple → esm}/wm-navigator.entry.js +3 -3
  128. package/dist/{ripple → esm}/wm-network-uploader.entry.js +2 -2
  129. package/dist/{ripple/wm-select.entry.js → esm/wm-option_2.entry.js} +119 -3
  130. package/dist/{ripple → esm}/wm-pagination.entry.js +2 -2
  131. package/dist/{ripple → esm}/wm-search.entry.js +2 -2
  132. package/dist/{ripple → esm}/wm-snackbar.entry.js +2 -2
  133. package/dist/esm/wm-tab-item_3.entry.js +310 -0
  134. package/dist/{ripple → esm}/wm-tag-input.entry.js +2 -2
  135. package/dist/{ripple → esm}/wm-timepicker.entry.js +2 -2
  136. package/dist/{ripple → esm}/wm-toggletip.entry.js +2 -2
  137. package/dist/{ripple → esm}/wm-uploader.entry.js +2 -2
  138. package/dist/{ripple → esm}/wm-wrapper.entry.js +1 -1
  139. package/dist/index.cjs.js +1 -0
  140. package/dist/index.js +1 -0
  141. package/dist/loader/cdn.js +3 -0
  142. package/dist/loader/index.cjs.js +3 -0
  143. package/dist/loader/index.d.ts +13 -0
  144. package/dist/loader/index.es2017.js +3 -0
  145. package/dist/loader/index.js +4 -0
  146. package/dist/loader/package.json +10 -0
  147. package/dist/ripple/index.esm.js +0 -1
  148. package/dist/ripple/p-103f8cae.entry.js +1 -0
  149. package/dist/ripple/p-129d94fa.entry.js +1 -0
  150. package/dist/ripple/p-139fe143.entry.js +1 -0
  151. package/dist/ripple/p-16367805.entry.js +1 -0
  152. package/dist/ripple/p-1d334060.entry.js +1 -0
  153. package/dist/ripple/p-2562f330.entry.js +1 -0
  154. package/dist/ripple/p-278b26ef.entry.js +1 -0
  155. package/dist/ripple/p-2c21bb72.entry.js +1 -0
  156. package/dist/ripple/p-2f5fda71.entry.js +1 -0
  157. package/dist/ripple/p-3e6f04d5.entry.js +1 -0
  158. package/dist/ripple/p-7185de7f.entry.js +1 -0
  159. package/dist/ripple/p-770d0798.entry.js +1 -0
  160. package/dist/ripple/p-846b4c5f.entry.js +1 -0
  161. package/dist/ripple/p-888bec42.js +1 -0
  162. package/dist/ripple/p-90779d53.entry.js +1 -0
  163. package/dist/ripple/p-934543f2.js +1 -0
  164. package/dist/ripple/p-9a087fee.entry.js +1 -0
  165. package/dist/ripple/p-a6d6eae7.js +1 -0
  166. package/dist/ripple/p-a942ad10.entry.js +1 -0
  167. package/dist/ripple/p-bfb4652d.entry.js +1 -0
  168. package/dist/ripple/p-c0fe5201.entry.js +1 -0
  169. package/dist/ripple/p-c2e27acc.entry.js +1 -0
  170. package/dist/ripple/p-c2edda64.entry.js +1 -0
  171. package/dist/ripple/p-d1fdcbcf.entry.js +1 -0
  172. package/dist/ripple/p-d40b6afb.entry.js +1 -0
  173. package/dist/ripple/p-da73db1c.entry.js +1 -0
  174. package/dist/ripple/p-e3843249.js +1 -0
  175. package/dist/ripple/p-ea5cd8b8.js +16 -0
  176. package/dist/ripple/p-ed0f43f4.entry.js +1 -0
  177. package/dist/ripple/p-ffafd363.entry.js +1 -0
  178. package/dist/ripple/ripple.esm.js +1 -125
  179. package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +43 -0
  180. package/dist/types/components/wm-button/wm-button.d.ts +36 -0
  181. package/dist/types/components/wm-chart/priv-chart-popover/priv-chart-popover.d.ts +23 -0
  182. package/dist/types/components/wm-chart/wm-chart-slice.d.ts +8 -0
  183. package/dist/types/components/wm-chart/wm-chart.d.ts +77 -0
  184. package/dist/types/components/wm-datepicker/priv-datepicker/priv-datepicker.d.ts +75 -0
  185. package/dist/types/components/wm-datepicker/wm-datepicker.d.ts +39 -0
  186. package/dist/types/components/wm-input/wm-input.d.ts +30 -0
  187. package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +30 -0
  188. package/dist/types/components/wm-modal/wm-modal-footer.d.ts +15 -0
  189. package/dist/types/components/wm-modal/wm-modal-header.d.ts +12 -0
  190. package/dist/types/components/wm-modal/wm-modal.d.ts +34 -0
  191. package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +10 -0
  192. package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +13 -0
  193. package/dist/types/components/wm-navigator/wm-navigator.d.ts +61 -0
  194. package/dist/types/components/wm-option/wm-option.d.ts +28 -0
  195. package/dist/types/components/wm-pagination/wm-pagination.d.ts +31 -0
  196. package/dist/types/components/wm-search/wm-search.d.ts +78 -0
  197. package/dist/types/components/wm-select/wm-select.d.ts +63 -0
  198. package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +32 -0
  199. package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +35 -0
  200. package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +50 -0
  201. package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +20 -0
  202. package/dist/types/components/wm-tag-input/{wm-tag-input.d.ts~ds312_tagInputMaxTags → wm-tag-input.d.ts} +1 -1
  203. package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +59 -0
  204. package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +25 -0
  205. package/dist/types/components/wm-uploader/wm-network-uploader/wm-network-uploader.d.ts +85 -0
  206. package/dist/types/components/wm-uploader/wm-uploader.d.ts +75 -0
  207. package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +7 -0
  208. package/dist/types/{components.d.ts~ds312_tagInputMaxTags → components.d.ts} +0 -0
  209. package/dist/types/global/__mocks__/functions.d.ts +5 -0
  210. package/dist/types/global/global.d.ts +1 -0
  211. package/dist/types/global/interfaces.d.ts +33 -0
  212. package/dist/types/global/services/__mocks__/http-service.d.ts +6 -0
  213. package/dist/types/global/services/http-service.d.ts +4 -0
  214. package/dist/types/lang/lang.d.ts +5 -0
  215. package/dist/types/{stencil-public-runtime.d.ts~ds312_tagInputMaxTags → stencil-public-runtime.d.ts} +190 -182
  216. package/package.json +1 -1
  217. package/dist/ripple/css-shim-bbdf0cc6.js +0 -4
  218. package/dist/ripple/dom-1f98a75f.js +0 -73
  219. package/dist/ripple/index-20b65f86.js +0 -2938
  220. package/dist/ripple/shadow-css-67b66845.js +0 -389
  221. package/dist/ripple/wm-menuitem.entry.js +0 -114
  222. package/dist/ripple/wm-option.entry.js +0 -119
  223. package/dist/ripple/wm-tab-item.entry.js +0 -78
  224. package/dist/ripple/wm-tab-panel.entry.js +0 -38
@@ -0,0 +1,672 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-d930307d.js');
6
+ const functions = require('./functions-e3f5ae65.js');
7
+
8
+ const privDatepickerCss = "@charset \"UTF-8\";.toggle{all:unset;cursor:pointer;padding:0 0.375rem;height:2.375rem;border:none;-moz-border-top-right-radius:3px;-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-moz-border-bottom-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-top-left-radius:0;-webkit-border-top-left-radius:0;border-top-left-radius:0;-moz-border-bottom-left-radius:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;background-color:#fff}.toggle:disabled{pointer-events:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;background-color:rgba(74, 74, 74, 0.05)}.toggle:disabled .calendar::after{color:#7b7b7b}.toggle:hover{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;background:#e6e6e6}.toggle:hover .calendar::after{color:#575195}[dir=RTL] .toggle{right:auto;left:0}.toggle span::after{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\";font-size:1.5rem;color:#575195;padding:0;line-height:2.5rem}.toggle:focus{outline:none}.toggle::-moz-focus-inner{border:0}.user-is-tabbing .toggle:focus{-webkit-box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e;-moz-box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e;box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e}.user-is-tabbing .toggle:focus::-moz-focus-inner{border:0}.popup{visibility:hidden;font-family:inherit;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;-webkit-box-shadow:0px 4px 15px 0px rgba(0, 0, 0, 0.2);-moz-box-shadow:0px 4px 15px 0px rgba(0, 0, 0, 0.2);box-shadow:0px 4px 15px 0px rgba(0, 0, 0, 0.2);width:21rem;z-index:10;position:absolute;left:0;top:40px;min-height:21.0625rem;transition:transform 0.25s ease;transform-origin:center top;transform:scale(1, 0);background-color:#fff}.popup.open{transform:scale(1, 1)}.popup.expand-upwards{top:auto;bottom:2.375rem;transform-origin:center bottom}.popup .calendar-header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;position:relative;padding:0.9375rem 0.25rem}.popup .calendar-header .title-box{height:2.625rem;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;border:1px solid;font-weight:500;font-size:0.875rem;background:transparent;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:0 0.375rem 0 0.75rem;border-color:#575195;color:#575195}.popup .calendar-header .title-box:after{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\";padding-left:0.75rem}.popup .calendar-header .title-box.year:after{content:\"\"}.popup .calendar-header .title-box::-moz-focus-inner{border:0}.popup .calendar-header .title-box:focus{outline:none}.popup .calendar-header .arw-btn{cursor:pointer;-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;border-radius:50%;width:2.75rem;height:2.75rem;border:none;color:#575195;background:transparent;padding:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;line-height:2.75rem}.popup .calendar-header .arw-btn .mdi{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:1.5rem;font-weight:normal;line-height:2.75rem}.popup .calendar-header .arw-btn .mdi:hover{background-color:#efeef1}.popup .calendar-header .arw-btn:focus{outline:none}.popup .calendar-header .arw-btn:active{-ms-transform:scale(0.9, 0.9);-webkit-transform:scale(0.9, 0.9);-moz-transform:scale(0.9, 0.9);transform:scale(0.9, 0.9);background-color:#d7d6d9}.popup .day-view{min-width:100%}.popup .day-view .date-grid{width:100%;text-align:center;border-collapse:collapse;margin-bottom:0.4375rem;color:#757575}.popup .day-view .date-grid .date-row:first-child .date-cell{margin-top:0.125rem}.popup .day-view .date-grid .date-header{background-color:#eeedf4}.popup .day-view .date-grid .header-cell{height:2.0625rem;line-height:2.0625rem;width:2.75rem;margin:0 calc((14.28% - 44px) / 2);padding:0;display:inline-block;font-size:0.8125rem;font-weight:bold;color:#4a4a4a;border:none}.popup .day-view .date-grid .date-cell{cursor:pointer;display:inline-block;padding:0;-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;border-radius:50%;height:2.75rem;width:2.75rem;margin:0 calc((14.28% - 44px) / 2);font-size:0.875rem;font-weight:500;line-height:2.75rem}.popup .day-view .date-grid .date-cell:focus{outline:none}.popup .day-view .date-grid .date-cell:hover{background-color:#efeef1}.popup .day-view .date-grid .date-cell:active{background-color:#575195;color:#ffffff}.popup .day-view .date-grid .date-cell.current-month{color:#4a4a4a}.popup .day-view .date-grid .date-cell.current-month[aria-selected=true]{background-color:#575195;color:#ffffff}.popup .month-view .months{border-top:2px solid;border-top-color:#eeedf4;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-wrap:wrap}.popup .month-view .month-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;width:100%;border-bottom:2px solid;border-bottom-color:#eeedf4}.popup .month-view .month{cursor:pointer;text-align:center;width:100%;height:4rem;line-height:4rem;font-weight:500;color:#575195}.popup .month-view .month:not(:last-child){border-right:2px solid;border-right-color:#eeedf4}.popup .month-view .month:focus{outline:none}.popup .month-view .month:hover{background-color:#efeef1}.popup .month-view .month:active,.popup .month-view .month.selected{background-color:#575195;color:#ffffff}.popup.user-is-tabbing button:focus,.popup.user-is-tabbing .title-box:focus,.popup.user-is-tabbing .date-cell:focus,.popup.user-is-tabbing .month:focus{-webkit-box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e;-moz-box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e;box-shadow:0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e;border:none;z-index:11}.popup.user-is-tabbing button:focus::-moz-focus-inner,.popup.user-is-tabbing .title-box:focus::-moz-focus-inner,.popup.user-is-tabbing .date-cell:focus::-moz-focus-inner,.popup.user-is-tabbing .month:focus::-moz-focus-inner{border:0}.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;clip-path:inset(50%) !important;white-space:nowrap !important;margin:-1px !important}";
9
+
10
+ const PrivDatepicker = class {
11
+ constructor(hostRef) {
12
+ index.registerInstance(this, hostRef);
13
+ this.cellTriggered = index.createEvent(this, "cellTriggered", 7);
14
+ this.toggleButtonClicked = index.createEvent(this, "toggleButtonClicked", 7);
15
+ this.popupClosed = index.createEvent(this, "popupClosed", 7);
16
+ this.disabled = false;
17
+ this.isExpanded = false;
18
+ this.view = "day";
19
+ this.date = new Date();
20
+ this.selectedYear = this.date.getUTCFullYear();
21
+ this.selectedMonth = this.date.getUTCMonth() + 1;
22
+ this.selectedDay = this.date.getUTCDate();
23
+ this.monthInFocus = this.selectedMonth;
24
+ this.yearInFocus = this.selectedYear;
25
+ this.dayInFocus = this.selectedDay;
26
+ this.monthNumInFocus = this.selectedMonth;
27
+ this.parentId = "";
28
+ this.popupClicked = true;
29
+ this.buttonClicked = true;
30
+ this.prevClicked = true;
31
+ this.nextClicked = true;
32
+ this.openUp = false;
33
+ this.calendar_months = [
34
+ functions.intl.formatMessage({
35
+ id: "date.january",
36
+ defaultMessage: "January",
37
+ description: "Month of the year",
38
+ }),
39
+ functions.intl.formatMessage({
40
+ id: "date.february",
41
+ defaultMessage: "February",
42
+ description: "Month of the year",
43
+ }),
44
+ functions.intl.formatMessage({
45
+ id: "date.march",
46
+ defaultMessage: "March",
47
+ description: "Month of the year",
48
+ }),
49
+ functions.intl.formatMessage({
50
+ id: "date.april",
51
+ defaultMessage: "April",
52
+ description: "Month of the year",
53
+ }),
54
+ functions.intl.formatMessage({
55
+ id: "date.may",
56
+ defaultMessage: "May",
57
+ description: "Month of the year",
58
+ }),
59
+ functions.intl.formatMessage({
60
+ id: "date.june",
61
+ defaultMessage: "June",
62
+ description: "Month of the year",
63
+ }),
64
+ functions.intl.formatMessage({
65
+ id: "date.july",
66
+ defaultMessage: "July",
67
+ description: "Month of the year",
68
+ }),
69
+ functions.intl.formatMessage({
70
+ id: "date.august",
71
+ defaultMessage: "August",
72
+ description: "Month of the year",
73
+ }),
74
+ functions.intl.formatMessage({
75
+ id: "date.september",
76
+ defaultMessage: "September",
77
+ description: "Month of the year",
78
+ }),
79
+ functions.intl.formatMessage({
80
+ id: "date.october",
81
+ defaultMessage: "October",
82
+ description: "Month of the year",
83
+ }),
84
+ functions.intl.formatMessage({
85
+ id: "date.november",
86
+ defaultMessage: "November",
87
+ description: "Month of the year",
88
+ }),
89
+ functions.intl.formatMessage({
90
+ id: "date.december",
91
+ defaultMessage: "December",
92
+ description: "Month of the year",
93
+ }),
94
+ ];
95
+ this.weekdays = [
96
+ functions.intl.formatMessage({ id: "date.sunday", defaultMessage: "Sunday" }),
97
+ functions.intl.formatMessage({ id: "date.monday", defaultMessage: "Monday" }),
98
+ functions.intl.formatMessage({ id: "date.tuesday", defaultMessage: "Tuesday" }),
99
+ functions.intl.formatMessage({ id: "date.wednesday", defaultMessage: "Wednesday" }),
100
+ functions.intl.formatMessage({ id: "date.thursday", defaultMessage: "Thursday" }),
101
+ functions.intl.formatMessage({ id: "date.friday", defaultMessage: "Friday" }),
102
+ functions.intl.formatMessage({ id: "date.saturday", defaultMessage: "Saturday" }),
103
+ ];
104
+ this.renderCalendarDate = (date, index$1) => {
105
+ let monthOfDate = this.removeZeroes(String(date[1]));
106
+ let dayOfDate = this.removeZeroes(String(date[2]));
107
+ let isThisMonth = monthOfDate === this.monthInFocus ? "current-month" : "";
108
+ const dateId = date[0] + date[1] + date[2];
109
+ const isToday = this.isDateToday(date);
110
+ return (index.h("div", { role: "gridcell", id: `cell-${dateId}-${this.parentId}`, class: `date-cell ${isThisMonth}`, "aria-selected": false, "aria-label": `${isToday
111
+ ? `${functions.intl.formatMessage({
112
+ id: "date.today",
113
+ defaultMessage: "today",
114
+ description: "calendar button",
115
+ })}, `
116
+ : ""}${this.weekdays[index$1]}, ${this.calendar_months[monthOfDate - 1]} ${dayOfDate}, ${date[0]}`, onClick: (ev) => {
117
+ this.handleTriggeredDate(ev.target);
118
+ }, onKeyDown: (ev) => this.trapFocusEnd(ev), "data-month": date[1], "data-year": date[0], onBlur: (ev) => ev.stopPropagation() }, dayOfDate));
119
+ };
120
+ }
121
+ handleKey(ev) {
122
+ this.prevClicked = false;
123
+ this.nextClicked = false;
124
+ switch (ev.keyCode) {
125
+ // Enter
126
+ case 13:
127
+ ev.preventDefault();
128
+ //Clunky exception for blur validation. Remove when blur reworked.
129
+ !ev.target.id.includes("popup-title") && ev.target.click();
130
+ break;
131
+ //escape
132
+ case 27:
133
+ ev.preventDefault();
134
+ if (this.isExpanded) {
135
+ ev.stopPropagation(); // prevents closing of parent modal
136
+ this.togglePopup();
137
+ this.buttonEl.focus();
138
+ }
139
+ break;
140
+ // Page Up
141
+ case 33:
142
+ ev.preventDefault();
143
+ this.backOneMonth();
144
+ break;
145
+ // Page Down
146
+ case 34:
147
+ ev.preventDefault();
148
+ this.forwardOneMonth();
149
+ break;
150
+ // Home
151
+ case 36:
152
+ ev.preventDefault();
153
+ this.unfocusCell();
154
+ this.dayInFocus = 1;
155
+ index.forceUpdate(this.el);
156
+ break;
157
+ // End
158
+ case 35:
159
+ ev.preventDefault();
160
+ this.unfocusCell();
161
+ this.dayInFocus = this.getMonthDays(this.monthInFocus, this.yearInFocus);
162
+ index.forceUpdate(this.el);
163
+ break;
164
+ //left
165
+ case 37:
166
+ ev.preventDefault();
167
+ if (this.view === "day") {
168
+ this.unfocusCell();
169
+ if (this.dayInFocus === 1) {
170
+ const newMonth = this.getPreviousMonth(this.monthInFocus, this.yearInFocus);
171
+ this.monthInFocus = newMonth.month;
172
+ this.yearInFocus = newMonth.year;
173
+ this.dayInFocus = this.getMonthDays(this.monthInFocus, this.yearInFocus);
174
+ }
175
+ else {
176
+ this.dayInFocus -= 1;
177
+ }
178
+ }
179
+ else {
180
+ this.unfocusMonth();
181
+ if (this.monthNumInFocus === 0) {
182
+ this.monthNumInFocus = 11;
183
+ }
184
+ else {
185
+ this.monthNumInFocus -= 1;
186
+ }
187
+ }
188
+ break;
189
+ //right
190
+ case 39:
191
+ ev.preventDefault();
192
+ if (this.view === "day") {
193
+ this.unfocusCell();
194
+ if (this.dayInFocus === this.getMonthDays(this.monthInFocus, this.yearInFocus)) {
195
+ const newMonth = this.getNextMonth(this.monthInFocus, this.yearInFocus);
196
+ this.monthInFocus = newMonth.month;
197
+ this.yearInFocus = newMonth.year;
198
+ this.dayInFocus = 1;
199
+ }
200
+ else {
201
+ this.dayInFocus += 1;
202
+ }
203
+ }
204
+ else {
205
+ this.unfocusMonth();
206
+ if (this.monthNumInFocus === 11) {
207
+ this.monthNumInFocus = 0;
208
+ }
209
+ else {
210
+ this.monthNumInFocus += 1;
211
+ }
212
+ }
213
+ break;
214
+ //up
215
+ case 38:
216
+ ev.preventDefault();
217
+ if (this.view === "day") {
218
+ this.unfocusCell();
219
+ if (this.dayInFocus < 8) {
220
+ const newMonth = this.getPreviousMonth(this.monthInFocus, this.yearInFocus);
221
+ this.monthInFocus = newMonth.month;
222
+ this.yearInFocus = newMonth.year;
223
+ const numDaysToSubtract = 7 - this.dayInFocus;
224
+ this.dayInFocus = this.getMonthDays(this.monthInFocus, this.yearInFocus) - numDaysToSubtract;
225
+ }
226
+ else {
227
+ this.dayInFocus -= 7;
228
+ }
229
+ }
230
+ else {
231
+ this.unfocusMonth();
232
+ if (this.monthNumInFocus < 3) {
233
+ this.monthNumInFocus += 9;
234
+ }
235
+ else {
236
+ this.monthNumInFocus -= 3;
237
+ }
238
+ }
239
+ break;
240
+ //down
241
+ case 40:
242
+ ev.preventDefault();
243
+ if (!this.isExpanded) {
244
+ this.openPopup();
245
+ }
246
+ else {
247
+ if (this.view === "day") {
248
+ //If the down arrow is pressed from the month button or the arrow buttons, focus should shift to the current cell in focus
249
+ if (!(document.activeElement.shadowRoot || document).activeElement.classList.contains("date-cell")) {
250
+ this.focusCell();
251
+ break;
252
+ }
253
+ this.unfocusCell();
254
+ const changeoverDate = this.getMonthDays(this.monthInFocus, this.yearInFocus) - 7;
255
+ if (this.dayInFocus > changeoverDate) {
256
+ const newMonth = this.getNextMonth(this.monthInFocus, this.yearInFocus);
257
+ this.monthInFocus = newMonth.month;
258
+ this.yearInFocus = newMonth.year;
259
+ this.dayInFocus = this.dayInFocus - changeoverDate;
260
+ }
261
+ else {
262
+ this.dayInFocus += 7;
263
+ }
264
+ }
265
+ else {
266
+ //If the down arrow is pressed from the arrow buttons or the title box, focus should shift to the current month in focus
267
+ const activeEl = (document.activeElement.shadowRoot || document).activeElement;
268
+ if (activeEl.tagName === "BUTTON" || activeEl.id.includes("popup-title-year")) {
269
+ this.focusMonth();
270
+ break;
271
+ }
272
+ this.unfocusMonth();
273
+ if (this.monthNumInFocus > 8) {
274
+ this.monthNumInFocus -= 9;
275
+ }
276
+ else {
277
+ this.monthNumInFocus += 3;
278
+ }
279
+ }
280
+ }
281
+ break;
282
+ }
283
+ }
284
+ toggleTabbingOn(ev) {
285
+ var keys = ["Tab", 9, "ArrowUp", 38, "ArrowDown", 40, "ArrowLeft", 37, "ArrowRight", 39, "Enter", 13];
286
+ var key = ev.key || ev.keyCode;
287
+ if (keys.includes(key)) {
288
+ this.popupEl && this.popupEl.classList.add("user-is-tabbing");
289
+ }
290
+ }
291
+ //Using mousedown prevents this from running when the keydown listener emits ".click()" for when enter is pressed.
292
+ toggleTabbingOff() {
293
+ this.popupEl && this.popupEl.classList.remove("user-is-tabbing");
294
+ }
295
+ blurHandler() {
296
+ if (!this.popupClicked && !this.buttonClicked && this.isExpanded) {
297
+ this.closePopup();
298
+ }
299
+ this.popupClicked = false;
300
+ this.buttonClicked = false;
301
+ }
302
+ setDateValuesForView() {
303
+ this.selectedYear = this.date.getUTCFullYear();
304
+ this.selectedMonth = this.date.getUTCMonth() + 1;
305
+ this.selectedDay = this.date.getUTCDate();
306
+ this.monthInFocus = this.selectedMonth;
307
+ this.yearInFocus = this.selectedYear;
308
+ this.dayInFocus = this.selectedDay;
309
+ this.monthNumInFocus = this.selectedMonth - 1;
310
+ }
311
+ togglePopup() {
312
+ this.isExpanded ? this.closePopup() : this.openPopup();
313
+ this.buttonClicked = true;
314
+ }
315
+ updateLiveRegion(text) {
316
+ let liveRegion = this.el.querySelector("#live-region");
317
+ liveRegion.innerHTML = text;
318
+ }
319
+ closePopup() {
320
+ this.isExpanded = false;
321
+ this.popupEl.classList.remove("open");
322
+ window.setTimeout(() => {
323
+ //not using display none in order to get measurements of the popup while hidden
324
+ this.popupEl.style.visibility = "hidden";
325
+ }, 250);
326
+ //Reset values so that menu reopens to day view with selected date in focus
327
+ if (this.view === "day") {
328
+ this.unfocusCell();
329
+ }
330
+ this.monthInFocus = this.selectedMonth;
331
+ this.yearInFocus = this.selectedYear;
332
+ this.dayInFocus = this.selectedDay;
333
+ this.changeView("day");
334
+ window.requestAnimationFrame(() => {
335
+ //For instances where the app is checking for errors in the date on blur
336
+ // trigger blur, but keep focus on button
337
+ this.popupClosed.emit();
338
+ this.buttonEl.focus();
339
+ });
340
+ }
341
+ openPopup() {
342
+ this.panelPosition();
343
+ this.setDateValuesForView();
344
+ this.prevClicked = false;
345
+ this.nextClicked = false;
346
+ this.popupEl.style.visibility = "visible";
347
+ window.requestAnimationFrame(() => {
348
+ this.popupEl.classList.add("open");
349
+ });
350
+ this.isExpanded = true;
351
+ this.focusCell();
352
+ }
353
+ panelPosition() {
354
+ // getting a ref to the input el (in datepicker.tsx)
355
+ let host = document.getElementById(this.parentId);
356
+ const labelHeight = host.shadowRoot.querySelector(".label-wrapper").clientHeight;
357
+ this.openUp = functions.shouldOpenUp(host, this.popupEl, labelHeight);
358
+ if (functions.hasRoomRight(host, 336)) {
359
+ this.popupEl.style.left = "0";
360
+ this.popupEl.style.right = "auto";
361
+ }
362
+ else {
363
+ this.popupEl.style.right = "0";
364
+ this.popupEl.style.left = "auto";
365
+ }
366
+ }
367
+ changeView(newView) {
368
+ this.view = newView;
369
+ //Ensure month view always opens to the month last visited in date view
370
+ this.monthNumInFocus = this.monthInFocus - 1;
371
+ }
372
+ getMonthDays(month, year) {
373
+ const months30 = [4, 6, 9, 11];
374
+ const leapYear = year % 4 === 0;
375
+ return month === 2 ? (leapYear ? 29 : 28) : months30.includes(month) ? 30 : 31;
376
+ }
377
+ zeroPad(value, length) {
378
+ if (!String.prototype.padStart) {
379
+ String.prototype.padStart = function padStart(targetLength, padString) {
380
+ targetLength = targetLength - this.length;
381
+ if (targetLength > padString.length) {
382
+ padString += padString.repeat(targetLength / padString.length);
383
+ }
384
+ return padString.slice(0, targetLength) + String(this);
385
+ };
386
+ }
387
+ return `${value.toString()}`.padStart(length, "0");
388
+ }
389
+ // 1 => Sunday, 7 => Saturday
390
+ getMonthFirstDay(month, year) {
391
+ return +new Date(year, month - 1, 1, 12, 0, 0).getDay() + 1;
392
+ }
393
+ getPreviousMonth(month, year) {
394
+ const prevMonth = month > 1 ? month - 1 : 12;
395
+ const prevMonthYear = month > 1 ? year : year - 1;
396
+ return { month: prevMonth, year: prevMonthYear };
397
+ }
398
+ getNextMonth(month, year) {
399
+ const nextMonth = month < 12 ? month + 1 : 1;
400
+ const nextMonthYear = month < 12 ? year : year + 1;
401
+ return { month: nextMonth, year: nextMonthYear };
402
+ }
403
+ getCalendarDates(month, year) {
404
+ // Get number of days in the month and the month's first day
405
+ const monthDays = this.getMonthDays(month, year);
406
+ const monthFirstDay = this.getMonthFirstDay(month, year);
407
+ // Get number of days to be displayed from previous and next months
408
+ // These ensure a total of 42 days (6 weeks) displayed on the calendar
409
+ const daysFromPrevMonth = monthFirstDay - 1;
410
+ let daysFromNextMonth = 42 - (daysFromPrevMonth + monthDays);
411
+ daysFromNextMonth = daysFromNextMonth > 6 ? daysFromNextMonth - 7 : daysFromNextMonth;
412
+ // Get the previous and next months and years
413
+ const { month: prevMonth, year: prevMonthYear } = this.getPreviousMonth(month, year);
414
+ const { month: nextMonth, year: nextMonthYear } = this.getNextMonth(month, year);
415
+ // Get number of days in previous month
416
+ const prevMonthDays = this.getMonthDays(prevMonth, prevMonthYear);
417
+ // Builds dates to be displayed from previous month. The initialized array is "filled" with an arbitrary number because IE and Edge won't map over an array with empty values.
418
+ const prevMonthDates = [...new Array(daysFromPrevMonth).fill("1")].map((_, index) => {
419
+ const day = index + 1 + (prevMonthDays - daysFromPrevMonth);
420
+ return [prevMonthYear.toString(), this.zeroPad(prevMonth, 2), this.zeroPad(day, 2)];
421
+ });
422
+ // Builds dates to be displayed from current month. The initialized array is "filled" with an arbitrary number because IE and Edge won't map over an array with empty values.
423
+ const thisMonthDates = [...new Array(monthDays).fill("1")].map((_, index) => {
424
+ const day = index + 1;
425
+ return [year.toString(), this.zeroPad(month, 2), this.zeroPad(day, 2)];
426
+ });
427
+ // Builds dates to be displayed from next month. The initialized array is "filled" with an arbitrary number because IE and Edge won't map over an array with empty values.
428
+ const nextMonthDates = [...new Array(daysFromNextMonth).fill("1")].map((_, index) => {
429
+ const day = index + 1;
430
+ return [nextMonthYear.toString(), this.zeroPad(nextMonth, 2), this.zeroPad(day, 2)];
431
+ });
432
+ // Combines all dates from previous, current and next months
433
+ return [...prevMonthDates, ...thisMonthDates, ...nextMonthDates];
434
+ }
435
+ forwardOneMonth() {
436
+ this.unfocusCell();
437
+ const newMonth = this.getNextMonth(this.monthInFocus, this.yearInFocus);
438
+ this.monthInFocus = newMonth.month;
439
+ this.yearInFocus = newMonth.year;
440
+ const totalDays = this.getMonthDays(this.monthInFocus, this.yearInFocus);
441
+ if (this.dayInFocus > this.getMonthDays(this.monthInFocus, this.yearInFocus)) {
442
+ this.dayInFocus = totalDays;
443
+ }
444
+ this.updateLiveRegion(`Displaying ${this.calendar_months[this.monthInFocus - 1]}, ${this.yearInFocus}`);
445
+ }
446
+ backOneMonth() {
447
+ this.unfocusCell();
448
+ const newMonth = this.getPreviousMonth(this.monthInFocus, this.yearInFocus);
449
+ this.monthInFocus = newMonth.month;
450
+ this.yearInFocus = newMonth.year;
451
+ const totalDays = this.getMonthDays(this.monthInFocus, this.yearInFocus);
452
+ if (this.dayInFocus > this.getMonthDays(this.monthInFocus, this.yearInFocus)) {
453
+ this.dayInFocus = totalDays;
454
+ }
455
+ this.updateLiveRegion(`Viewing ${this.calendar_months[this.monthInFocus - 1]}, ${this.yearInFocus}`);
456
+ }
457
+ handleTriggeredDate(el) {
458
+ this.cellTriggered.emit(el);
459
+ // change of input value will trigger the function updating selectedDate
460
+ this.closePopup();
461
+ }
462
+ handleSelectedDate() {
463
+ //Remove old selection status
464
+ if (this.selectedDate) {
465
+ this.selectedDate.removeAttribute("aria-selected");
466
+ }
467
+ //Update selected date to new date inputted/selected
468
+ this.selectedDate = this.getCellById(this.selectedYear, this.selectedMonth, this.selectedDay);
469
+ if (this.selectedDate) {
470
+ this.selectedDate.setAttribute("aria-selected", "true");
471
+ }
472
+ }
473
+ getCellById(year, month, day) {
474
+ const id = year + this.zeroPad(month, 2) + this.zeroPad(day, 2);
475
+ return this.el.querySelector(`#cell-${id}-${this.parentId}`);
476
+ }
477
+ unfocusCell() {
478
+ const cellToUnfocus = this.getCellById(this.yearInFocus, this.monthInFocus, this.dayInFocus);
479
+ cellToUnfocus.tabIndex = -1;
480
+ }
481
+ focusCell() {
482
+ //These two lines of code prevent an error from happening when the day in focus does not exist in a new month selected, e.g., May 31 is in focus, then the user selects "November". It will return focus in the date view to the last day of the month so that focus doesn't fly out of the popup.
483
+ const maxDays = this.getMonthDays(this.monthInFocus, this.yearInFocus);
484
+ this.dayInFocus = this.dayInFocus > maxDays ? maxDays : this.dayInFocus;
485
+ const cellToFocus = this.getCellById(this.yearInFocus, this.monthInFocus, this.dayInFocus);
486
+ if (cellToFocus) {
487
+ cellToFocus.tabIndex = 0;
488
+ cellToFocus.focus();
489
+ }
490
+ }
491
+ unfocusMonth() {
492
+ const monthToUnfocus = this.el.querySelector(`#month-${this.monthNumInFocus}-${this.parentId}`);
493
+ monthToUnfocus.tabIndex = -1;
494
+ }
495
+ focusMonth() {
496
+ const monthToFocus = this.el.querySelector(`#month-${this.monthNumInFocus}-${this.parentId}`);
497
+ monthToFocus.tabIndex = 0;
498
+ monthToFocus.focus();
499
+ }
500
+ removeZeroes(date) {
501
+ return +date < 10 ? +date.slice(1) : +date;
502
+ }
503
+ isDateToday(date) {
504
+ const today = new Date();
505
+ const todayDateArray = [
506
+ today.getFullYear().toString(),
507
+ (today.getMonth() + 1).toString(),
508
+ today.getDate().toString(),
509
+ ];
510
+ //Compare today's date to date and return true if they match
511
+ return todayDateArray.reduce((result, val, index) => result && this.removeZeroes(date[index]).toString() === val, true);
512
+ }
513
+ renderMonths(month, index$1) {
514
+ return (index.h("div", { id: `month-${index$1}-${this.parentId}`, class: `month ${this.selectedMonth - 1 === index$1 ? "selected" : ""}`, role: "gridcell", tabindex: index$1 + 1 === this.monthInFocus ? 0 : -1, onKeyDown: (ev) => this.trapFocusEnd(ev), onBlur: (ev) => ev.stopPropagation(), onClick: () => {
515
+ this.monthInFocus = index$1 + 1;
516
+ this.changeView("day");
517
+ } }, month));
518
+ }
519
+ trapFocusLeft(ev) {
520
+ if (ev.shiftKey && ev.keyCode === 9) {
521
+ ev.preventDefault();
522
+ this.focusCellInView();
523
+ }
524
+ }
525
+ trapFocusEnd(ev) {
526
+ if (!ev.shiftKey && ev.keyCode === 9) {
527
+ ev.preventDefault();
528
+ this.prevButton.focus();
529
+ }
530
+ }
531
+ trapFocusRight(ev) {
532
+ if (!ev.shiftKey && ev.keyCode === 9) {
533
+ ev.preventDefault();
534
+ this.focusCellInView();
535
+ }
536
+ }
537
+ focusCellInView() {
538
+ if (this.view === "day") {
539
+ this.focusCell();
540
+ }
541
+ else {
542
+ this.focusMonth();
543
+ }
544
+ }
545
+ componentDidUpdate() {
546
+ this.handleSelectedDate();
547
+ if (this.isExpanded) {
548
+ this.prevClicked
549
+ ? this.prevButton.focus()
550
+ : this.nextClicked
551
+ ? this.nextButton.focus()
552
+ : this.view === "day"
553
+ ? this.focusCell()
554
+ : this.focusMonth();
555
+ }
556
+ }
557
+ componentDidLoad() {
558
+ this.handleSelectedDate();
559
+ this.setDateValuesForView();
560
+ }
561
+ toggleBusyAttribute(state) {
562
+ this.el.querySelector("#wm-container").setAttribute("aria-busy", state);
563
+ }
564
+ render() {
565
+ const dates = this.getCalendarDates(this.monthInFocus, this.yearInFocus);
566
+ return (index.h("div", { class: "container", id: "wm-container" }, index.h("button", { disabled: this.disabled, onClick: this.togglePopup.bind(this), "aria-describedby": `date-input-${this.parentId}`, ref: (el) => (this.buttonEl = el), "aria-expanded": `${this.isExpanded}`, class: "toggle", id: `toggle-${this.parentId}` }, index.h("span", { class: "calendar", title: functions.intl.formatMessage({
567
+ id: "date.calendarView",
568
+ defaultMessage: "Calendar View",
569
+ description: "Calendar button",
570
+ }) })), index.h("div", { class: `popup ${this.view}-view ${this.openUp ? "expand-upwards" : ""}`, id: `popup-${this.parentId}`, ref: (el) => (this.popupEl = el), onClick: () => (this.popupClicked = true), role: "application", "aria-describedby": "application" }, this.view === "day" ? (index.h("div", { class: "day-view" }, index.h("div", { class: "calendar-header" }, index.h("button", { onClick: () => {
571
+ this.prevClicked = true;
572
+ this.popupClicked = true;
573
+ this.backOneMonth();
574
+ }, onKeyDown: (ev) => this.trapFocusLeft(ev), ref: (el) => (this.prevButton = el), class: "arw-btn", "aria-label": functions.intl.formatMessage({
575
+ id: "date.selectPreviousMonth",
576
+ defaultMessage: "Select previous month",
577
+ description: "Calendar button",
578
+ }) }, index.h("span", { class: "mdi" }, "\uF141")), index.h("div", { id: `popup-title-month-${this.parentId}`, class: "title-box", tabindex: 0, role: "button", onKeyDown: (ev) => {
579
+ if (ev.keyCode === 13 || ev.keyCode === 32) {
580
+ ev.preventDefault();
581
+ this.changeView("month");
582
+ }
583
+ }, onClick: this.changeView.bind(this, "month"), "aria-label": `${functions.intl.formatMessage({
584
+ id: "date.currentMonth",
585
+ defaultMessage: "current month",
586
+ description: "Calendar button",
587
+ })}: ${this.calendar_months[this.monthInFocus - 1]}
588
+ ${this.yearInFocus}.`, "aria-describedby": "month-title" }, index.h("span", { class: "title", "aria-hidden": "true" }, this.calendar_months[this.monthInFocus - 1], " ", this.yearInFocus)), index.h("button", { onClick: () => {
589
+ this.nextClicked = true;
590
+ this.popupClicked = true;
591
+ this.forwardOneMonth();
592
+ }, onKeyDown: (ev) => this.trapFocusRight(ev), "aria-label": functions.intl.formatMessage({
593
+ id: "date.selectNextMonth",
594
+ defaultMessage: "Select next month",
595
+ description: "Calendar button",
596
+ }), ref: (el) => (this.nextButton = el), class: "arw-btn" }, index.h("span", { class: "mdi" }, "\uF142"))), index.h("div", { "aria-labelledby": `popup-title-month-${this.parentId}`, role: "grid", class: "date-grid" }, index.h("div", { role: "rowgroup", class: "date-header" }, index.h("div", { role: "row", class: "header-row" }, index.h("div", { role: "columnheader", class: "header-cell" }, index.h("span", null, functions.intl.formatMessage({
597
+ id: "date.su",
598
+ defaultMessage: "Su",
599
+ description: "Abbreviated day of the week",
600
+ }))), index.h("div", { role: "columnheader", class: "header-cell" }, index.h("span", null, functions.intl.formatMessage({
601
+ id: "date.mo",
602
+ defaultMessage: "Mo",
603
+ description: "Abbreviated day of the week",
604
+ }))), index.h("div", { role: "columnheader", class: "header-cell" }, index.h("span", null, functions.intl.formatMessage({
605
+ id: "date.tu",
606
+ defaultMessage: "Tu",
607
+ description: "Abbreviated day of the week",
608
+ }))), index.h("div", { role: "columnheader", class: "header-cell" }, index.h("span", null, functions.intl.formatMessage({
609
+ id: "date.we",
610
+ defaultMessage: "We",
611
+ description: "Abbreviated day of the week",
612
+ }))), index.h("div", { role: "columnheader", class: "header-cell" }, index.h("span", null, functions.intl.formatMessage({
613
+ id: "date.th",
614
+ defaultMessage: "Th",
615
+ description: "Abbreviated day of the week",
616
+ }))), index.h("div", { role: "columnheader", class: "header-cell" }, index.h("span", null, functions.intl.formatMessage({
617
+ id: "date.fr",
618
+ defaultMessage: "Fr",
619
+ description: "Abbreviated day of the week",
620
+ }))), index.h("div", { role: "columnheader", class: "header-cell" }, index.h("span", null, functions.intl.formatMessage({
621
+ id: "date.sa",
622
+ defaultMessage: "Sa",
623
+ description: "Abbreviated day of the week",
624
+ }))))), index.h("div", { role: "rowgroup" }, index.h("div", { role: "row", class: "date-row" }, dates.slice(0, 7).map((date, i) => this.renderCalendarDate(date, i))), index.h("div", { role: "row" }, dates.slice(7, 14).map((date, i) => this.renderCalendarDate(date, i))), index.h("div", { role: "row" }, dates.slice(14, 21).map((date, i) => this.renderCalendarDate(date, i))), index.h("div", { role: "row" }, dates.slice(21, 28).map((date, i) => this.renderCalendarDate(date, i))), index.h("div", { role: "row" }, dates.slice(28, 35).map((date, i) => this.renderCalendarDate(date, i))), dates.length > 35 ? (index.h("div", { role: "row" }, dates.slice(35).map((date, i) => this.renderCalendarDate(date, i)))) : (""))))) : (index.h("div", { class: "month-view" }, index.h("div", { class: "calendar-header" }, index.h("button", { onClick: () => {
625
+ this.prevClicked = true;
626
+ this.popupClicked = true;
627
+ this.yearInFocus -= 1;
628
+ this.updateLiveRegion(`${this.yearInFocus} selected.`);
629
+ }, onKeyDown: (ev) => this.trapFocusLeft(ev), "aria-label": functions.intl.formatMessage({
630
+ id: "date.selectPreviousYear",
631
+ defaultMessage: "Select previous year",
632
+ description: "Calendar button",
633
+ }), ref: (el) => (this.prevButton = el), class: "arw-btn" }, index.h("span", { class: "mdi" }, "\uF141")), index.h("div", { id: `popup-title-year-${this.parentId}`, tabindex: 0, class: "title-box year", role: "button", onClick: this.changeView.bind(this, "day"), onKeyDown: (ev) => {
634
+ if (ev.keyCode === 13 || ev.keyCode === 32) {
635
+ ev.preventDefault();
636
+ this.changeView("day");
637
+ }
638
+ }, "aria-labelledby": "year-title" }, index.h("span", { class: "title" }, this.yearInFocus)), index.h("button", { onClick: () => {
639
+ this.nextClicked = true;
640
+ this.popupClicked = true;
641
+ this.yearInFocus += 1;
642
+ this.updateLiveRegion(`${this.yearInFocus} selected.`);
643
+ }, "aria-label": functions.intl.formatMessage({
644
+ id: "date.selectNextYear",
645
+ defaultMessage: "Select next year",
646
+ description: "Calendar button",
647
+ }), onKeyDown: (ev) => this.trapFocusRight(ev), ref: (el) => (this.nextButton = el), class: "arw-btn" }, index.h("span", { class: "mdi" }, "\uF142"))), index.h("div", { "aria-labelledby": `popup-title-year-${this.parentId}`, role: "grid", class: "months" }, index.h("div", { role: "row", class: "month-row" }, this.calendar_months
648
+ .slice(0, 3)
649
+ .map((month, index) => this.renderMonths(month, index))), index.h("div", { role: "row", class: "month-row" }, this.calendar_months
650
+ .slice(3, 6)
651
+ .map((month, index) => this.renderMonths(month, index + 3))), index.h("div", { role: "row", class: "month-row" }, this.calendar_months
652
+ .slice(6, 9)
653
+ .map((month, index) => this.renderMonths(month, index + 6))), index.h("div", { role: "row", class: "month-row" }, this.calendar_months
654
+ .slice(9)
655
+ .map((month, index) => this.renderMonths(month, index + 9))))))), this.isExpanded && index.h("div", { id: "live-region", "aria-live": "polite", "aria-relevant": "text", class: "sr-only" }), index.h("div", { id: "month-title", class: "sr-only" }, functions.intl.formatMessage({
656
+ id: "date.selectMonth",
657
+ defaultMessage: "Activate to select a month.",
658
+ description: "Calendar button",
659
+ })), index.h("div", { id: "year-title", class: "sr-only" }, functions.intl.formatMessage({
660
+ id: "date.selectYear",
661
+ defaultMessage: "Activate to select a year.",
662
+ description: "Calendar button",
663
+ })), index.h("div", { id: "application", class: "sr-only" }, functions.intl.formatMessage({
664
+ id: "date.instructions",
665
+ defaultMessage: "Use arrows to select a date in the table. Tab left or right to buttons for selecting previous month, next month, or the month selection table.",
666
+ }))));
667
+ }
668
+ get el() { return index.getElement(this); }
669
+ };
670
+ PrivDatepicker.style = privDatepickerCss;
671
+
672
+ exports.priv_datepicker = PrivDatepicker;