@watermarkinsights/ripple 3.4.0 → 3.5.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/README.md +3 -3
  2. package/dist/cjs/functions-653e695c.js +6164 -0
  3. package/dist/cjs/{global-caec45e5.js → global-067b9f65.js} +65 -65
  4. package/dist/cjs/{http-service-9e8c4dd5.js → http-service-494d81de.js} +49 -49
  5. package/dist/cjs/{index-921ef454.js → index-cd179539.js} +157 -103
  6. package/dist/cjs/{interfaces-30a74c1f.js → interfaces-a3338581.js} +29 -29
  7. package/dist/cjs/loader.cjs.js +3 -3
  8. package/dist/cjs/priv-chart-popover.cjs.entry.js +79 -79
  9. package/dist/cjs/priv-datepicker.cjs.entry.js +668 -668
  10. package/dist/cjs/priv-navigator-button.cjs.entry.js +19 -19
  11. package/dist/cjs/priv-navigator-item.cjs.entry.js +24 -24
  12. package/dist/cjs/ripple.cjs.js +5 -5
  13. package/dist/cjs/wm-action-menu_2.cjs.entry.js +342 -342
  14. package/dist/cjs/wm-button.cjs.entry.js +219 -219
  15. package/dist/cjs/wm-chart-slice.cjs.entry.js +14 -14
  16. package/dist/cjs/wm-chart.cjs.entry.js +475 -517
  17. package/dist/cjs/wm-datepicker.cjs.entry.js +257 -257
  18. package/dist/cjs/wm-input.cjs.entry.js +134 -134
  19. package/dist/cjs/wm-modal-footer.cjs.entry.js +32 -32
  20. package/dist/cjs/wm-modal-header.cjs.entry.js +35 -35
  21. package/dist/cjs/wm-modal.cjs.entry.js +162 -162
  22. package/dist/cjs/wm-navigator.cjs.entry.js +269 -269
  23. package/dist/cjs/wm-network-uploader.cjs.entry.js +421 -421
  24. package/dist/cjs/wm-option_2.cjs.entry.js +492 -492
  25. package/dist/cjs/wm-pagination.cjs.entry.js +168 -168
  26. package/dist/cjs/wm-search.cjs.entry.js +232 -232
  27. package/dist/cjs/wm-snackbar.cjs.entry.js +171 -171
  28. package/dist/cjs/wm-tab-item_3.cjs.entry.js +301 -301
  29. package/dist/cjs/wm-tag-input.cjs.entry.js +557 -557
  30. package/dist/cjs/wm-timepicker.cjs.entry.js +384 -384
  31. package/dist/cjs/wm-toggletip.cjs.entry.js +125 -125
  32. package/dist/cjs/wm-uploader.cjs.entry.js +347 -347
  33. package/dist/cjs/wm-wrapper.cjs.entry.js +13 -13
  34. package/dist/collection/collection-manifest.json +2 -2
  35. package/dist/collection/components/wm-action-menu/wm-action-menu.js +460 -460
  36. package/dist/collection/components/wm-button/wm-button.js +485 -485
  37. package/dist/collection/components/wm-chart/priv-chart-popover/priv-chart-popover.js +232 -232
  38. package/dist/collection/components/wm-chart/wm-chart-slice.js +64 -64
  39. package/dist/collection/components/wm-chart/wm-chart.css +59 -74
  40. package/dist/collection/components/wm-chart/wm-chart.js +717 -765
  41. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +1015 -1015
  42. package/dist/collection/components/wm-datepicker/wm-datepicker.js +462 -462
  43. package/dist/collection/components/wm-input/wm-input.js +423 -423
  44. package/dist/collection/components/wm-menuitem/wm-menuitem.js +444 -444
  45. package/dist/collection/components/wm-modal/wm-modal-footer.js +141 -141
  46. package/dist/collection/components/wm-modal/wm-modal-header.js +92 -92
  47. package/dist/collection/components/wm-modal/wm-modal.js +459 -459
  48. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +97 -97
  49. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +114 -114
  50. package/dist/collection/components/wm-navigator/wm-navigator.js +468 -468
  51. package/dist/collection/components/wm-option/wm-option.js +422 -422
  52. package/dist/collection/components/wm-pagination/wm-pagination.js +368 -368
  53. package/dist/collection/components/wm-search/wm-search.js +479 -479
  54. package/dist/collection/components/wm-select/wm-select.js +717 -717
  55. package/dist/collection/components/wm-snackbar/wm-snackbar.js +297 -297
  56. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +219 -219
  57. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +331 -331
  58. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +104 -104
  59. package/dist/collection/components/wm-tag-input/wm-tag-input.js +787 -787
  60. package/dist/collection/components/wm-timepicker/wm-timepicker.js +589 -589
  61. package/dist/collection/components/wm-toggletip/wm-toggletip.js +241 -241
  62. package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js +753 -753
  63. package/dist/collection/components/wm-uploader/wm-uploader.js +748 -748
  64. package/dist/collection/components/wm-wrapper/wm-wrapper.js +27 -27
  65. package/dist/collection/dev/scripts.js +20 -20
  66. package/dist/collection/global/__mocks__/functions.js +6 -6
  67. package/dist/collection/global/functions.js +445 -445
  68. package/dist/collection/global/global.js +72 -72
  69. package/dist/collection/global/interfaces.js +49 -49
  70. package/dist/collection/global/services/__mocks__/http-service.js +130 -130
  71. package/dist/collection/global/services/http-service.js +50 -50
  72. package/dist/collection/lang/lang.js +5 -5
  73. package/dist/collection/lang/piglatin.js +93 -93
  74. package/dist/esm/functions-e528c934.js +6144 -0
  75. package/dist/esm/{global-08ca269c.js → global-18fdd890.js} +65 -65
  76. package/dist/esm/{http-service-5d037e16.js → http-service-3dc3b3e7.js} +49 -49
  77. package/dist/esm/{index-f8b130b6.js → index-66f8130e.js} +157 -103
  78. package/dist/esm/{interfaces-61c6305b.js → interfaces-2b97fab2.js} +29 -29
  79. package/dist/esm/loader.js +3 -3
  80. package/dist/esm/polyfills/core-js.js +0 -0
  81. package/dist/esm/polyfills/dom.js +0 -0
  82. package/dist/esm/polyfills/es5-html-element.js +0 -0
  83. package/dist/esm/polyfills/index.js +2 -2
  84. package/dist/esm/polyfills/system.js +0 -0
  85. package/dist/esm/priv-chart-popover.entry.js +79 -79
  86. package/dist/esm/priv-datepicker.entry.js +668 -668
  87. package/dist/esm/priv-navigator-button.entry.js +19 -19
  88. package/dist/esm/priv-navigator-item.entry.js +24 -24
  89. package/dist/esm/ripple.js +5 -5
  90. package/dist/esm/wm-action-menu_2.entry.js +342 -342
  91. package/dist/esm/wm-button.entry.js +219 -219
  92. package/dist/esm/wm-chart-slice.entry.js +14 -14
  93. package/dist/esm/wm-chart.entry.js +475 -517
  94. package/dist/esm/wm-datepicker.entry.js +257 -257
  95. package/dist/esm/wm-input.entry.js +134 -134
  96. package/dist/esm/wm-modal-footer.entry.js +32 -32
  97. package/dist/esm/wm-modal-header.entry.js +35 -35
  98. package/dist/esm/wm-modal.entry.js +162 -162
  99. package/dist/esm/wm-navigator.entry.js +269 -269
  100. package/dist/esm/wm-network-uploader.entry.js +421 -421
  101. package/dist/esm/wm-option_2.entry.js +492 -492
  102. package/dist/esm/wm-pagination.entry.js +168 -168
  103. package/dist/esm/wm-search.entry.js +232 -232
  104. package/dist/esm/wm-snackbar.entry.js +171 -171
  105. package/dist/esm/wm-tab-item_3.entry.js +301 -301
  106. package/dist/esm/wm-tag-input.entry.js +557 -557
  107. package/dist/esm/wm-timepicker.entry.js +384 -384
  108. package/dist/esm/wm-toggletip.entry.js +125 -125
  109. package/dist/esm/wm-uploader.entry.js +347 -347
  110. package/dist/esm/wm-wrapper.entry.js +13 -13
  111. package/dist/ripple/p-092b01f3.entry.js +1 -0
  112. package/dist/ripple/{p-c995acbc.entry.js → p-0c58f50d.entry.js} +1 -1
  113. package/dist/ripple/p-11c09317.entry.js +1 -0
  114. package/dist/ripple/p-1e0c41a9.entry.js +1 -0
  115. package/dist/ripple/p-237a432a.entry.js +1 -0
  116. package/dist/ripple/p-3003d26d.entry.js +1 -0
  117. package/dist/ripple/p-33524565.entry.js +1 -0
  118. package/dist/ripple/{p-888bec42.js → p-43f1298b.js} +0 -0
  119. package/dist/ripple/{p-5e49aba7.entry.js → p-4cc71463.entry.js} +1 -1
  120. package/dist/ripple/p-588b4475.js +16 -0
  121. package/dist/ripple/p-65e3a656.entry.js +1 -0
  122. package/dist/ripple/p-8923b7d0.entry.js +1 -0
  123. package/dist/ripple/{p-d52033d5.entry.js → p-8b0eb05e.entry.js} +1 -1
  124. package/dist/ripple/p-8cd1396e.entry.js +1 -0
  125. package/dist/ripple/{p-22a1a636.entry.js → p-99db8501.entry.js} +1 -1
  126. package/dist/ripple/p-9baa3039.js +1 -0
  127. package/dist/ripple/p-aa973691.entry.js +1 -0
  128. package/dist/ripple/{p-a61977b2.entry.js → p-b3d5ea85.entry.js} +1 -1
  129. package/dist/ripple/{p-7d009793.entry.js → p-b5189f72.entry.js} +1 -1
  130. package/dist/ripple/p-b9838664.js +1 -0
  131. package/dist/ripple/p-bc27b604.entry.js +1 -0
  132. package/dist/ripple/p-bc9ca97b.entry.js +1 -0
  133. package/dist/ripple/{p-bba99fcd.entry.js → p-cd58a15c.entry.js} +1 -1
  134. package/dist/ripple/p-dc9c9fda.entry.js +1 -0
  135. package/dist/ripple/p-e7616311.entry.js +1 -0
  136. package/dist/ripple/p-e9e8334e.entry.js +1 -0
  137. package/dist/ripple/p-ec9697db.entry.js +1 -0
  138. package/dist/ripple/p-efdaf3b6.entry.js +1 -0
  139. package/dist/ripple/p-fcdc6395.entry.js +1 -0
  140. package/dist/ripple/{p-a6d6eae7.js → p-fd8070fb.js} +0 -0
  141. package/dist/ripple/ripple.esm.js +1 -1
  142. package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +48 -48
  143. package/dist/types/components/wm-button/wm-button.d.ts +44 -44
  144. package/dist/types/components/wm-chart/priv-chart-popover/priv-chart-popover.d.ts +23 -23
  145. package/dist/types/components/wm-chart/wm-chart-slice.d.ts +8 -8
  146. package/dist/types/components/wm-chart/wm-chart.d.ts +81 -80
  147. package/dist/types/components/wm-datepicker/priv-datepicker/priv-datepicker.d.ts +76 -76
  148. package/dist/types/components/wm-datepicker/wm-datepicker.d.ts +41 -41
  149. package/dist/types/components/wm-input/wm-input.d.ts +46 -46
  150. package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +34 -34
  151. package/dist/types/components/wm-modal/wm-modal-footer.d.ts +15 -15
  152. package/dist/types/components/wm-modal/wm-modal-header.d.ts +12 -12
  153. package/dist/types/components/wm-modal/wm-modal.d.ts +41 -41
  154. package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +10 -10
  155. package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +13 -13
  156. package/dist/types/components/wm-navigator/wm-navigator.d.ts +61 -61
  157. package/dist/types/components/wm-option/wm-option.d.ts +32 -32
  158. package/dist/types/components/wm-pagination/wm-pagination.d.ts +32 -32
  159. package/dist/types/components/wm-search/wm-search.d.ts +86 -86
  160. package/dist/types/components/wm-select/wm-select.d.ts +66 -66
  161. package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +35 -35
  162. package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +38 -38
  163. package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +53 -53
  164. package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +20 -20
  165. package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +91 -91
  166. package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +62 -62
  167. package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +27 -27
  168. package/dist/types/components/wm-uploader/wm-network-uploader/wm-network-uploader.d.ts +85 -85
  169. package/dist/types/components/wm-uploader/wm-uploader.d.ts +80 -80
  170. package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +7 -7
  171. package/dist/types/components.d.ts +24 -24
  172. package/dist/types/global/__mocks__/functions.d.ts +6 -6
  173. package/dist/types/global/functions.d.ts +40 -0
  174. package/dist/types/global/global.d.ts +1 -1
  175. package/dist/types/global/interfaces.d.ts +34 -34
  176. package/dist/types/global/services/__mocks__/http-service.d.ts +6 -6
  177. package/dist/types/global/services/http-service.d.ts +4 -4
  178. package/dist/types/lang/lang.d.ts +5 -5
  179. package/dist/types/stencil-public-runtime.d.ts +194 -186
  180. package/package.json +46 -46
  181. package/dist/cjs/functions-a6491ba8.js +0 -7943
  182. package/dist/esm/functions-5aebd578.js +0 -7923
  183. package/dist/ripple/p-0865e7cf.js +0 -16
  184. package/dist/ripple/p-0f663e59.entry.js +0 -1
  185. package/dist/ripple/p-1b790a7d.entry.js +0 -1
  186. package/dist/ripple/p-3b4c01b8.entry.js +0 -1
  187. package/dist/ripple/p-54c1f704.entry.js +0 -1
  188. package/dist/ripple/p-76c615e9.entry.js +0 -1
  189. package/dist/ripple/p-7d993d52.js +0 -1
  190. package/dist/ripple/p-8198cc9c.entry.js +0 -1
  191. package/dist/ripple/p-839d35bd.entry.js +0 -1
  192. package/dist/ripple/p-8708b8cb.entry.js +0 -1
  193. package/dist/ripple/p-8bd66955.entry.js +0 -1
  194. package/dist/ripple/p-957e3a05.entry.js +0 -1
  195. package/dist/ripple/p-af6eb4d5.entry.js +0 -1
  196. package/dist/ripple/p-b3f9f575.entry.js +0 -1
  197. package/dist/ripple/p-cd30198d.entry.js +0 -1
  198. package/dist/ripple/p-d9d6bf11.js +0 -1
  199. package/dist/ripple/p-e097c562.entry.js +0 -1
  200. package/dist/ripple/p-e9db6122.entry.js +0 -1
  201. package/dist/ripple/p-eabbd1e9.entry.js +0 -1
  202. package/dist/ripple/p-ec496b8b.entry.js +0 -1
  203. package/dist/ripple/p-fc8ec142.entry.js +0 -1
