ku4web-components 6.5.6 → 6.5.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (276) hide show
  1. package/angular/index.js +3 -1
  2. package/angular/index.mjs +1 -1
  3. package/dist/cjs/{index-e69a9e98.js → index-4e2544a7.js} +10 -8
  4. package/dist/cjs/index-ad5278ca.js +10 -0
  5. package/dist/cjs/ku4-carousel-controls.cjs.entry.js +2 -2
  6. package/dist/cjs/ku4-carousel-slide.cjs.entry.js +1 -1
  7. package/dist/cjs/ku4-carousel.cjs.entry.js +3 -3
  8. package/dist/cjs/ku4-col.cjs.entry.js +1 -1
  9. package/dist/cjs/ku4-drawer.cjs.entry.js +1 -1
  10. package/dist/cjs/ku4-feature.cjs.entry.js +2 -2
  11. package/dist/cjs/ku4-focus-trap.cjs.entry.js +26 -26
  12. package/dist/cjs/ku4-form.cjs.entry.js +3 -3
  13. package/dist/cjs/ku4-grid.cjs.entry.js +1 -1
  14. package/dist/cjs/ku4-label.cjs.entry.js +2 -2
  15. package/dist/cjs/ku4-mask.cjs.entry.js +2 -2
  16. package/dist/cjs/ku4-modal.cjs.entry.js +3 -3
  17. package/dist/cjs/ku4-panel.cjs.entry.js +1 -1
  18. package/dist/cjs/ku4-preview.cjs.entry.js +14 -43
  19. package/dist/cjs/ku4-tab-list.cjs.entry.js +4 -4
  20. package/dist/cjs/ku4-tab-panel.cjs.entry.js +3 -3
  21. package/dist/cjs/ku4-tab.cjs.entry.js +3 -3
  22. package/dist/cjs/ku4-table.cjs.entry.js +1 -1
  23. package/dist/cjs/ku4-tooltip.cjs.entry.js +2 -2
  24. package/dist/cjs/ku4-validation.cjs.entry.js +2 -2
  25. package/dist/cjs/ku4web-components.cjs.js +7 -102
  26. package/dist/cjs/loader.cjs.js +2 -18
  27. package/dist/cjs/{shadow-css-42acdd0e.js → shadow-css-abc19485.js} +2 -3
  28. package/dist/esm/{index-3a223c58.js → index-e5173978.js} +10 -8
  29. package/dist/esm/index-f06d1dc2.js +3 -0
  30. package/dist/esm/ku4-carousel-controls.entry.js +2 -2
  31. package/dist/esm/ku4-carousel-slide.entry.js +1 -1
  32. package/dist/esm/ku4-carousel.entry.js +3 -3
  33. package/dist/esm/ku4-col.entry.js +1 -1
  34. package/dist/esm/ku4-drawer.entry.js +1 -1
  35. package/dist/esm/ku4-feature.entry.js +2 -2
  36. package/dist/esm/ku4-focus-trap.entry.js +3 -3
  37. package/dist/esm/ku4-form.entry.js +3 -3
  38. package/dist/esm/ku4-grid.entry.js +1 -1
  39. package/dist/esm/ku4-label.entry.js +2 -2
  40. package/dist/esm/ku4-mask.entry.js +2 -2
  41. package/dist/esm/ku4-modal.entry.js +3 -3
  42. package/dist/esm/ku4-panel.entry.js +1 -1
  43. package/dist/esm/ku4-preview.entry.js +5 -34
  44. package/dist/esm/ku4-tab-list.entry.js +4 -4
  45. package/dist/esm/ku4-tab-panel.entry.js +3 -3
  46. package/dist/esm/ku4-tab.entry.js +3 -3
  47. package/dist/esm/ku4-table.entry.js +1 -1
  48. package/dist/esm/ku4-tooltip.entry.js +2 -2
  49. package/dist/esm/ku4-validation.entry.js +2 -2
  50. package/dist/esm/ku4web-components.js +7 -102
  51. package/dist/esm/loader.js +2 -18
  52. package/dist/{ku4web-components/shadow-css-38a1326b.js → esm/shadow-css-02866686.js} +2 -3
  53. package/dist/esm-es5/{index-3a223c58.js → index-e5173978.js} +2 -1
  54. package/dist/esm-es5/index-f06d1dc2.js +1 -0
  55. package/dist/esm-es5/ku4-carousel-controls.entry.js +1 -1
  56. package/dist/esm-es5/ku4-carousel-slide.entry.js +1 -1
  57. package/dist/esm-es5/ku4-carousel.entry.js +1 -1
  58. package/dist/esm-es5/ku4-col.entry.js +1 -1
  59. package/dist/esm-es5/ku4-drawer.entry.js +1 -1
  60. package/dist/esm-es5/ku4-feature.entry.js +1 -1
  61. package/dist/esm-es5/ku4-focus-trap.entry.js +1 -1
  62. package/dist/esm-es5/ku4-form.entry.js +1 -1
  63. package/dist/esm-es5/ku4-grid.entry.js +1 -1
  64. package/dist/esm-es5/ku4-label.entry.js +1 -1
  65. package/dist/esm-es5/ku4-mask.entry.js +1 -1
  66. package/dist/esm-es5/ku4-modal.entry.js +1 -1
  67. package/dist/esm-es5/ku4-panel.entry.js +1 -1
  68. package/dist/esm-es5/ku4-preview.entry.js +1 -1
  69. package/dist/esm-es5/ku4-tab-list.entry.js +1 -1
  70. package/dist/esm-es5/ku4-tab-panel.entry.js +1 -1
  71. package/dist/esm-es5/ku4-tab.entry.js +1 -1
  72. package/dist/esm-es5/ku4-table.entry.js +1 -1
  73. package/dist/esm-es5/ku4-tooltip.entry.js +1 -1
  74. package/dist/esm-es5/ku4-validation.entry.js +1 -1
  75. package/dist/esm-es5/ku4web-components.js +1 -1
  76. package/dist/esm-es5/loader.js +1 -1
  77. package/dist/esm-es5/shadow-css-02866686.js +12 -0
  78. package/dist/index.js +1 -1
  79. package/dist/ku4web-components/index.esm.js +0 -1
  80. package/dist/ku4web-components/ku4web-components.css +1 -299
  81. package/dist/ku4web-components/ku4web-components.esm.js +1 -129
  82. package/dist/ku4web-components/ku4web-components.js +1 -1
  83. package/dist/ku4web-components/{p-96033515.system.entry.js → p-02eef79e.system.entry.js} +1 -1
  84. package/dist/ku4web-components/p-06b0b9bc.js +2 -0
  85. package/dist/ku4web-components/{p-2ee63f57.system.js → p-0b3bdc7f.system.js} +1 -1
  86. package/dist/ku4web-components/{p-b1680ef4.entry.js → p-155f4481.entry.js} +1 -1
  87. package/dist/ku4web-components/{p-c5448cc1.system.entry.js → p-2723d2b6.system.entry.js} +1 -1
  88. package/dist/ku4web-components/{p-e31755cd.system.entry.js → p-2c79be2e.system.entry.js} +1 -1
  89. package/dist/ku4web-components/p-2df8696a.entry.js +1 -0
  90. package/dist/ku4web-components/{p-046b3990.entry.js → p-364b562f.entry.js} +1 -1
  91. package/dist/ku4web-components/{p-bb698020.system.entry.js → p-3ba44adc.system.entry.js} +1 -1
  92. package/dist/ku4web-components/{p-4ecd9b1d.system.entry.js → p-42d52222.system.entry.js} +1 -1
  93. package/dist/ku4web-components/{p-0f1646ca.system.entry.js → p-4733f8b6.system.entry.js} +1 -1
  94. package/dist/ku4web-components/{p-8173d389.system.entry.js → p-48b0bb76.system.entry.js} +1 -1
  95. package/dist/ku4web-components/p-5109ce9d.system.js +1 -0
  96. package/dist/ku4web-components/{p-ae7ce1fe.system.entry.js → p-55a4a947.system.entry.js} +1 -1
  97. package/dist/ku4web-components/{p-d0f3bec4.js → p-5a51f33e.js} +1 -1
  98. package/dist/ku4web-components/{p-e11fbd79.entry.js → p-5c296352.entry.js} +1 -1
  99. package/dist/ku4web-components/{p-3deab7f6.system.entry.js → p-5e666fe4.system.entry.js} +1 -1
  100. package/dist/ku4web-components/{p-bb5410b5.entry.js → p-6028fc6f.entry.js} +1 -1
  101. package/dist/ku4web-components/{p-72be654e.system.entry.js → p-65643a0b.system.entry.js} +1 -1
  102. package/dist/ku4web-components/{p-4da33ea7.entry.js → p-67a2204b.entry.js} +1 -1
  103. package/dist/ku4web-components/{p-7b6ca6a8.entry.js → p-6ab4928a.entry.js} +1 -1
  104. package/dist/ku4web-components/{p-cfd1b93c.entry.js → p-6e918f89.entry.js} +1 -1
  105. package/dist/ku4web-components/{p-1e19bc01.system.entry.js → p-71cbf981.system.entry.js} +1 -1
  106. package/dist/ku4web-components/{p-7b93a362.system.entry.js → p-7260c454.system.entry.js} +1 -1
  107. package/dist/ku4web-components/{p-5e628256.entry.js → p-731cff07.entry.js} +1 -1
  108. package/dist/ku4web-components/{p-fd3d3f56.system.js → p-8f2e658a.system.js} +2 -1
  109. package/dist/ku4web-components/{p-9e2f37cc.entry.js → p-939f438f.entry.js} +1 -1
  110. package/dist/ku4web-components/{p-6509d3e7.system.entry.js → p-9a6aa058.system.entry.js} +1 -1
  111. package/dist/ku4web-components/{p-da8a8b83.entry.js → p-9db782b0.entry.js} +1 -1
  112. package/dist/ku4web-components/{p-0b777b57.entry.js → p-9ebb7181.entry.js} +1 -1
  113. package/dist/ku4web-components/{p-d42bd64d.entry.js → p-9fcb26bb.entry.js} +1 -1
  114. package/dist/ku4web-components/{p-27647af0.system.entry.js → p-a3b9acd3.system.entry.js} +1 -1
  115. package/dist/ku4web-components/{p-de3b2ba1.entry.js → p-a45df4c1.entry.js} +1 -1
  116. package/dist/ku4web-components/{p-17c2a7ac.system.entry.js → p-b2512286.system.entry.js} +1 -1
  117. package/dist/ku4web-components/{p-ea1961f5.entry.js → p-b334f07e.entry.js} +1 -1
  118. package/dist/ku4web-components/{p-a13796dc.system.entry.js → p-bc388bcc.system.entry.js} +1 -1
  119. package/dist/ku4web-components/p-c00ad706.system.js +13 -0
  120. package/dist/ku4web-components/{p-6515c623.system.entry.js → p-c0dce18b.system.entry.js} +1 -1
  121. package/dist/ku4web-components/{p-1abe6f26.entry.js → p-c46a6ff5.entry.js} +1 -1
  122. package/dist/ku4web-components/p-ccf9d584.js +1 -0
  123. package/dist/ku4web-components/{p-9778d082.system.entry.js → p-e4693cda.system.entry.js} +1 -1
  124. package/dist/ku4web-components/{p-d4877fdf.entry.js → p-e5170dc1.entry.js} +1 -1
  125. package/dist/ku4web-components/{p-0a68e802.entry.js → p-e65f0ac5.entry.js} +1 -1
  126. package/dist/ku4web-components/{p-1a09ae2c.entry.js → p-ea1b0df6.entry.js} +1 -1
  127. package/dist/ku4web-components/{p-5e8921ef.system.entry.js → p-f0dbdb77.system.entry.js} +1 -1
  128. package/dist/ku4web-components/{p-9b01a63a.entry.js → p-f76dfee1.entry.js} +1 -1
  129. package/dist/ku4web-components/{p-a7ab7c23.system.entry.js → p-faa0713d.system.entry.js} +1 -1
  130. package/dist/types/components.d.ts +27 -7
  131. package/package.json +37 -30
  132. package/react/index.js +3 -1
  133. package/react/index.mjs +1 -1
  134. package/vue/index.js +3 -1
  135. package/vue/index.mjs +1 -1
  136. package/vue3/index.js +3 -1
  137. package/vue3/index.mjs +1 -1
  138. package/dist/cjs/app-globals-3a1e7e63.js +0 -5
  139. package/dist/cjs/css-shim-f1391d35.js +0 -6
  140. package/dist/cjs/dom-5345ed9a.js +0 -75
  141. package/dist/cjs/index-065185f8.js +0 -3093
  142. package/dist/cjs/index-16f16ed9.js +0 -14
  143. package/dist/cjs/index-436596bf.js +0 -10
  144. package/dist/cjs/index-49d3746b.js +0 -10
  145. package/dist/cjs/uid-a1348ea5.js +0 -11
  146. package/dist/collection/capabilities/a11y/aria.js +0 -26
  147. package/dist/collection/capabilities/angular/index.js +0 -24
  148. package/dist/collection/capabilities/decorators/deprecated.js +0 -20
  149. package/dist/collection/capabilities/decorators/index.js +0 -3
  150. package/dist/collection/capabilities/decorators/memoize.js +0 -7
  151. package/dist/collection/capabilities/dom/isFocusable.js +0 -7
  152. package/dist/collection/capabilities/dom/queryFocusable.js +0 -2
  153. package/dist/collection/capabilities/identity/uid.js +0 -6
  154. package/dist/collection/capabilities/mask/index.js +0 -5
  155. package/dist/collection/capabilities/mask/patterns/date.js +0 -40
  156. package/dist/collection/capabilities/mask/patterns/index.js +0 -7
  157. package/dist/collection/capabilities/react/index.js +0 -25
  158. package/dist/collection/capabilities/testing/html.js +0 -14
  159. package/dist/collection/capabilities/testing/styles.js +0 -14
  160. package/dist/collection/capabilities/vue/index.js +0 -28
  161. package/dist/collection/capabilities/vue3/index.js +0 -26
  162. package/dist/collection/collection-manifest.json +0 -31
  163. package/dist/collection/components/ku4-carousel/ku4-carousel.css +0 -221
  164. package/dist/collection/components/ku4-carousel/ku4-carousel.js +0 -369
  165. package/dist/collection/components/ku4-carousel-controls/ku4-carousel-controls.css +0 -32
  166. package/dist/collection/components/ku4-carousel-controls/ku4-carousel-controls.js +0 -112
  167. package/dist/collection/components/ku4-carousel-slide/ku4-carousel-slide.css +0 -3
  168. package/dist/collection/components/ku4-carousel-slide/ku4-carousel-slide.js +0 -159
  169. package/dist/collection/components/ku4-col/ku4-col.css +0 -601
  170. package/dist/collection/components/ku4-col/ku4-col.js +0 -288
  171. package/dist/collection/components/ku4-drawer/ku4-drawer.css +0 -56
  172. package/dist/collection/components/ku4-drawer/ku4-drawer.js +0 -163
  173. package/dist/collection/components/ku4-feature/ku4-feature.js +0 -70
  174. package/dist/collection/components/ku4-focus-trap/ku4-focus-trap.css +0 -3
  175. package/dist/collection/components/ku4-focus-trap/ku4-focus-trap.js +0 -441
  176. package/dist/collection/components/ku4-form/ku4-form.js +0 -265
  177. package/dist/collection/components/ku4-grid/ku4-grid.css +0 -751
  178. package/dist/collection/components/ku4-grid/ku4-grid.js +0 -408
  179. package/dist/collection/components/ku4-label/ku4-label.css +0 -36
  180. package/dist/collection/components/ku4-label/ku4-label.js +0 -115
  181. package/dist/collection/components/ku4-mask/ku4-mask.css +0 -3
  182. package/dist/collection/components/ku4-mask/ku4-mask.js +0 -459
  183. package/dist/collection/components/ku4-modal/ku4-modal.css +0 -85
  184. package/dist/collection/components/ku4-modal/ku4-modal.js +0 -231
  185. package/dist/collection/components/ku4-panel/ku4-panel.css +0 -14
  186. package/dist/collection/components/ku4-panel/ku4-panel.js +0 -119
  187. package/dist/collection/components/ku4-preview/ku4-preview.css +0 -23
  188. package/dist/collection/components/ku4-preview/ku4-preview.js +0 -266
  189. package/dist/collection/components/ku4-tab/ku4-tab.css +0 -82
  190. package/dist/collection/components/ku4-tab/ku4-tab.js +0 -191
  191. package/dist/collection/components/ku4-tab-list/ku4-tab-list.css +0 -6
  192. package/dist/collection/components/ku4-tab-list/ku4-tab-list.js +0 -118
  193. package/dist/collection/components/ku4-tab-panel/ku4-tab-panel.css +0 -26
  194. package/dist/collection/components/ku4-tab-panel/ku4-tab-panel.js +0 -166
  195. package/dist/collection/components/ku4-table/ku4-table.css +0 -116
  196. package/dist/collection/components/ku4-table/ku4-table.js +0 -120
  197. package/dist/collection/components/ku4-tooltip/ku4-tooltip.css +0 -56
  198. package/dist/collection/components/ku4-tooltip/ku4-tooltip.js +0 -274
  199. package/dist/collection/components/ku4-validation/ku4-validation.css +0 -19
  200. package/dist/collection/components/ku4-validation/ku4-validation.js +0 -364
  201. package/dist/collection/components/ku4-validation/validate.js +0 -14
  202. package/dist/collection/index.js +0 -1
  203. package/dist/collection/security.js +0 -27
  204. package/dist/esm/app-globals-0f993ce5.js +0 -3
  205. package/dist/esm/css-shim-10e6e2ae.js +0 -4
  206. package/dist/esm/dom-7cd9cf71.js +0 -73
  207. package/dist/esm/index-5448a818.js +0 -3
  208. package/dist/esm/index-6cfd87e4.js +0 -3
  209. package/dist/esm/index-a02dcfc8.js +0 -3057
  210. package/dist/esm/index-aa119486.js +0 -3
  211. package/dist/esm/shadow-css-38a1326b.js +0 -388
  212. package/dist/esm/uid-3716c2c4.js +0 -9
  213. package/dist/esm-es5/index-5448a818.js +0 -1
  214. package/dist/esm-es5/shadow-css-38a1326b.js +0 -12
  215. package/dist/ku4web-components/app-globals-0f993ce5.js +0 -3
  216. package/dist/ku4web-components/app-globals-497eb362.system.js +0 -1
  217. package/dist/ku4web-components/css-shim-10e6e2ae.js +0 -4
  218. package/dist/ku4web-components/css-shim-c8dd4551.system.js +0 -1
  219. package/dist/ku4web-components/dom-67d1e45e.system.js +0 -21
  220. package/dist/ku4web-components/dom-7cd9cf71.js +0 -73
  221. package/dist/ku4web-components/index-1c93827a.system.js +0 -1
  222. package/dist/ku4web-components/index-29f2b09f.system.js +0 -1
  223. package/dist/ku4web-components/index-5d0cb00d.system.js +0 -1
  224. package/dist/ku4web-components/index-6cfd87e4.js +0 -3
  225. package/dist/ku4web-components/index-a02dcfc8.js +0 -3057
  226. package/dist/ku4web-components/index-aa119486.js +0 -3
  227. package/dist/ku4web-components/index.system.js +0 -1
  228. package/dist/ku4web-components/ku4-carousel-controls.entry.js +0 -89
  229. package/dist/ku4web-components/ku4-carousel-controls.system.entry.js +0 -1
  230. package/dist/ku4web-components/ku4-carousel-slide.entry.js +0 -47
  231. package/dist/ku4web-components/ku4-carousel-slide.system.entry.js +0 -1
  232. package/dist/ku4web-components/ku4-carousel.entry.js +0 -175
  233. package/dist/ku4web-components/ku4-carousel.system.entry.js +0 -1
  234. package/dist/ku4web-components/ku4-col.entry.js +0 -75
  235. package/dist/ku4web-components/ku4-col.system.entry.js +0 -1
  236. package/dist/ku4web-components/ku4-drawer.entry.js +0 -35
  237. package/dist/ku4web-components/ku4-drawer.system.entry.js +0 -1
  238. package/dist/ku4web-components/ku4-feature.entry.js +0 -29
  239. package/dist/ku4web-components/ku4-feature.system.entry.js +0 -1
  240. package/dist/ku4web-components/ku4-focus-trap.entry.js +0 -323
  241. package/dist/ku4web-components/ku4-focus-trap.system.entry.js +0 -1
  242. package/dist/ku4web-components/ku4-form.entry.js +0 -120
  243. package/dist/ku4web-components/ku4-form.system.entry.js +0 -1
  244. package/dist/ku4web-components/ku4-grid.entry.js +0 -108
  245. package/dist/ku4web-components/ku4-grid.system.entry.js +0 -1
  246. package/dist/ku4web-components/ku4-label.entry.js +0 -70
  247. package/dist/ku4web-components/ku4-label.system.entry.js +0 -1
  248. package/dist/ku4web-components/ku4-mask.entry.js +0 -343
  249. package/dist/ku4web-components/ku4-mask.system.entry.js +0 -1
  250. package/dist/ku4web-components/ku4-modal.entry.js +0 -80
  251. package/dist/ku4web-components/ku4-modal.system.entry.js +0 -1
  252. package/dist/ku4web-components/ku4-panel.entry.js +0 -49
  253. package/dist/ku4web-components/ku4-panel.system.entry.js +0 -1
  254. package/dist/ku4web-components/ku4-preview.entry.js +0 -128
  255. package/dist/ku4web-components/ku4-preview.system.entry.js +0 -1
  256. package/dist/ku4web-components/ku4-tab-list.entry.js +0 -76
  257. package/dist/ku4web-components/ku4-tab-list.system.entry.js +0 -1
  258. package/dist/ku4web-components/ku4-tab-panel.entry.js +0 -72
  259. package/dist/ku4web-components/ku4-tab-panel.system.entry.js +0 -1
  260. package/dist/ku4web-components/ku4-tab.entry.js +0 -63
  261. package/dist/ku4web-components/ku4-tab.system.entry.js +0 -1
  262. package/dist/ku4web-components/ku4-table.entry.js +0 -79
  263. package/dist/ku4web-components/ku4-table.system.entry.js +0 -1
  264. package/dist/ku4web-components/ku4-tooltip.entry.js +0 -120
  265. package/dist/ku4web-components/ku4-tooltip.system.entry.js +0 -1
  266. package/dist/ku4web-components/ku4-validation.entry.js +0 -162
  267. package/dist/ku4web-components/ku4-validation.system.entry.js +0 -1
  268. package/dist/ku4web-components/ku4web-components.system.js +0 -1
  269. package/dist/ku4web-components/p-016a7b4e.js +0 -1
  270. package/dist/ku4web-components/p-0de744b1.system.js +0 -1
  271. package/dist/ku4web-components/p-791e2dfc.js +0 -1
  272. package/dist/ku4web-components/p-ac7884f3.entry.js +0 -1
  273. package/dist/ku4web-components/p-e7cd2284.system.js +0 -13
  274. package/dist/ku4web-components/shadow-css-7fde17ac.system.js +0 -13
  275. package/dist/ku4web-components/uid-2ed9f227.system.js +0 -1
  276. package/dist/ku4web-components/uid-3716c2c4.js +0 -9
