@watermarkinsights/ripple 3.4.0 → 3.5.0-3

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-ee710089.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 +71 -84
  40. package/dist/collection/components/wm-chart/wm-chart.js +718 -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-b94f59e6.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-3003d26d.entry.js +1 -0
  116. package/dist/ripple/p-33524565.entry.js +1 -0
  117. package/dist/ripple/{p-888bec42.js → p-43f1298b.js} +0 -0
  118. package/dist/ripple/{p-5e49aba7.entry.js → p-4cc71463.entry.js} +1 -1
  119. package/dist/ripple/p-588b4475.js +16 -0
  120. package/dist/ripple/p-65e3a656.entry.js +1 -0
  121. package/dist/ripple/p-7a96bb97.js +1 -0
  122. package/dist/ripple/p-83b8aaaf.entry.js +1 -0
  123. package/dist/ripple/p-8923b7d0.entry.js +1 -0
  124. package/dist/ripple/{p-d52033d5.entry.js → p-8b0eb05e.entry.js} +1 -1
  125. package/dist/ripple/p-8cd1396e.entry.js +1 -0
  126. package/dist/ripple/{p-22a1a636.entry.js → p-99db8501.entry.js} +1 -1
  127. package/dist/ripple/p-9baa3039.js +1 -0
  128. package/dist/ripple/p-aa973691.entry.js +1 -0
  129. package/dist/ripple/{p-a61977b2.entry.js → p-b3d5ea85.entry.js} +1 -1
  130. package/dist/ripple/{p-7d009793.entry.js → p-b5189f72.entry.js} +1 -1
  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
@@ -2,177 +2,177 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-921ef454.js');
6
- const functions = require('./functions-a6491ba8.js');
5
+ const index = require('./index-cd179539.js');
6
+ const functions = require('./functions-653e695c.js');
7
7
 
8
8
  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}";
9
9
 