@@ -1,174 +1,174 @@
1
- import { r as registerInstance, c as createEvent, h, g as getElement } from './index-f8b130b6.js';
2
- import { d as debounce } from './functions-5aebd578.js';
1
+ import { r as registerInstance, c as createEvent, h, g as getElement } from './index-66f8130e.js';
2
+ import { d as debounce } from './functions-e528c934.js';
3
3
 
4
4
  const wmPaginationCss = "nav .largescreen,nav .smallscreen{margin-bottom:0.625rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:flex-end;-ms-flex-pack:flex-end;-webkit-justify-content:flex-end;justify-content:flex-end;font-size:0.875rem}nav .largescreen .pageview,nav .smallscreen .pageview{font-size:0.875rem;margin:0 0.625rem}nav .largescreen .paginationbtn,nav .smallscreen .paginationbtn{position:relative;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;-ms-transition:none;-webkit-transition:none;-moz-transition:none;transition:none;border:none;color:#575195;background-color:transparent;margin:0;padding:0;height:2.5rem;width:2.5rem;font-family:inherit;letter-spacing:0.3px;font-size:0.875rem;font-weight:500;cursor:pointer;text-transform:none}nav .largescreen .paginationbtn svg *,nav .smallscreen .paginationbtn svg *{fill:#565397}nav .largescreen .paginationbtn:hover:not([aria-current=page]):not([disabled]),nav .smallscreen .paginationbtn:hover:not([aria-current=page]):not([disabled]){text-decoration:underline}nav .largescreen .paginationbtn:focus,nav .smallscreen .paginationbtn:focus{outline:none}nav .largescreen .paginationbtn::-moz-focus-inner,nav .smallscreen .paginationbtn::-moz-focus-inner{border:0;outline:none}nav .largescreen .paginationbtn[disabled],nav .smallscreen .paginationbtn[disabled]{color:#9f9f9f;pointer-events:none}nav .largescreen .paginationbtn[disabled] svg *,nav .smallscreen .paginationbtn[disabled] svg *{fill:#9f9f9f}nav .largescreen .previousbtn,nav .smallscreen .previousbtn{margin-right:0.625rem;width:auto !important}nav .largescreen .nextbtn,nav .smallscreen .nextbtn{margin-left:0.625rem;margin-right:0;width:auto !important}nav .largescreen .previousbtn,nav .largescreen .nextbtn,nav .smallscreen .previousbtn,nav .smallscreen .nextbtn{-ms-transition:none;-webkit-transition:none;-moz-transition:none;transition:none}nav .largescreen .ellipsis,nav .smallscreen .ellipsis{display:inline-block;width:2.5rem;text-align:center}nav .largescreen .pagebtncontainer.user-is-tabbing :focus:not(.-disabled):not([aria-current=page]),nav .smallscreen .pagebtncontainer.user-is-tabbing :focus:not(.-disabled):not([aria-current=page]){-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}nav .largescreen .pagebtncontainer.user-is-tabbing :focus:not(.-disabled):not([aria-current=page]):before,nav .smallscreen .pagebtncontainer.user-is-tabbing :focus:not(.-disabled):not([aria-current=page]):before{position:absolute;content:\"\";height:auto;width:16px;top:0;bottom:0;left:12px;right:0;background:linear-gradient(90deg, #3862e9 66%, transparent 0) repeat-x;background-size:6px 2px;background-position:0 2em;border-radius:0;line-height:normal}nav .largescreen .pagebtncontainer.user-is-tabbing :focus:not(.-disabled):not([aria-current=page]).previousbtn:focus:before,nav .smallscreen .pagebtncontainer.user-is-tabbing :focus:not(.-disabled):not([aria-current=page]).previousbtn:focus:before{left:0 !important}nav .largescreen .pagebtncontainer.user-is-tabbing :focus:not(.-disabled):not([aria-current=page]).nextbtn:focus:before,nav .smallscreen .pagebtncontainer.user-is-tabbing :focus:not(.-disabled):not([aria-current=page]).nextbtn:focus:before{left:0 !important}nav .largescreen .pagebtncontainer.user-is-tabbing [aria-current=page]:focus,nav .smallscreen .pagebtncontainer.user-is-tabbing [aria-current=page]: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}nav .largescreen .pagebtncontainer.user-is-tabbing [aria-current=page]:focus::-moz-focus-inner,nav .smallscreen .pagebtncontainer.user-is-tabbing [aria-current=page]:focus::-moz-focus-inner{border:0}nav .largescreen .user-is-tabbing :focus:not(.-disabled):not([aria-current=page]).previousbtn:focus:before{width:56px !important}nav .largescreen .user-is-tabbing :focus:not(.-disabled):not([aria-current=page]).nextbtn:focus:before{width:32px !important}nav .largescreen .paginationbtn[aria-current=page]{-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;border-radius:50%;-webkit-box-shadow:0 2px 2px 0 rgba(87, 81, 149, 0.12), 0 2px 2px 0 rgba(0, 0, 0, 0.2);-moz-box-shadow:0 2px 2px 0 rgba(87, 81, 149, 0.12), 0 2px 2px 0 rgba(0, 0, 0, 0.2);box-shadow:0 2px 2px 0 rgba(87, 81, 149, 0.12), 0 2px 2px 0 rgba(0, 0, 0, 0.2);background-color:#575195;color:#fff}nav .largescreen .paginationbtn[aria-current=page]:hover{-webkit-box-shadow:0 4px 2px 0 rgba(87, 81, 149, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.2);-moz-box-shadow:0 4px 2px 0 rgba(87, 81, 149, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.2);box-shadow:0 4px 2px 0 rgba(87, 81, 149, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.2);background:#4e4986}.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}";