@@ -1,459 +0,0 @@
1
- import { Component, Prop, Watch, h } from '@stencil/core';
2
- import { Assert, string, wait } from 'ku4es-kernel';
3
- /**
4
- * @description ku4-mask
5
- */
6
- export class Ku4Mask {
7
- constructor() {
8
- this.charIndexes = [];
9
- this.reverseCharIndexes = [];
10
- this.previousValue = '';
11
- this.currentValue = '';
12
- this.touchStart = false;
13
- /**
14
- * Mask template
15
- */
16
- this.template = '';
17
- /**
18
- * A regex of characters to ban from
19
- * entry. A user will not be able to input
20
- * any character in this set of characters.
21
- * E.g. ban="[()-]" will not allow a user to
22
- * input (, ), or - into the target input.
23
- */
24
- this.ban = '';
25
- /**
26
- * A test pattern for the mask to allow or
27
- * disallow characters at targeted points
28
- * in the input. The pattern is a character
29
- * separated value of regular expressions
30
- * where the first character denotes the
31
- * character separator at each subsequent
32
- * value is a regular expression for the
33
- * character at that indicated index.
34
- * E.g. `pattern=",[345],,,[^abc]"` would mean
35
- * that "," is the separator and that the
36
- * first character must be a 3, 4, or 5, and
37
- * the fourth character cannot be an a, b or c.
38
- */
39
- this.pattern = '';
40
- /**
41
- * Mask Character
42
- */
43
- this.char = '_';
44
- /**
45
- * Hide mask
46
- */
47
- this.hidden = false;
48
- this.handleFocus = this.handleFocus.bind(this);
49
- this.handleBlur = this.handleBlur.bind(this);
50
- this.handleKeyDown = this.handleKeyDown.bind(this);
51
- this.handleInput = this.handleInput.bind(this);
52
- this.handleTouchStart = this.handleTouchStart.bind(this);
53
- this.init();
54
- }
55
- init() {
56
- this.chars = this.char && new RegExp(this.char);
57
- this.banned = this.ban && new RegExp(this.ban);
58
- const pattern = this.pattern.replace(/[\s\n]/gm, '');
59
- this.patterns = pattern.substr(1).split(pattern[0]).map((v) => {
60
- try {
61
- return v && new RegExp(v) || null;
62
- }
63
- catch (e) {
64
- /**
65
- * TODO: Remove try/catch when Safari supports lookbehinds.
66
- * Safari does not support lookbehinds and blows up everything
67
- * because of this. This try catch allows all masking behaviour
68
- * to continue to work except for patterns that include lookbehinds.
69
- */
70
- }
71
- });
72
- this.charIndexes = this.template.split('')
73
- .reduce((acc, char, i) => {
74
- if (this.chars.test(char)) {
75
- acc.push(i);
76
- }
77
- return acc;
78
- }, []);
79
- this.reverseCharIndexes = [...this.charIndexes].reverse();
80
- return this;
81
- }
82
- templateHandler(newTemplate, oldTemplate) {
83
- const { input, previousCharIndex, previousValue, currentValue, value, char } = this;
84
- const previousLength = string.unmask(previousValue, oldTemplate, char).length;
85
- const currentLength = string.unmask(currentValue, oldTemplate, char).length;
86
- const nextIndex = previousLength < currentLength ? previousCharIndex + 1 : previousCharIndex;
87
- this.init().value = string.mask(string.unmask(value, oldTemplate, char), newTemplate, char);
88
- input.setSelectionRange(nextIndex, nextIndex);
89
- }
90
- charHandler(newChar, oldChar) {
91
- const { value, template } = this;
92
- this.init().value = string.mask(string.unmask(value, template, oldChar), template, newChar);
93
- }
94
- get previousCharIndex() {
95
- return this.reverseCharIndexes.find(i => this.selectionStart > i) || this.charIndexes[0];
96
- }
97
- get value() {
98
- return this.currentValue;
99
- }
100
- set value(value) {
101
- const { chars, hidden, input } = this;
102
- const indexOfChar = value.search(chars);
103
- this.currentValue = value;
104
- input.value = hidden && indexOfChar > -1 ? value.substring(0, indexOfChar) : value;
105
- }
106
- handleTouchStart() {
107
- this.touchStart = true;
108
- }
109
- handleFocus() {
110
- // Abort if the browser is IE11
111
- // @ts-ignore - Leveraging documentMode to determine unsupported browser
112
- if (window.document.documentMode) {
113
- return;
114
- }
115
- const { input, template, char, chars, touchStart } = this;
116
- const inputUnmasked = string.unmask(input.value, template, char);
117
- const valueUnmasked = string.unmask(this.value, template, char);
118
- this.value = inputUnmasked !== valueUnmasked
119
- ? string.mask(inputUnmasked, template, char)
120
- : string.mask(valueUnmasked, template, char);
121
- wait(0).then(() => {
122
- const index = input.value.search(chars);
123
- const selection = index < 0 ? input.value.length : index;
124
- this.input.setSelectionRange(index < 0 && !touchStart ? 0 : selection, selection);
125
- this.touchStart = false;
126
- });
127
- }
128
- handleBlur() {
129
- const { template, char } = this;
130
- if (Assert.isEmpty(string.unmask(this.value, template, char))) {
131
- this.value = '';
132
- }
133
- }
134
- handleKeyDown(e) {
135
- // Abort if the browser is IE11
136
- // @ts-ignore - Leveraging documentMode to determine unsupported browser
137
- if (window.document.documentMode) {
138
- return;
139
- }
140
- const { banned, hidden, template, char } = this;
141
- if (e.key &&
142
- e.key.length === 1 &&
143
- banned &&
144
- (banned.test(e.key) &&
145
- !(e.altKey || e.ctrlKey || e.metaKey))) {
146
- e.preventDefault();
147
- }
148
- this.previousValue = hidden ? string.mask(string.unmask(e.target.value, template, char), template, char) : e.target.value;
149
- this.selectionStart = e.target.selectionStart;
150
- this.selectionEnd = e.target.selectionEnd;
151
- }
152
- handleInput(e) {
153
- // Abort if the browser is IE11
154
- // @ts-ignore - Leveraging documentMode to determine unsupported browser
155
- if (window.document.documentMode) {
156
- return;
157
- }
158
- const { input, template, char, chars, previousValue, banned, selectionStart, selectionEnd, previousCharIndex, patterns, charIndexes, reverseCharIndexes } = this;
159
- if (!chars.test(this.previousValue) &&
160
- !(e.type === 'input' && !e.inputType) &&
161
- e.inputType !== 'insertFromPaste' &&
162
- e.inputType !== 'deleteContentBackward' &&
163
- e.inputType !== 'deleteContentForward' &&
164
- e.inputType !== 'deleteByCut' &&
165
- selectionStart === selectionEnd) {
166
- this.value = previousValue;
167
- return;
168
- }
169
- if (e.inputType === 'insertFromPaste') {
170
- try {
171
- navigator.clipboard.readText()
172
- .then((rawData) => {
173
- const unmask = string.unmask(rawData, template, char);
174
- const data = unmask.replace(new RegExp(banned, 'g'), '');
175
- if (Assert.isNullOrEmpty(data)) {
176
- this.value = previousValue;
177
- input.setSelectionRange(selectionStart, selectionStart);
178
- return;
179
- }
180
- if (!banned || !banned.test(data)) {
181
- let nextValue = previousValue;
182
- if (selectionStart < selectionEnd) {
183
- const startValue = reverseCharIndexes.find(v => v <= selectionStart - 1);
184
- const endValue = reverseCharIndexes.find(v => v <= selectionEnd - 1);
185
- const startInsertIndex = charIndexes.findIndex(v => v === startValue);
186
- const endInsertIndex = charIndexes.findIndex(v => v === endValue);
187
- const unmasked = string.unmask(previousValue, template, char);
188
- const newValue = unmasked.substring(0, startInsertIndex + 1) + unmasked.substring(endInsertIndex + 1, previousValue.length);
189
- nextValue = string.mask(newValue, template, char);
190
- }
191
- const charIndex = charIndexes.find(v => v >= selectionStart);
192
- const insertIndex = charIndexes.findIndex(v => v === charIndex);
193
- const unmasked = string.unmask(nextValue, template, char);
194
- nextValue = unmasked.substring(0, insertIndex) + data + unmasked.substring(insertIndex, previousValue.length);
195
- this.value = string.mask(nextValue, template, char);
196
- const index = charIndexes[insertIndex + data.length] || this.value.search(chars) || this.value.length;
197
- input.setSelectionRange(index, index);
198
- }
199
- });
200
- this.value = previousValue;
201
- input.setSelectionRange(selectionStart, selectionStart);
202
- return;
203
- }
204
- catch (e) {
205
- this.value = previousValue;
206
- input.setSelectionRange(selectionStart, selectionStart);
207
- return;
208
- }
209
- }
210
- if (e.inputType === 'deleteContentBackward' || e.inputType === 'deleteByCut') {
211
- const startValue = reverseCharIndexes.find(v => v <= selectionStart - 1);
212
- const endValue = reverseCharIndexes.find(v => v <= selectionEnd - 1);
213
- const startInsertIndex = charIndexes.findIndex(v => v === startValue);
214
- const endInsertIndex = charIndexes.findIndex(v => v === endValue);
215
- const unmasked = string.unmask(previousValue, template, char);
216
- if (startInsertIndex < endInsertIndex) {
217
- const newValue = unmasked.substring(0, startInsertIndex + 1) + unmasked.substring(endInsertIndex + 1, previousValue.length);
218
- this.value = string.mask(newValue, template, char);
219
- newValue && startInsertIndex > -1
220
- ? input.setSelectionRange(previousCharIndex + 1, previousCharIndex + 1)
221
- : input.setSelectionRange(previousCharIndex, previousCharIndex);
222
- }
223
- else {
224
- const newValue = unmasked.substring(0, startInsertIndex) + unmasked.substring(endInsertIndex + 1, previousValue.length);
225
- this.value = string.mask(newValue, template, char);
226
- input.setSelectionRange(previousCharIndex, previousCharIndex);
227
- }
228
- return;
229
- }
230
- if (e.inputType === 'deleteContentForward') {
231
- const charIndex = charIndexes.find(v => v >= selectionStart);
232
- const insertIndex = charIndexes.findIndex(v => v === charIndex);
233
- const unmasked = string.unmask(previousValue, template, char);
234
- const newValue = unmasked.substring(0, insertIndex) + unmasked.substring(insertIndex + 1, previousValue.length);
235
- this.value = string.mask(newValue, template, char);
236
- input.setSelectionRange(selectionStart, selectionStart);
237
- return;
238
- }
239
- //Abort if auxiliary key is pressed.
240
- if (e.altKey || e.ctrlKey || e.metaKey) {
241
- return;
242
- }
243
- //Abort if disallowed character
244
- if (!e.data) {
245
- if (e.type === 'input' && !e.inputType) {
246
- const { value } = e.target;
247
- const charIndex = charIndexes.find(v => v >= selectionStart);
248
- const insertIndex = charIndexes.findIndex(v => v === charIndex);
249
- const unmasked = string.unmask(value, template, char);
250
- const allowed = value.replace(new RegExp(banned, 'g'), '');
251
- const nextValue = unmasked.substring(0, insertIndex) + allowed;
252
- const index = charIndexes.find(v => v > charIndex);
253
- const patternIndex = charIndexes.findIndex(v => v >= index);
254
- const validationIndex = patternIndex < 0 ? charIndexes.length - 1 : patternIndex - 1;
255
- this.value = string.mask(nextValue, template, char);
256
- this.validate(nextValue, patterns[validationIndex]);
257
- }
258
- else {
259
- this.value = previousValue;
260
- input.setSelectionRange(selectionStart, selectionStart);
261
- }
262
- return;
263
- }
264
- //Append
265
- if (chars.test(previousValue.charAt(selectionStart)) ||
266
- selectionStart === template.length) {
267
- const unmasked = string.unmask(previousValue, template, char);
268
- this.value = string.mask(unmasked + e.data, template, char);
269
- const charIndex = this.value.search(chars);
270
- const index = charIndex < 0 ? template.length : charIndex;
271
- input.setSelectionRange(index, index);
272
- const patternIndex = charIndexes.findIndex(v => v >= index);
273
- const validationIndex = patternIndex < 0 ? charIndexes.length - 1 : patternIndex - 1;
274
- this.validate(e.data, patterns[validationIndex]);
275
- }
276
- //Insert
277
- else {
278
- let nextValue = previousValue;
279
- if (selectionStart < selectionEnd) {
280
- const startValue = reverseCharIndexes.find(v => v <= selectionStart - 1);
281
- const endValue = reverseCharIndexes.find(v => v <= selectionEnd - 1);
282
- const startInsertIndex = charIndexes.findIndex(v => v === startValue);
283
- const endInsertIndex = charIndexes.findIndex(v => v === endValue);
284
- const unmasked = string.unmask(previousValue, template, char);
285
- const newValue = unmasked.substring(0, startInsertIndex + 1) + unmasked.substring(endInsertIndex + 1, previousValue.length);
286
- nextValue = string.mask(newValue, template, char);
287
- }
288
- const charIndex = charIndexes.find(v => v >= selectionStart);
289
- const insertIndex = charIndexes.findIndex(v => v === charIndex);
290
- const unmasked = string.unmask(nextValue, template, char);
291
- nextValue = unmasked.substring(0, insertIndex) + e.data + unmasked.substring(insertIndex, previousValue.length);
292
- const index = charIndexes.find(v => v > charIndex);
293
- this.value = string.mask(nextValue, template, char);
294
- input.setSelectionRange(index, index);
295
- const patternIndex = charIndexes.findIndex(v => v >= index);
296
- const validationIndex = patternIndex < 0 ? charIndexes.length - 1 : patternIndex - 1;
297
- this.validate(e.data, patterns[validationIndex]);
298
- }
299
- }
300
- validate(data, pattern) {
301
- const { previousValue, input, value, selectionStart } = this;
302
- if (Assert.exists(pattern) &&
303
- !(pattern.test(data) || (/\(\?[!<=]/.test(pattern.toString()) && pattern.test(value)))) {
304
- this.value = previousValue;
305
- input.setSelectionRange(selectionStart, selectionStart);
306
- }
307
- }
308
- componentWillLoad() {
309
- this.input = document.getElementById(this.for);
310
- if (Assert.exists(this.input)) {
311
- this.input.addEventListener('focus', this.handleFocus);
312
- this.input.addEventListener('blur', this.handleBlur);
313
- this.input.addEventListener('keydown', this.handleKeyDown);
314
- this.input.addEventListener('input', this.handleInput);
315
- this.input.addEventListener('ku4-mask-input', this.handleInput);
316
- this.input.addEventListener('touchstart', this.handleTouchStart, { passive: true });
317
- }
318
- else {
319
- // eslint-disable-next-line no-console
320
- console.error('ku4-mask must have a valid `for` referencing target field `id`.');
321
- }
322
- }
323
- disconnectedCallback() {
324
- if (this.input && this.input.removeEventListener) {
325
- this.input.removeEventListener('focus', this.handleFocus);
326
- this.input.removeEventListener('blur', this.handleBlur);
327
- this.input.removeEventListener('keydown', this.handleKeyDown);
328
- this.input.removeEventListener('input', this.handleInput);
329
- this.input.removeEventListener('touchstart', this.handleTouchStart);
330
- }
331
- }
332
- render() {
333
- return h("slot", null);
334
- }
335
- static get is() { return "ku4-mask"; }
336
- static get encapsulation() { return "shadow"; }
337
- static get originalStyleUrls() { return {
338
- "$": ["ku4-mask.scss"]
339
- }; }
340
- static get styleUrls() { return {
341
- "$": ["ku4-mask.css"]
342
- }; }
343
- static get properties() { return {
344
- "for": {
345
- "type": "string",
346
- "mutable": false,
347
- "complexType": {
348
- "original": "string",
349
- "resolved": "string",
350
- "references": {}
351
- },
352
- "required": false,
353
- "optional": false,
354
- "docs": {
355
- "tags": [],
356
- "text": "Mask for input having id of value"
357
- },
358
- "attribute": "for",
359
- "reflect": false
360
- },
361
- "template": {
362
- "type": "string",
363
- "mutable": false,
364
- "complexType": {
365
- "original": "string",
366
- "resolved": "string",
367
- "references": {}
368
- },
369
- "required": false,
370
- "optional": false,
371
- "docs": {
372
- "tags": [],
373
- "text": "Mask template"
374
- },
375
- "attribute": "template",
376
- "reflect": false,
377
- "defaultValue": "''"
378
- },
379
- "ban": {
380
- "type": "string",
381
- "mutable": false,
382
- "complexType": {
383
- "original": "string",
384
- "resolved": "string",
385
- "references": {}
386
- },
387
- "required": false,
388
- "optional": false,
389
- "docs": {
390
- "tags": [],
391
- "text": "A regex of characters to ban from\nentry. A user will not be able to input\nany character in this set of characters.\nE.g. ban=\"[()-]\" will not allow a user to\ninput (, ), or - into the target input."
392
- },
393
- "attribute": "ban",
394
- "reflect": false,
395
- "defaultValue": "''"
396
- },
397
- "pattern": {
398
- "type": "string",
399
- "mutable": false,
400
- "complexType": {
401
- "original": "string",
402
- "resolved": "string",
403
- "references": {}
404
- },
405
- "required": false,
406
- "optional": false,
407
- "docs": {
408
- "tags": [],
409
- "text": "A test pattern for the mask to allow or\ndisallow characters at targeted points\nin the input. The pattern is a character\nseparated value of regular expressions\nwhere the first character denotes the\ncharacter separator at each subsequent\nvalue is a regular expression for the\ncharacter at that indicated index.\nE.g. `pattern=\",[345],,,[^abc]\"` would mean\nthat \",\" is the separator and that the\nfirst character must be a 3, 4, or 5, and\nthe fourth character cannot be an a, b or c."
410
- },
411
- "attribute": "pattern",
412
- "reflect": false,
413
- "defaultValue": "''"
414
- },
415
- "char": {
416
- "type": "string",
417
- "mutable": false,
418
- "complexType": {
419
- "original": "string",
420
- "resolved": "string",
421
- "references": {}
422
- },
423
- "required": false,
424
- "optional": false,
425
- "docs": {
426
- "tags": [],
427
- "text": "Mask Character"
428
- },
429
- "attribute": "char",
430
- "reflect": false,
431
- "defaultValue": "'_'"
432
- },
433
- "hidden": {
434
- "type": "boolean",
435
- "mutable": false,
436
- "complexType": {
437
- "original": "boolean",
438
- "resolved": "boolean",
439
- "references": {}
440
- },
441
- "required": false,
442
- "optional": false,
443
- "docs": {
444
- "tags": [],
445
- "text": "Hide mask"
446
- },
447
- "attribute": "hidden",
448
- "reflect": false,
449
- "defaultValue": "false"
450
- }
451
- }; }
452
- static get watchers() { return [{
453
- "propName": "template",
454
- "methodName": "templateHandler"
455
- }, {
456
- "propName": "char",
457
- "methodName": "charHandler"
458
- }]; }
459
- }
@@ -1,85 +0,0 @@
1
- @keyframes ku4-modal-content-enter {
2
- 0% {
3
- transform: var(--ku4-modal-content-animation-start-transform, scale(0.5));
4
- opacity: var(--ku4-modal-content-animation-start-opacity, 0);
5
- }
6
- 50% {
7
- transform: var(--ku4-modal-content-animation-mid-transform, scale(1.2));
8
- opacity: var(--ku4-modal-content-animation-mid-opacity, 0.8);
9
- }
10
- 100% {
11
- transform: var(--ku4-modal-content-animation-end-transform, scale(1));
12
- opacity: var(--ku4-modal-content-animation-end-opacity, 1);
13
- }
14
- }
15
- @keyframes ku4-modal-overlay-enter {
16
- 0% {
17
- transform: var(--ku4-modal-overlay-animation-start-transform, none);
18
- opacity: var(--ku4-modal-overlay-animation-start-opacity, 0);
19
- }
20
- 50% {
21
- transform: var(--ku4-modal-overlay-animation-mid-transform, none);
22
- opacity: var(--ku4-modal-overlay-animation-mid-opacity, 0.35);
23
- }
24
- 100% {
25
- transform: var(--ku4-modal-overlay-animation-end-transform, none);
26
- opacity: var(--ku4-modal-overlay-animation-end-opacity, 0.4);
27
- }
28
- }
29
- :host {
30
- position: fixed;
31
- display: none;
32
- top: 0;
33
- left: 0;
34
- width: 100vw;
35
- height: 100vh;
36
- justify-content: center;
37
- align-items: center;
38
- background: transparent;
39
- overflow: auto;
40
- transform-style: var(--ku4-modal-transform-style, initial);
41
- }
42
-
43
- .ku4-modal-content {
44
- position: relative;
45
- top: 0;
46
- left: 0;
47
- }
48
-
49
- .ku4-modal-overlay {
50
- position: fixed;
51
- display: flex;
52
- top: 0;
53
- left: 0;
54
- width: 100%;
55
- height: 100%;
56
- opacity: 0;
57
- background: var(--ku4-modal-overlay-background, #000);
58
- }
59
-
60
- :host([visible]) {
61
- display: flex;
62
- z-index: var(--ku4-modal-z-index, 5);
63
- }
64
-
65
- :host([visible]) .ku4-modal-content {
66
- animation-name: ku4-modal-content-enter;
67
- animation-duration: var(--ku4-modal-content-animation-duration, 0.4s);
68
- animation-timing-function: var(--ku4-modal-content-animation-timing-function, ease);
69
- transform: var(--ku4-modal-content-transform, none);
70
- opacity: var(--ku4-modal-content-opacity, 1);
71
- z-index: calc(var(--ku4-modal-z-index, 5) + 1);
72
- }
73
-
74
- :host([visible]) .ku4-modal-overlay {
75
- animation-name: ku4-modal-overlay-enter;
76
- animation-duration: var(--ku4-modal-overlay-animation-duration, 0.4s);
77
- animation-timing-function: var(--ku4-modal-overlay-animation-timing-function, ease);
78
- transform: var(--ku4-modal-overlay-transform, none);
79
- opacity: var(--ku4-modal-overlay-opacity, 0.4);
80
- z-index: calc(var(--ku4-modal-z-index, 5));
81
- }
82
-
83
- :host([visible=false]) {
84
- display: none;
85
- }