10
- const Pagination = class {
11
- constructor(hostRef) {
12
- index.registerInstance(this, hostRef);
13
- this.wmPaginationPageClicked = index.createEvent(this, "wmPaginationPageClicked", 7);
14
- this.pageClicked = index.createEvent(this, "pageClicked", 7);
15
- this.focusCurrentPage = index.createEvent(this, "focusCurrentPage", 7);
16
- this.currentPage = 1;
17
- this.totalItems = undefined;
18
- this.itemsPerPage = undefined;
19
- this.value = 1;
20
- this.isLargeViewport = window.innerWidth > 600;
21
- this.isTabbing = false;
22
- this.srAnnouncement = "";
23
- this.totalPages = 0;
24
- this.debouncedResize = functions.debounce(() => {
25
- this.isLargeViewport = window.innerWidth > 600;
26
- }, 250);
27
- this.getMiddlePageNums = () => {
28
- let coreBtns;
29
- // if pg is 1, 2 or 3
30
- if (this.currentPage < 4) {
31
- coreBtns = [2, 3, 4];
32
- }
33
- else if (this.currentPage > this.totalPages - 3) {
34
- coreBtns = [this.totalPages - 3, this.totalPages - 2, this.totalPages - 1];
35
- }
36
- else {
37
- coreBtns = [this.currentPage - 1, this.currentPage, this.currentPage + 1];
38
- }
39
- return coreBtns;
40
- };
41
- }
42
- toggleTabbingOn() {
43
- this.isTabbing = true;
44
- }
45
- toggleTabbingOff() {
46
- this.isTabbing = false;
47
- }
48
- maintainFocusOnNumberChange(el) {
49
- window.requestAnimationFrame(() => {
50
- switch (el) {
51
- case "previous":
52
- 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.
53
- break;
54
- case "next":
55
- this.currentPage === this.totalPages &&
56
- 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.
57
- break;
58
- case "prev-arrow":
59
- 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.
60
- break;
61
- case "next-arrow":
62
- 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.
63
- break;
64
- case "page":
65
- this.el.shadowRoot.querySelector(`button#wm-${this.currentPage}`).focus();
66
- default:
67
- return;
68
- }
69
- });
70
- }
71
- handleResize() {
72
- this.debouncedResize();
73
- }
74
- calculateTotalPages() {
75
- this.totalPages = Math.ceil(this.totalItems / this.itemsPerPage);
76
- }
77
- componentWillLoad() {
78
- if (!this.totalItems || !this.itemsPerPage || !this.currentPage) {
79
- throw new Error("Please check the required attributes");
80
- }
81
- this.calculateTotalPages();
82
- if (document.body.classList.contains("wmcl-user-is-tabbing")) {
83
- this.toggleTabbingOn();
84
- }
85
- }
86
- updatePageDisplayed(pageNum) {
87
- this.value = pageNum;
88
- this.wmPaginationPageClicked.emit();
89
- this.pageClicked.emit(); // deprecated
90
- this.srAnnouncement = `Current page, ${this.currentPage}. ${this.getCurrentPagesInView()}`;
91
- }
92
- displayShortPagination() {
93
- let pages = [];
94
- for (let i = 1; i <= this.totalPages; i++) {
95
- pages.push(this.displayPageNumber(i));
96
- }
97
- return pages;
98
- }
99
- displayLongPagination() {
100
- let view = [
101
- this.displayPageNumber(1),
102
- this.currentPage > 3 && this.displayEllipsis(),
103
- ...this.getMiddlePageNums().map((page) => this.displayPageNumber(page)),
104
- this.currentPage + 2 < this.totalPages && this.displayEllipsis(),
105
- this.displayPageNumber(this.totalPages),
106
- ];
107
- return view;
108
- }
109
- displayPageNumber(pageNum) {
110
- return (index.h("button", { id: `wm-${pageNum}`, class: "paginationbtn", onClick: () => {
111
- this.currentPage = pageNum;
112
- this.updatePageDisplayed(pageNum);
113
- this.maintainFocusOnNumberChange("page");
114
- }, value: pageNum, "aria-label": this.currentPage !== pageNum ? `Go to page ${pageNum}` : "", "aria-current": this.currentPage === pageNum ? "page" : undefined }, pageNum));
115
- }
116
- displayEllipsis() {
117
- return index.h("span", { class: "ellipsis" }, "...");
118
- }
119
- // displayPageView = () => {
120
- // // let end = this.itemsPerPage! * this.currentPage;
121
- // // const begin = end - this.itemsPerPage! + 1;
122
- // // if (end > this.totalItems!) {
123
- // // end = this.totalItems!;
124
- // // }
125
- // return <div class="pageview">{this.getCurrentView()}</div>;
126
- // };
127
- getCurrentPagesInView() {
128
- let end = this.itemsPerPage * this.currentPage;
129
- const begin = end - this.itemsPerPage + 1;
130
- if (end > this.totalItems) {
131
- end = this.totalItems;
132
- }
133
- return "Viewing " + (begin === end ? `${begin}` : `${begin}–${end} of ${this.totalItems}`);
134
- }
135
- renderLarge() {
136
- return (index.h("div", { class: "largescreen" }, index.h("div", { class: "pageview" }, this.getCurrentPagesInView()), index.h("div", { class: `pagebtncontainer ${this.isTabbing ? "user-is-tabbing" : ""}` }, index.h("button", { id: "previous", class: "paginationbtn previousbtn", onClick: () => {
137
- this.currentPage = this.currentPage - 1;
138
- this.updatePageDisplayed(this.currentPage);
139
- this.maintainFocusOnNumberChange("previous");
140
- }, disabled: this.currentPage === 1, "aria-label": "Go to previous page", "aria-controls": "status" }, "Previous"), this.totalPages < 6 ? this.displayShortPagination() : this.displayLongPagination(), index.h("button", { id: "next", class: "paginationbtn nextbtn", onClick: () => {
141
- this.currentPage = this.currentPage + 1;
142
- this.updatePageDisplayed(this.currentPage);
143
- this.maintainFocusOnNumberChange("next");
144
- }, disabled: this.currentPage === this.totalPages, "aria-label": "Go to next page", "aria-controls": "status" }, "Next"))));
145
- }
146
- renderSmall() {
147
- return (index.h("div", { class: "smallscreen" }, index.h("div", { class: `pagebtncontainer ${this.isTabbing ? "user-is-tabbing" : ""}` }, index.h("button", { id: `wm-1-arw`, class: "paginationbtn", onClick: () => {
148
- this.currentPage = 1;
149
- this.updatePageDisplayed(1);
150
- this.maintainFocusOnNumberChange("prev-arrow");
151
- }, value: 1, "aria-current": this.currentPage === 1 ? "page" : undefined, "aria-label": `Go to page 1`, "aria-controls": "status", disabled: this.currentPage === 1 }, index.h("svg", { width: "16", height: "12", xmlns: "http://www.w3.org/2000/svg" }, index.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" }))), index.h("button", { id: "previous-arw", class: "paginationbtn previousbtn", onClick: () => {
152
- this.currentPage -= 1;
153
- this.updatePageDisplayed(this.currentPage);
154
- this.maintainFocusOnNumberChange("prev-arrow");
155
- }, disabled: this.currentPage === 1, "aria-label": "Go to previous page" }, index.h("svg", { width: "8", height: "12", xmlns: "http://www.w3.org/2000/svg" }, index.h("path", { d: "M7.41 10.59L2.83 6l4.58-4.59L6 0 0 6l6 6z" }))), "Page ", this.currentPage, " of ", this.totalPages, index.h("button", { id: "next-arw", class: "paginationbtn nextbtn", onClick: () => {
156
- this.currentPage += 1;
157
- this.updatePageDisplayed(this.currentPage);
158
- this.maintainFocusOnNumberChange("next-arrow");
159
- }, disabled: this.currentPage === this.totalPages, "aria-label": "Go to next page" }, index.h("svg", { width: "8", height: "12", xmlns: "http://www.w3.org/2000/svg" }, index.h("path", { d: "M.59 10.59L5.17 6 .59 1.41 2 0l6 6-6 6z" }))), index.h("button", { id: `wm-${this.totalPages}-arw`, class: "paginationbtn", onClick: () => {
160
- this.currentPage = this.totalPages;
161
- this.updatePageDisplayed(this.totalPages);
162
- this.maintainFocusOnNumberChange("next-arrow");
163
- }, 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 }, index.h("svg", { width: "17", height: "12", xmlns: "http://www.w3.org/2000/svg" }, index.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" }))))));
164
- }
165
- render() {
166
- return (
167
- // do not render the component if there's only one page
168
- this.totalItems > this.itemsPerPage && (index.h("nav", { "aria-label": `Pagination Navigation. ${this.getCurrentPagesInView()}. Current page, ${this.currentPage}.` }, this.isLargeViewport ? this.renderLarge() : this.renderSmall(), index.h("div", { id: "status", class: "sr-only", "aria-live": "polite", "aria-relevant": "text", "aria-atomic": "true" }, this.srAnnouncement))));
169
- }
170
- get el() { return index.getElement(this); }
171
- static get watchers() { return {
172
- "totalItems": ["calculateTotalPages"],
173
- "itemsPerPage": ["calculateTotalPages"]
174
- }; }
175
- };
10
+ const Pagination = class {
11
+ constructor(hostRef) {
12
+ index.registerInstance(this, hostRef);
13
+ this.wmPaginationPageClicked = index.createEvent(this, "wmPaginationPageClicked", 7);
14
+ this.pageClicked = index.createEvent(this, "pageClicked", 7);
15
+ this.focusCurrentPage = index.createEvent(this, "focusCurrentPage", 7);
16
+ this.currentPage = 1;
17
+ this.totalItems = undefined;
18
+ this.itemsPerPage = undefined;
19
+ this.value = 1;
20
+ this.isLargeViewport = window.innerWidth > 600;
21
+ this.isTabbing = false;
22
+ this.srAnnouncement = "";
23
+ this.totalPages = 0;
24
+ this.debouncedResize = functions.debounce(() => {
25
+ this.isLargeViewport = window.innerWidth > 600;
26
+ }, 250);
27
+ this.getMiddlePageNums = () => {
28
+ let coreBtns;
29
+ // if pg is 1, 2 or 3
30
+ if (this.currentPage < 4) {
31
+ coreBtns = [2, 3, 4];
32
+ }
33
+ else if (this.currentPage > this.totalPages - 3) {
34
+ coreBtns = [this.totalPages - 3, this.totalPages - 2, this.totalPages - 1];
35
+ }
36
+ else {
37
+ coreBtns = [this.currentPage - 1, this.currentPage, this.currentPage + 1];
38
+ }
39
+ return coreBtns;
40
+ };
41
+ }
42
+ toggleTabbingOn() {
43
+ this.isTabbing = true;
44
+ }
45
+ toggleTabbingOff() {
46
+ this.isTabbing = false;
47
+ }
48
+ maintainFocusOnNumberChange(el) {
49
+ window.requestAnimationFrame(() => {
50
+ switch (el) {
51
+ case "previous":
52
+ 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.
53
+ break;
54
+ case "next":
55
+ this.currentPage === this.totalPages &&
56
+ 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.
57
+ break;
58
+ case "prev-arrow":
59
+ 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.
60
+ break;
61
+ case "next-arrow":
62
+ 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.
63
+ break;
64
+ case "page":
65
+ this.el.shadowRoot.querySelector(`button#wm-${this.currentPage}`).focus();
66
+ default:
67
+ return;
68
+ }
69
+ });
70
+ }
71
+ handleResize() {
72
+ this.debouncedResize();
73
+ }
74
+ calculateTotalPages() {
75
+ this.totalPages = Math.ceil(this.totalItems / this.itemsPerPage);
76
+ }
77
+ componentWillLoad() {
78
+ if (!this.totalItems || !this.itemsPerPage || !this.currentPage) {
79
+ throw new Error("Please check the required attributes");
80
+ }
81
+ this.calculateTotalPages();
82
+ if (document.body.classList.contains("wmcl-user-is-tabbing")) {
83
+ this.toggleTabbingOn();
84
+ }
85
+ }
86
+ updatePageDisplayed(pageNum) {
87
+ this.value = pageNum;
88
+ this.wmPaginationPageClicked.emit();
89
+ this.pageClicked.emit(); // deprecated
90
+ this.srAnnouncement = `Current page, ${this.currentPage}. ${this.getCurrentPagesInView()}`;
91
+ }
92
+ displayShortPagination() {
93
+ let pages = [];
94
+ for (let i = 1; i <= this.totalPages; i++) {
95
+ pages.push(this.displayPageNumber(i));
96
+ }
97
+ return pages;
98
+ }
99
+ displayLongPagination() {
100
+ let view = [
101
+ this.displayPageNumber(1),
102
+ this.currentPage > 3 && this.displayEllipsis(),
103
+ ...this.getMiddlePageNums().map((page) => this.displayPageNumber(page)),
104
+ this.currentPage + 2 < this.totalPages && this.displayEllipsis(),
105
+ this.displayPageNumber(this.totalPages),
106
+ ];
107
+ return view;
108
+ }
109
+ displayPageNumber(pageNum) {
110
+ return (index.h("button", { id: `wm-${pageNum}`, class: "paginationbtn", onClick: () => {
111
+ this.currentPage = pageNum;
112
+ this.updatePageDisplayed(pageNum);
113
+ this.maintainFocusOnNumberChange("page");
114
+ }, value: pageNum, "aria-label": this.currentPage !== pageNum ? `Go to page ${pageNum}` : "", "aria-current": this.currentPage === pageNum ? "page" : undefined }, pageNum));
115
+ }
116
+ displayEllipsis() {
117
+ return index.h("span", { class: "ellipsis" }, "...");
118
+ }
119
+ // displayPageView = () => {
120
+ // // let end = this.itemsPerPage! * this.currentPage;
121
+ // // const begin = end - this.itemsPerPage! + 1;
122
+ // // if (end > this.totalItems!) {
123
+ // // end = this.totalItems!;
124
+ // // }
125
+ // return <div class="pageview">{this.getCurrentView()}</div>;
126
+ // };
127
+ getCurrentPagesInView() {
128
+ let end = this.itemsPerPage * this.currentPage;
129
+ const begin = end - this.itemsPerPage + 1;
130
+ if (end > this.totalItems) {
131
+ end = this.totalItems;
132
+ }
133
+ return "Viewing " + (begin === end ? `${begin}` : `${begin}–${end} of ${this.totalItems}`);
134
+ }
135
+ renderLarge() {
136
+ return (index.h("div", { class: "largescreen" }, index.h("div", { class: "pageview" }, this.getCurrentPagesInView()), index.h("div", { class: `pagebtncontainer ${this.isTabbing ? "user-is-tabbing" : ""}` }, index.h("button", { id: "previous", class: "paginationbtn previousbtn", onClick: () => {
137
+ this.currentPage = this.currentPage - 1;
138
+ this.updatePageDisplayed(this.currentPage);
139
+ this.maintainFocusOnNumberChange("previous");
140
+ }, disabled: this.currentPage === 1, "aria-label": "Go to previous page", "aria-controls": "status" }, "Previous"), this.totalPages < 6 ? this.displayShortPagination() : this.displayLongPagination(), index.h("button", { id: "next", class: "paginationbtn nextbtn", onClick: () => {
141
+ this.currentPage = this.currentPage + 1;
142
+ this.updatePageDisplayed(this.currentPage);
143
+ this.maintainFocusOnNumberChange("next");
144
+ }, disabled: this.currentPage === this.totalPages, "aria-label": "Go to next page", "aria-controls": "status" }, "Next"))));
145
+ }
146
+ renderSmall() {
147
+ return (index.h("div", { class: "smallscreen" }, index.h("div", { class: `pagebtncontainer ${this.isTabbing ? "user-is-tabbing" : ""}` }, index.h("button", { id: `wm-1-arw`, class: "paginationbtn", onClick: () => {
148
+ this.currentPage = 1;
149
+ this.updatePageDisplayed(1);
150
+ this.maintainFocusOnNumberChange("prev-arrow");
151
+ }, value: 1, "aria-current": this.currentPage === 1 ? "page" : undefined, "aria-label": `Go to page 1`, "aria-controls": "status", disabled: this.currentPage === 1 }, index.h("svg", { width: "16", height: "12", xmlns: "http://www.w3.org/2000/svg" }, index.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" }))), index.h("button", { id: "previous-arw", class: "paginationbtn previousbtn", onClick: () => {
152
+ this.currentPage -= 1;
153
+ this.updatePageDisplayed(this.currentPage);
154
+ this.maintainFocusOnNumberChange("prev-arrow");
155
+ }, disabled: this.currentPage === 1, "aria-label": "Go to previous page" }, index.h("svg", { width: "8", height: "12", xmlns: "http://www.w3.org/2000/svg" }, index.h("path", { d: "M7.41 10.59L2.83 6l4.58-4.59L6 0 0 6l6 6z" }))), "Page ", this.currentPage, " of ", this.totalPages, index.h("button", { id: "next-arw", class: "paginationbtn nextbtn", onClick: () => {
156
+ this.currentPage += 1;
157
+ this.updatePageDisplayed(this.currentPage);
158
+ this.maintainFocusOnNumberChange("next-arrow");
159
+ }, disabled: this.currentPage === this.totalPages, "aria-label": "Go to next page" }, index.h("svg", { width: "8", height: "12", xmlns: "http://www.w3.org/2000/svg" }, index.h("path", { d: "M.59 10.59L5.17 6 .59 1.41 2 0l6 6-6 6z" }))), index.h("button", { id: `wm-${this.totalPages}-arw`, class: "paginationbtn", onClick: () => {
160
+ this.currentPage = this.totalPages;
161
+ this.updatePageDisplayed(this.totalPages);
162
+ this.maintainFocusOnNumberChange("next-arrow");
163
+ }, 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 }, index.h("svg", { width: "17", height: "12", xmlns: "http://www.w3.org/2000/svg" }, index.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" }))))));
164
+ }
165
+ render() {
166
+ return (
167
+ // do not render the component if there's only one page
168
+ this.totalItems > this.itemsPerPage && (index.h("nav", { "aria-label": `Pagination Navigation. ${this.getCurrentPagesInView()}. Current page, ${this.currentPage}.` }, this.isLargeViewport ? this.renderLarge() : this.renderSmall(), index.h("div", { id: "status", class: "sr-only", "aria-live": "polite", "aria-relevant": "text", "aria-atomic": "true" }, this.srAnnouncement))));
169
+ }
170
+ get el() { return index.getElement(this); }
171
+ static get watchers() { return {
172
+ "totalItems": ["calculateTotalPages"],
173
+ "itemsPerPage": ["calculateTotalPages"]
174
+ }; }
175
+ };
176
176
  Pagination.style = wmPaginationCss;
177
177
 
178
178
  exports.wm_pagination = Pagination;