5
5
 
6
- const Pagination = class {
7
- constructor(hostRef) {
8
- registerInstance(this, hostRef);
9
- this.wmPaginationPageClicked = createEvent(this, "wmPaginationPageClicked", 7);
10
- this.pageClicked = createEvent(this, "pageClicked", 7);
11
- this.focusCurrentPage = createEvent(this, "focusCurrentPage", 7);
12
- this.currentPage = 1;
13
- this.totalItems = undefined;
14
- this.itemsPerPage = undefined;
15
- this.value = 1;
16
- this.isLargeViewport = window.innerWidth > 600;
17
- this.isTabbing = false;
18
- this.srAnnouncement = "";
19
- this.totalPages = 0;
20
- this.debouncedResize = debounce(() => {
21
- this.isLargeViewport = window.innerWidth > 600;
22
- }, 250);
23
- this.getMiddlePageNums = () => {
24
- let coreBtns;
25
- // if pg is 1, 2 or 3
26
- if (this.currentPage < 4) {
27
- coreBtns = [2, 3, 4];
28
- }
29
- else if (this.currentPage > this.totalPages - 3) {
30
- coreBtns = [this.totalPages - 3, this.totalPages - 2, this.totalPages - 1];
31
- }
32
- else {
33
- coreBtns = [this.currentPage - 1, this.currentPage, this.currentPage + 1];
34
- }
35
- return coreBtns;
36
- };
37
- }
38
- toggleTabbingOn() {
39
- this.isTabbing = true;
40
- }
41
- toggleTabbingOff() {
42
- this.isTabbing = false;
43
- }
44
- maintainFocusOnNumberChange(el) {
45
- window.requestAnimationFrame(() => {
46
- switch (el) {
47
- case "previous":
48
- this.currentPage === 1 && this.el.shadowRoot.querySelector(`button#wm-1`).focus(); //Only shift focus from previous button to page 1 if page 1 is reached, which disables previous button. Otherwise, maintain focus on previous button.
49
- break;
50
- case "next":
51
- this.currentPage === this.totalPages &&
52
- this.el.shadowRoot.querySelector(`button#wm-${this.totalPages}`).focus(); //Only shift focus from next button if last page is reached, disabling next button. Otherwise, maintain focus on next button.
53
- break;
54
- case "prev-arrow":
55
- this.currentPage === 1 && this.el.shadowRoot.querySelector("#next-arw").focus(); //Only shift focus if page 1 is reached, disabling previous buttons. Otherwise, maintain focus on previous buttons.
56
- break;
57
- case "next-arrow":
58
- this.currentPage === this.totalPages && this.el.shadowRoot.querySelector("#previous-arw").focus(); //Only shift focus if last page is reached, disabling next buttons. Otherwise, maintain focus on next buttons.
59
- break;
60
- case "page":
61
- this.el.shadowRoot.querySelector(`button#wm-${this.currentPage}`).focus();
62
- default:
63
- return;
64
- }
65
- });
66
- }
67
- handleResize() {
68
- this.debouncedResize();
69
- }
70
- calculateTotalPages() {
71
- this.totalPages = Math.ceil(this.totalItems / this.itemsPerPage);
72
- }
73
- componentWillLoad() {
74
- if (!this.totalItems || !this.itemsPerPage || !this.currentPage) {
75
- throw new Error("Please check the required attributes");
76
- }
77
- this.calculateTotalPages();
78
- if (document.body.classList.contains("wmcl-user-is-tabbing")) {
79
- this.toggleTabbingOn();
80
- }
81
- }
82
- updatePageDisplayed(pageNum) {
83
- this.value = pageNum;
84
- this.wmPaginationPageClicked.emit();
85
- this.pageClicked.emit(); // deprecated
86
- this.srAnnouncement = `Current page, ${this.currentPage}. ${this.getCurrentPagesInView()}`;
87
- }
88
- displayShortPagination() {
89
- let pages = [];
90
- for (let i = 1; i <= this.totalPages; i++) {
91
- pages.push(this.displayPageNumber(i));
92
- }
93
- return pages;
94
- }
95
- displayLongPagination() {
96
- let view = [
97
- this.displayPageNumber(1),
98
- this.currentPage > 3 && this.displayEllipsis(),
99
- ...this.getMiddlePageNums().map((page) => this.displayPageNumber(page)),
100
- this.currentPage + 2 < this.totalPages && this.displayEllipsis(),
101
- this.displayPageNumber(this.totalPages),
102
- ];
103
- return view;
104
- }
105
- displayPageNumber(pageNum) {
106
- return (h("button", { id: `wm-${pageNum}`, class: "paginationbtn", onClick: () => {
107
- this.currentPage = pageNum;
108
- this.updatePageDisplayed(pageNum);
109
- this.maintainFocusOnNumberChange("page");
110
- }, value: pageNum, "aria-label": this.currentPage !== pageNum ? `Go to page ${pageNum}` : "", "aria-current": this.currentPage === pageNum ? "page" : undefined }, pageNum));
111
- }
112
- displayEllipsis() {
113
- return h("span", { class: "ellipsis" }, "...");
114
- }
115
- // displayPageView = () => {
116
- // // let end = this.itemsPerPage! * this.currentPage;
117
- // // const begin = end - this.itemsPerPage! + 1;
118
- // // if (end > this.totalItems!) {
119
- // // end = this.totalItems!;
120
- // // }
121
- // return <div class="pageview">{this.getCurrentView()}</div>;
122
- // };
123
- getCurrentPagesInView() {
124
- let end = this.itemsPerPage * this.currentPage;
125
- const begin = end - this.itemsPerPage + 1;
126
- if (end > this.totalItems) {
127
- end = this.totalItems;
128
- }
129
- return "Viewing " + (begin === end ? `${begin}` : `${begin}–${end} of ${this.totalItems}`);
130
- }
131
- renderLarge() {
132
- return (h("div", { class: "largescreen" }, h("div", { class: "pageview" }, this.getCurrentPagesInView()), h("div", { class: `pagebtncontainer ${this.isTabbing ? "user-is-tabbing" : ""}` }, h("button", { id: "previous", class: "paginationbtn previousbtn", onClick: () => {
133
- this.currentPage = this.currentPage - 1;
134
- this.updatePageDisplayed(this.currentPage);
135
- this.maintainFocusOnNumberChange("previous");
136
- }, disabled: this.currentPage === 1, "aria-label": "Go to previous page", "aria-controls": "status" }, "Previous"), this.totalPages < 6 ? this.displayShortPagination() : this.displayLongPagination(), h("button", { id: "next", class: "paginationbtn nextbtn", onClick: () => {
137
- this.currentPage = this.currentPage + 1;
138
- this.updatePageDisplayed(this.currentPage);
139
- this.maintainFocusOnNumberChange("next");
140
- }, disabled: this.currentPage === this.totalPages, "aria-label": "Go to next page", "aria-controls": "status" }, "Next"))));
141
- }
142
- renderSmall() {
143
- return (h("div", { class: "smallscreen" }, h("div", { class: `pagebtncontainer ${this.isTabbing ? "user-is-tabbing" : ""}` }, h("button", { id: `wm-1-arw`, class: "paginationbtn", onClick: () => {
144
- this.currentPage = 1;
145
- this.updatePageDisplayed(1);
146
- this.maintainFocusOnNumberChange("prev-arrow");
147
- }, value: 1, "aria-current": this.currentPage === 1 ? "page" : undefined, "aria-label": `Go to page 1`, "aria-controls": "status", disabled: this.currentPage === 1 }, h("svg", { width: "16", height: "12", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M7.41 10.59L2.83 6l4.58-4.59L6 0 0 6l6 6zM15.41 10.59L10.83 6l4.58-4.59L14 0 8 6l6 6z" }))), h("button", { id: "previous-arw", class: "paginationbtn previousbtn", onClick: () => {
148
- this.currentPage -= 1;
149
- this.updatePageDisplayed(this.currentPage);
150
- this.maintainFocusOnNumberChange("prev-arrow");
151
- }, disabled: this.currentPage === 1, "aria-label": "Go to previous page" }, h("svg", { width: "8", height: "12", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M7.41 10.59L2.83 6l4.58-4.59L6 0 0 6l6 6z" }))), "Page ", this.currentPage, " of ", this.totalPages, h("button", { id: "next-arw", class: "paginationbtn nextbtn", onClick: () => {
152
- this.currentPage += 1;
153
- this.updatePageDisplayed(this.currentPage);
154
- this.maintainFocusOnNumberChange("next-arrow");
155
- }, disabled: this.currentPage === this.totalPages, "aria-label": "Go to next page" }, h("svg", { width: "8", height: "12", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M.59 10.59L5.17 6 .59 1.41 2 0l6 6-6 6z" }))), h("button", { id: `wm-${this.totalPages}-arw`, class: "paginationbtn", onClick: () => {
156
- this.currentPage = this.totalPages;
157
- this.updatePageDisplayed(this.totalPages);
158
- this.maintainFocusOnNumberChange("next-arrow");
159
- }, value: this.totalPages, "aria-current": this.currentPage === this.totalPages ? "page" : undefined, "aria-label": `Go to last page, page ${this.totalPages}`, "aria-controls": "status", disabled: this.currentPage === this.totalPages }, h("svg", { width: "17", height: "12", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M.59 10.59L5.17 6 .59 1.41 2 0l6 6-6 6zM9.59 10.59L14.17 6 9.59 1.41 11 0l6 6-6 6z" }))))));
160
- }
161
- render() {
162
- return (
163
- // do not render the component if there's only one page
164
- this.totalItems > this.itemsPerPage && (h("nav", { "aria-label": `Pagination Navigation. ${this.getCurrentPagesInView()}. Current page, ${this.currentPage}.` }, this.isLargeViewport ? this.renderLarge() : this.renderSmall(), h("div", { id: "status", class: "sr-only", "aria-live": "polite", "aria-relevant": "text", "aria-atomic": "true" }, this.srAnnouncement))));
165
- }
166
- get el() { return getElement(this); }
167
- static get watchers() { return {
168
- "totalItems": ["calculateTotalPages"],
169
- "itemsPerPage": ["calculateTotalPages"]
170
- }; }
171
- };
6
+ const Pagination = class {
7
+ constructor(hostRef) {
8
+ registerInstance(this, hostRef);
9
+ this.wmPaginationPageClicked = createEvent(this, "wmPaginationPageClicked", 7);
10
+ this.pageClicked = createEvent(this, "pageClicked", 7);
11
+ this.focusCurrentPage = createEvent(this, "focusCurrentPage", 7);
12
+ this.currentPage = 1;
13
+ this.totalItems = undefined;
14
+ this.itemsPerPage = undefined;
15
+ this.value = 1;
16
+ this.isLargeViewport = window.innerWidth > 600;
17
+ this.isTabbing = false;
18
+ this.srAnnouncement = "";
19
+ this.totalPages = 0;
20
+ this.debouncedResize = debounce(() => {
21
+ this.isLargeViewport = window.innerWidth > 600;
22
+ }, 250);
23
+ this.getMiddlePageNums = () => {
24
+ let coreBtns;
25
+ // if pg is 1, 2 or 3
26
+ if (this.currentPage < 4) {
27
+ coreBtns = [2, 3, 4];
28
+ }
29
+ else if (this.currentPage > this.totalPages - 3) {
30
+ coreBtns = [this.totalPages - 3, this.totalPages - 2, this.totalPages - 1];
31
+ }
32
+ else {
33
+ coreBtns = [this.currentPage - 1, this.currentPage, this.currentPage + 1];
34
+ }
35
+ return coreBtns;
36
+ };
37
+ }
38
+ toggleTabbingOn() {
39
+ this.isTabbing = true;
40
+ }
41
+ toggleTabbingOff() {
42
+ this.isTabbing = false;
43
+ }
44
+ maintainFocusOnNumberChange(el) {
45
+ window.requestAnimationFrame(() => {
46
+ switch (el) {
47
+ case "previous":
48
+ this.currentPage === 1 && this.el.shadowRoot.querySelector(`button#wm-1`).focus(); //Only shift focus from previous button to page 1 if page 1 is reached, which disables previous button. Otherwise, maintain focus on previous button.
49
+ break;
50
+ case "next":
51
+ this.currentPage === this.totalPages &&
52
+ this.el.shadowRoot.querySelector(`button#wm-${this.totalPages}`).focus(); //Only shift focus from next button if last page is reached, disabling next button. Otherwise, maintain focus on next button.
53
+ break;
54
+ case "prev-arrow":
55
+ this.currentPage === 1 && this.el.shadowRoot.querySelector("#next-arw").focus(); //Only shift focus if page 1 is reached, disabling previous buttons. Otherwise, maintain focus on previous buttons.
56
+ break;
57
+ case "next-arrow":
58
+ this.currentPage === this.totalPages && this.el.shadowRoot.querySelector("#previous-arw").focus(); //Only shift focus if last page is reached, disabling next buttons. Otherwise, maintain focus on next buttons.
59
+ break;
60
+ case "page":
61
+ this.el.shadowRoot.querySelector(`button#wm-${this.currentPage}`).focus();
62
+ default:
63
+ return;
64
+ }
65
+ });
66
+ }
67
+ handleResize() {
68
+ this.debouncedResize();
69
+ }
70
+ calculateTotalPages() {
71
+ this.totalPages = Math.ceil(this.totalItems / this.itemsPerPage);
72
+ }
73
+ componentWillLoad() {
74
+ if (!this.totalItems || !this.itemsPerPage || !this.currentPage) {
75
+ throw new Error("Please check the required attributes");
76
+ }
77
+ this.calculateTotalPages();
78
+ if (document.body.classList.contains("wmcl-user-is-tabbing")) {
79
+ this.toggleTabbingOn();
80
+ }
81
+ }
82
+ updatePageDisplayed(pageNum) {
83
+ this.value = pageNum;
84
+ this.wmPaginationPageClicked.emit();
85
+ this.pageClicked.emit(); // deprecated
86
+ this.srAnnouncement = `Current page, ${this.currentPage}. ${this.getCurrentPagesInView()}`;
87
+ }
88
+ displayShortPagination() {
89
+ let pages = [];
90
+ for (let i = 1; i <= this.totalPages; i++) {
91
+ pages.push(this.displayPageNumber(i));
92
+ }
93
+ return pages;
94
+ }
95
+ displayLongPagination() {
96
+ let view = [
97
+ this.displayPageNumber(1),
98
+ this.currentPage > 3 && this.displayEllipsis(),
99
+ ...this.getMiddlePageNums().map((page) => this.displayPageNumber(page)),
100
+ this.currentPage + 2 < this.totalPages && this.displayEllipsis(),
101
+ this.displayPageNumber(this.totalPages),
102
+ ];
103
+ return view;
104
+ }
105
+ displayPageNumber(pageNum) {
106
+ return (h("button", { id: `wm-${pageNum}`, class: "paginationbtn", onClick: () => {
107
+ this.currentPage = pageNum;
108
+ this.updatePageDisplayed(pageNum);
109
+ this.maintainFocusOnNumberChange("page");
110
+ }, value: pageNum, "aria-label": this.currentPage !== pageNum ? `Go to page ${pageNum}` : "", "aria-current": this.currentPage === pageNum ? "page" : undefined }, pageNum));
111
+ }
112
+ displayEllipsis() {
113
+ return h("span", { class: "ellipsis" }, "...");
114
+ }
115
+ // displayPageView = () => {
116
+ // // let end = this.itemsPerPage! * this.currentPage;
117
+ // // const begin = end - this.itemsPerPage! + 1;
118
+ // // if (end > this.totalItems!) {
119
+ // // end = this.totalItems!;
120
+ // // }
121
+ // return <div class="pageview">{this.getCurrentView()}</div>;
122
+ // };
123
+ getCurrentPagesInView() {
124
+ let end = this.itemsPerPage * this.currentPage;
125
+ const begin = end - this.itemsPerPage + 1;
126
+ if (end > this.totalItems) {
127
+ end = this.totalItems;
128
+ }
129
+ return "Viewing " + (begin === end ? `${begin}` : `${begin}–${end} of ${this.totalItems}`);
130
+ }
131
+ renderLarge() {
132
+ return (h("div", { class: "largescreen" }, h("div", { class: "pageview" }, this.getCurrentPagesInView()), h("div", { class: `pagebtncontainer ${this.isTabbing ? "user-is-tabbing" : ""}` }, h("button", { id: "previous", class: "paginationbtn previousbtn", onClick: () => {
133
+ this.currentPage = this.currentPage - 1;
134
+ this.updatePageDisplayed(this.currentPage);
135
+ this.maintainFocusOnNumberChange("previous");
136
+ }, disabled: this.currentPage === 1, "aria-label": "Go to previous page", "aria-controls": "status" }, "Previous"), this.totalPages < 6 ? this.displayShortPagination() : this.displayLongPagination(), h("button", { id: "next", class: "paginationbtn nextbtn", onClick: () => {
137
+ this.currentPage = this.currentPage + 1;
138
+ this.updatePageDisplayed(this.currentPage);
139
+ this.maintainFocusOnNumberChange("next");
140
+ }, disabled: this.currentPage === this.totalPages, "aria-label": "Go to next page", "aria-controls": "status" }, "Next"))));
141
+ }
142
+ renderSmall() {
143
+ return (h("div", { class: "smallscreen" }, h("div", { class: `pagebtncontainer ${this.isTabbing ? "user-is-tabbing" : ""}` }, h("button", { id: `wm-1-arw`, class: "paginationbtn", onClick: () => {
144
+ this.currentPage = 1;
145
+ this.updatePageDisplayed(1);
146
+ this.maintainFocusOnNumberChange("prev-arrow");
147
+ }, value: 1, "aria-current": this.currentPage === 1 ? "page" : undefined, "aria-label": `Go to page 1`, "aria-controls": "status", disabled: this.currentPage === 1 }, h("svg", { width: "16", height: "12", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M7.41 10.59L2.83 6l4.58-4.59L6 0 0 6l6 6zM15.41 10.59L10.83 6l4.58-4.59L14 0 8 6l6 6z" }))), h("button", { id: "previous-arw", class: "paginationbtn previousbtn", onClick: () => {
148
+ this.currentPage -= 1;
149
+ this.updatePageDisplayed(this.currentPage);
150
+ this.maintainFocusOnNumberChange("prev-arrow");
151
+ }, disabled: this.currentPage === 1, "aria-label": "Go to previous page" }, h("svg", { width: "8", height: "12", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M7.41 10.59L2.83 6l4.58-4.59L6 0 0 6l6 6z" }))), "Page ", this.currentPage, " of ", this.totalPages, h("button", { id: "next-arw", class: "paginationbtn nextbtn", onClick: () => {
152
+ this.currentPage += 1;
153
+ this.updatePageDisplayed(this.currentPage);
154
+ this.maintainFocusOnNumberChange("next-arrow");
155
+ }, disabled: this.currentPage === this.totalPages, "aria-label": "Go to next page" }, h("svg", { width: "8", height: "12", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M.59 10.59L5.17 6 .59 1.41 2 0l6 6-6 6z" }))), h("button", { id: `wm-${this.totalPages}-arw`, class: "paginationbtn", onClick: () => {
156
+ this.currentPage = this.totalPages;
157
+ this.updatePageDisplayed(this.totalPages);
158
+ this.maintainFocusOnNumberChange("next-arrow");
159
+ }, value: this.totalPages, "aria-current": this.currentPage === this.totalPages ? "page" : undefined, "aria-label": `Go to last page, page ${this.totalPages}`, "aria-controls": "status", disabled: this.currentPage === this.totalPages }, h("svg", { width: "17", height: "12", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M.59 10.59L5.17 6 .59 1.41 2 0l6 6-6 6zM9.59 10.59L14.17 6 9.59 1.41 11 0l6 6-6 6z" }))))));
160
+ }
161
+ render() {
162
+ return (
163
+ // do not render the component if there's only one page
164
+ this.totalItems > this.itemsPerPage && (h("nav", { "aria-label": `Pagination Navigation. ${this.getCurrentPagesInView()}. Current page, ${this.currentPage}.` }, this.isLargeViewport ? this.renderLarge() : this.renderSmall(), h("div", { id: "status", class: "sr-only", "aria-live": "polite", "aria-relevant": "text", "aria-atomic": "true" }, this.srAnnouncement))));
165
+ }
166
+ get el() { return getElement(this); }
167
+ static get watchers() { return {
168
+ "totalItems": ["calculateTotalPages"],
169
+ "itemsPerPage": ["calculateTotalPages"]
170
+ }; }
171
+ };
172
172
  Pagination.style = wmPaginationCss;
173
173
 
174
174
  export { Pagination as wm_pagination };