ku4web-components 6.4.81 → 6.4.82

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 (255) hide show
  1. package/dist/cjs/{index-a9159bd6.js → index-a7b6d98c.js} +1 -1
  2. package/dist/cjs/ku4-carousel-controls.cjs.entry.js +2 -2
  3. package/dist/cjs/ku4-carousel-slide.cjs.entry.js +1 -1
  4. package/dist/cjs/ku4-carousel.cjs.entry.js +3 -3
  5. package/dist/cjs/ku4-col.cjs.entry.js +1 -1
  6. package/dist/cjs/ku4-drawer.cjs.entry.js +1 -1
  7. package/dist/cjs/ku4-feature.cjs.entry.js +2 -2
  8. package/dist/cjs/ku4-focus-trap.cjs.entry.js +26 -26
  9. package/dist/cjs/ku4-form.cjs.entry.js +3 -3
  10. package/dist/cjs/ku4-grid.cjs.entry.js +1 -1
  11. package/dist/cjs/ku4-label.cjs.entry.js +2 -2
  12. package/dist/cjs/ku4-mask.cjs.entry.js +2 -2
  13. package/dist/cjs/ku4-modal.cjs.entry.js +3 -3
  14. package/dist/cjs/ku4-panel.cjs.entry.js +1 -1
  15. package/dist/cjs/ku4-preview.cjs.entry.js +14 -43
  16. package/dist/cjs/ku4-tab-list.cjs.entry.js +4 -4
  17. package/dist/cjs/ku4-tab-panel.cjs.entry.js +3 -3
  18. package/dist/cjs/ku4-tab.cjs.entry.js +3 -3
  19. package/dist/cjs/ku4-table.cjs.entry.js +1 -1
  20. package/dist/cjs/ku4-tooltip.cjs.entry.js +2 -2
  21. package/dist/cjs/ku4-validation.cjs.entry.js +2 -2
  22. package/dist/cjs/ku4web-components.cjs.js +8 -103
  23. package/dist/cjs/loader.cjs.js +3 -19
  24. package/dist/cjs/{shadow-css-c44ea13a.js → shadow-css-78860e39.js} +1 -1
  25. package/dist/esm/{index-26cde78a.js → index-81a98b72.js} +1 -1
  26. package/dist/esm/ku4-carousel-controls.entry.js +2 -2
  27. package/dist/esm/ku4-carousel-slide.entry.js +1 -1
  28. package/dist/esm/ku4-carousel.entry.js +3 -3
  29. package/dist/esm/ku4-col.entry.js +1 -1
  30. package/dist/esm/ku4-drawer.entry.js +1 -1
  31. package/dist/esm/ku4-feature.entry.js +2 -2
  32. package/dist/esm/ku4-focus-trap.entry.js +3 -3
  33. package/dist/esm/ku4-form.entry.js +3 -3
  34. package/dist/esm/ku4-grid.entry.js +1 -1
  35. package/dist/esm/ku4-label.entry.js +2 -2
  36. package/dist/esm/ku4-mask.entry.js +2 -2
  37. package/dist/esm/ku4-modal.entry.js +3 -3
  38. package/dist/esm/ku4-panel.entry.js +1 -1
  39. package/dist/esm/ku4-preview.entry.js +5 -34
  40. package/dist/esm/ku4-tab-list.entry.js +4 -4
  41. package/dist/esm/ku4-tab-panel.entry.js +3 -3
  42. package/dist/esm/ku4-tab.entry.js +3 -3
  43. package/dist/esm/ku4-table.entry.js +1 -1
  44. package/dist/esm/ku4-tooltip.entry.js +2 -2
  45. package/dist/esm/ku4-validation.entry.js +2 -2
  46. package/dist/esm/ku4web-components.js +8 -103
  47. package/dist/esm/loader.js +3 -19
  48. package/dist/{ku4web-components/shadow-css-ef431969.js → esm/shadow-css-4d56fa31.js} +1 -1
  49. package/dist/esm-es5/{index-26cde78a.js → index-81a98b72.js} +1 -1
  50. package/dist/esm-es5/ku4-carousel-controls.entry.js +1 -1
  51. package/dist/esm-es5/ku4-carousel-slide.entry.js +1 -1
  52. package/dist/esm-es5/ku4-carousel.entry.js +1 -1
  53. package/dist/esm-es5/ku4-col.entry.js +1 -1
  54. package/dist/esm-es5/ku4-drawer.entry.js +1 -1
  55. package/dist/esm-es5/ku4-feature.entry.js +1 -1
  56. package/dist/esm-es5/ku4-focus-trap.entry.js +1 -1
  57. package/dist/esm-es5/ku4-form.entry.js +1 -1
  58. package/dist/esm-es5/ku4-grid.entry.js +1 -1
  59. package/dist/esm-es5/ku4-label.entry.js +1 -1
  60. package/dist/esm-es5/ku4-mask.entry.js +1 -1
  61. package/dist/esm-es5/ku4-modal.entry.js +1 -1
  62. package/dist/esm-es5/ku4-panel.entry.js +1 -1
  63. package/dist/esm-es5/ku4-preview.entry.js +1 -1
  64. package/dist/esm-es5/ku4-tab-list.entry.js +1 -1
  65. package/dist/esm-es5/ku4-tab-panel.entry.js +1 -1
  66. package/dist/esm-es5/ku4-tab.entry.js +1 -1
  67. package/dist/esm-es5/ku4-table.entry.js +1 -1
  68. package/dist/esm-es5/ku4-tooltip.entry.js +1 -1
  69. package/dist/esm-es5/ku4-validation.entry.js +1 -1
  70. package/dist/esm-es5/ku4web-components.js +1 -1
  71. package/dist/esm-es5/loader.js +1 -1
  72. package/dist/esm-es5/{shadow-css-ef431969.js → shadow-css-4d56fa31.js} +0 -0
  73. package/dist/index.js +1 -1
  74. package/dist/ku4web-components/index.esm.js +0 -1
  75. package/dist/ku4web-components/ku4web-components.css +1 -299
  76. package/dist/ku4web-components/ku4web-components.esm.js +1 -129
  77. package/dist/ku4web-components/ku4web-components.js +1 -1
  78. package/dist/ku4web-components/{p-5d6cf40f.system.entry.js → p-02328d34.system.entry.js} +1 -1
  79. package/dist/ku4web-components/{p-5eb48119.system.entry.js → p-050f184b.system.entry.js} +1 -1
  80. package/dist/ku4web-components/{p-ca547c71.system.entry.js → p-073cefec.system.entry.js} +1 -1
  81. package/dist/ku4web-components/{p-e10de631.entry.js → p-097ba217.entry.js} +1 -1
  82. package/dist/ku4web-components/{p-2a6d5089.entry.js → p-0adeb8e4.entry.js} +1 -1
  83. package/dist/ku4web-components/{p-6d63d17d.entry.js → p-0ce97586.entry.js} +1 -1
  84. package/dist/ku4web-components/p-0f77bef9.system.js +1 -0
  85. package/dist/ku4web-components/{p-0e222607.system.entry.js → p-136e5a03.system.entry.js} +1 -1
  86. package/dist/ku4web-components/{p-2300b0b7.system.entry.js → p-1d5a1caf.system.entry.js} +1 -1
  87. package/dist/ku4web-components/{p-b3bdc458.system.entry.js → p-288482da.system.entry.js} +1 -1
  88. package/dist/ku4web-components/{p-f0e309a9.system.entry.js → p-32e9a8d0.system.entry.js} +1 -1
  89. package/dist/ku4web-components/{p-801fab11.system.entry.js → p-3a0d1ff7.system.entry.js} +1 -1
  90. package/dist/ku4web-components/{p-b60c60e4.entry.js → p-3f147a02.entry.js} +1 -1
  91. package/dist/ku4web-components/{p-8c0cb5c1.entry.js → p-3f2a008c.entry.js} +1 -1
  92. package/dist/ku4web-components/{p-25ca27d4.entry.js → p-3f4082d5.entry.js} +1 -1
  93. package/dist/ku4web-components/{p-94dd5fad.entry.js → p-49275772.entry.js} +1 -1
  94. package/dist/ku4web-components/{p-0cc659d9.system.entry.js → p-524cef27.system.entry.js} +1 -1
  95. package/dist/ku4web-components/{p-64bcfdeb.system.entry.js → p-52d815ab.system.entry.js} +1 -1
  96. package/dist/ku4web-components/{p-92bc6bf1.system.entry.js → p-596beaad.system.entry.js} +1 -1
  97. package/dist/ku4web-components/{p-6f47f245.entry.js → p-5f9d0077.entry.js} +1 -1
  98. package/dist/ku4web-components/{p-993123b6.entry.js → p-5fcea805.entry.js} +1 -1
  99. package/dist/ku4web-components/{p-e6937d21.entry.js → p-61214088.entry.js} +1 -1
  100. package/dist/ku4web-components/{p-57ec7c89.entry.js → p-66b8247f.entry.js} +1 -1
  101. package/dist/ku4web-components/{p-341081d6.system.entry.js → p-6b9e3523.system.entry.js} +1 -1
  102. package/dist/ku4web-components/{p-03d6fb35.system.entry.js → p-6cfd9011.system.entry.js} +1 -1
  103. package/dist/ku4web-components/{p-e29d66a7.system.entry.js → p-7bfc256a.system.entry.js} +1 -1
  104. package/dist/ku4web-components/{p-dc35b1af.entry.js → p-818caf0f.entry.js} +1 -1
  105. package/dist/ku4web-components/{p-df1544c7.entry.js → p-8642aef5.entry.js} +1 -1
  106. package/dist/ku4web-components/{p-b10887b2.js → p-881e100a.js} +0 -0
  107. package/dist/ku4web-components/{p-db493d59.system.entry.js → p-95698618.system.entry.js} +1 -1
  108. package/dist/ku4web-components/{p-e2ae0504.system.js → p-96ec7b4f.system.js} +1 -1
  109. package/dist/ku4web-components/{p-d6f80a73.system.entry.js → p-a0d0c99e.system.entry.js} +1 -1
  110. package/dist/ku4web-components/{p-75161edb.system.entry.js → p-acb43765.system.entry.js} +1 -1
  111. package/dist/ku4web-components/{p-c646a177.entry.js → p-b47bb3d0.entry.js} +1 -1
  112. package/dist/ku4web-components/p-c798faf2.entry.js +1 -0
  113. package/dist/ku4web-components/{p-0c05c4ad.entry.js → p-cd0d0b40.entry.js} +1 -1
  114. package/dist/ku4web-components/{p-deb02b56.entry.js → p-cd4cdcbb.entry.js} +1 -1
  115. package/dist/ku4web-components/{p-c459bbb7.entry.js → p-d17f65a6.entry.js} +1 -1
  116. package/dist/ku4web-components/{p-01ae9e4c.system.entry.js → p-d848909c.system.entry.js} +1 -1
  117. package/dist/ku4web-components/{p-c62c66be.entry.js → p-d8868855.entry.js} +1 -1
  118. package/dist/ku4web-components/{p-0ded083e.js → p-e6b3a708.js} +1 -1
  119. package/dist/ku4web-components/{p-9f1bc248.system.entry.js → p-ea4b32de.system.entry.js} +1 -1
  120. package/dist/ku4web-components/{p-55d15007.entry.js → p-f3fbe1e6.entry.js} +1 -1
  121. package/dist/ku4web-components/{p-6bf18c7c.system.js → p-fbf3ad1e.system.js} +0 -0
  122. package/dist/ku4web-components/{p-6c5699e3.system.entry.js → p-fc0c3bf4.system.entry.js} +1 -1
  123. package/package.json +4 -4
  124. package/dist/cjs/app-globals-3a1e7e63.js +0 -5
  125. package/dist/cjs/css-shim-aaf4fec9.js +0 -6
  126. package/dist/cjs/dom-14886762.js +0 -75
  127. package/dist/cjs/index-652a3cbf.js +0 -14
  128. package/dist/cjs/index-8e9e8864.js +0 -3093
  129. package/dist/cjs/index-c904eb3a.js +0 -10
  130. package/dist/cjs/uid-eb3bec28.js +0 -11
  131. package/dist/collection/capabilities/a11y/aria.js +0 -26
  132. package/dist/collection/capabilities/angular/index.js +0 -24
  133. package/dist/collection/capabilities/decorators/deprecated.js +0 -20
  134. package/dist/collection/capabilities/decorators/index.js +0 -3
  135. package/dist/collection/capabilities/decorators/memoize.js +0 -7
  136. package/dist/collection/capabilities/dom/isFocusable.js +0 -7
  137. package/dist/collection/capabilities/dom/queryFocusable.js +0 -2
  138. package/dist/collection/capabilities/identity/uid.js +0 -6
  139. package/dist/collection/capabilities/mask/index.js +0 -5
  140. package/dist/collection/capabilities/mask/patterns/date.js +0 -40
  141. package/dist/collection/capabilities/mask/patterns/index.js +0 -7
  142. package/dist/collection/capabilities/react/index.js +0 -25
  143. package/dist/collection/capabilities/testing/html.js +0 -14
  144. package/dist/collection/capabilities/testing/styles.js +0 -14
  145. package/dist/collection/capabilities/vue/index.js +0 -28
  146. package/dist/collection/capabilities/vue3/index.js +0 -26
  147. package/dist/collection/collection-manifest.json +0 -31
  148. package/dist/collection/components/ku4-carousel/ku4-carousel.css +0 -221
  149. package/dist/collection/components/ku4-carousel/ku4-carousel.js +0 -362
  150. package/dist/collection/components/ku4-carousel-controls/ku4-carousel-controls.css +0 -32
  151. package/dist/collection/components/ku4-carousel-controls/ku4-carousel-controls.js +0 -112
  152. package/dist/collection/components/ku4-carousel-slide/ku4-carousel-slide.css +0 -3
  153. package/dist/collection/components/ku4-carousel-slide/ku4-carousel-slide.js +0 -159
  154. package/dist/collection/components/ku4-col/ku4-col.css +0 -601
  155. package/dist/collection/components/ku4-col/ku4-col.js +0 -288
  156. package/dist/collection/components/ku4-drawer/ku4-drawer.css +0 -56
  157. package/dist/collection/components/ku4-drawer/ku4-drawer.js +0 -163
  158. package/dist/collection/components/ku4-feature/ku4-feature.js +0 -70
  159. package/dist/collection/components/ku4-focus-trap/ku4-focus-trap.css +0 -3
  160. package/dist/collection/components/ku4-focus-trap/ku4-focus-trap.js +0 -441
  161. package/dist/collection/components/ku4-form/ku4-form.js +0 -225
  162. package/dist/collection/components/ku4-grid/ku4-grid.css +0 -751
  163. package/dist/collection/components/ku4-grid/ku4-grid.js +0 -408
  164. package/dist/collection/components/ku4-label/ku4-label.css +0 -36
  165. package/dist/collection/components/ku4-label/ku4-label.js +0 -115
  166. package/dist/collection/components/ku4-mask/ku4-mask.css +0 -3
  167. package/dist/collection/components/ku4-mask/ku4-mask.js +0 -458
  168. package/dist/collection/components/ku4-modal/ku4-modal.css +0 -85
  169. package/dist/collection/components/ku4-modal/ku4-modal.js +0 -208
  170. package/dist/collection/components/ku4-panel/ku4-panel.css +0 -14
  171. package/dist/collection/components/ku4-panel/ku4-panel.js +0 -119
  172. package/dist/collection/components/ku4-preview/ku4-preview.css +0 -23
  173. package/dist/collection/components/ku4-preview/ku4-preview.js +0 -266
  174. package/dist/collection/components/ku4-tab/ku4-tab.css +0 -82
  175. package/dist/collection/components/ku4-tab/ku4-tab.js +0 -191
  176. package/dist/collection/components/ku4-tab-list/ku4-tab-list.css +0 -6
  177. package/dist/collection/components/ku4-tab-list/ku4-tab-list.js +0 -118
  178. package/dist/collection/components/ku4-tab-panel/ku4-tab-panel.css +0 -26
  179. package/dist/collection/components/ku4-tab-panel/ku4-tab-panel.js +0 -166
  180. package/dist/collection/components/ku4-table/ku4-table.css +0 -116
  181. package/dist/collection/components/ku4-table/ku4-table.js +0 -120
  182. package/dist/collection/components/ku4-tooltip/ku4-tooltip.css +0 -56
  183. package/dist/collection/components/ku4-tooltip/ku4-tooltip.js +0 -274
  184. package/dist/collection/components/ku4-validation/ku4-validation.css +0 -19
  185. package/dist/collection/components/ku4-validation/ku4-validation.js +0 -364
  186. package/dist/collection/components/ku4-validation/validate.js +0 -14
  187. package/dist/collection/index.js +0 -1
  188. package/dist/collection/security.js +0 -27
  189. package/dist/esm/app-globals-0f993ce5.js +0 -3
  190. package/dist/esm/css-shim-091f949f.js +0 -4
  191. package/dist/esm/dom-a385e381.js +0 -73
  192. package/dist/esm/index-3e1e5aa3.js +0 -3
  193. package/dist/esm/index-516c5188.js +0 -3057
  194. package/dist/esm/index-7ff6e718.js +0 -3
  195. package/dist/esm/shadow-css-ef431969.js +0 -388
  196. package/dist/esm/uid-9dbd7ad0.js +0 -9
  197. package/dist/ku4web-components/app-globals-0f993ce5.js +0 -3
  198. package/dist/ku4web-components/app-globals-497eb362.system.js +0 -1
  199. package/dist/ku4web-components/css-shim-091f949f.js +0 -4
  200. package/dist/ku4web-components/css-shim-c5bffe6b.system.js +0 -1
  201. package/dist/ku4web-components/dom-99eb7b76.system.js +0 -21
  202. package/dist/ku4web-components/dom-a385e381.js +0 -73
  203. package/dist/ku4web-components/index-380cbe3a.system.js +0 -1
  204. package/dist/ku4web-components/index-3e1e5aa3.js +0 -3
  205. package/dist/ku4web-components/index-516c5188.js +0 -3057
  206. package/dist/ku4web-components/index-7d482e8a.system.js +0 -1
  207. package/dist/ku4web-components/index-7ff6e718.js +0 -3
  208. package/dist/ku4web-components/index-fd0c89d0.system.js +0 -1
  209. package/dist/ku4web-components/index.system.js +0 -1
  210. package/dist/ku4web-components/ku4-carousel-controls.entry.js +0 -89
  211. package/dist/ku4web-components/ku4-carousel-controls.system.entry.js +0 -1
  212. package/dist/ku4web-components/ku4-carousel-slide.entry.js +0 -47
  213. package/dist/ku4web-components/ku4-carousel-slide.system.entry.js +0 -1
  214. package/dist/ku4web-components/ku4-carousel.entry.js +0 -168
  215. package/dist/ku4web-components/ku4-carousel.system.entry.js +0 -1
  216. package/dist/ku4web-components/ku4-col.entry.js +0 -75
  217. package/dist/ku4web-components/ku4-col.system.entry.js +0 -1
  218. package/dist/ku4web-components/ku4-drawer.entry.js +0 -35
  219. package/dist/ku4web-components/ku4-drawer.system.entry.js +0 -1
  220. package/dist/ku4web-components/ku4-feature.entry.js +0 -29
  221. package/dist/ku4web-components/ku4-feature.system.entry.js +0 -1
  222. package/dist/ku4web-components/ku4-focus-trap.entry.js +0 -323
  223. package/dist/ku4web-components/ku4-focus-trap.system.entry.js +0 -1
  224. package/dist/ku4web-components/ku4-form.entry.js +0 -112
  225. package/dist/ku4web-components/ku4-form.system.entry.js +0 -1
  226. package/dist/ku4web-components/ku4-grid.entry.js +0 -108
  227. package/dist/ku4web-components/ku4-grid.system.entry.js +0 -1
  228. package/dist/ku4web-components/ku4-label.entry.js +0 -70
  229. package/dist/ku4web-components/ku4-label.system.entry.js +0 -1
  230. package/dist/ku4web-components/ku4-mask.entry.js +0 -342
  231. package/dist/ku4web-components/ku4-mask.system.entry.js +0 -1
  232. package/dist/ku4web-components/ku4-modal.entry.js +0 -75
  233. package/dist/ku4web-components/ku4-modal.system.entry.js +0 -1
  234. package/dist/ku4web-components/ku4-panel.entry.js +0 -49
  235. package/dist/ku4web-components/ku4-panel.system.entry.js +0 -1
  236. package/dist/ku4web-components/ku4-preview.entry.js +0 -128
  237. package/dist/ku4web-components/ku4-preview.system.entry.js +0 -1
  238. package/dist/ku4web-components/ku4-tab-list.entry.js +0 -76
  239. package/dist/ku4web-components/ku4-tab-list.system.entry.js +0 -1
  240. package/dist/ku4web-components/ku4-tab-panel.entry.js +0 -72
  241. package/dist/ku4web-components/ku4-tab-panel.system.entry.js +0 -1
  242. package/dist/ku4web-components/ku4-tab.entry.js +0 -63
  243. package/dist/ku4web-components/ku4-tab.system.entry.js +0 -1
  244. package/dist/ku4web-components/ku4-table.entry.js +0 -79
  245. package/dist/ku4web-components/ku4-table.system.entry.js +0 -1
  246. package/dist/ku4web-components/ku4-tooltip.entry.js +0 -120
  247. package/dist/ku4web-components/ku4-tooltip.system.entry.js +0 -1
  248. package/dist/ku4web-components/ku4-validation.entry.js +0 -162
  249. package/dist/ku4web-components/ku4-validation.system.entry.js +0 -1
  250. package/dist/ku4web-components/ku4web-components.system.js +0 -1
  251. package/dist/ku4web-components/p-019be0a7.entry.js +0 -1
  252. package/dist/ku4web-components/p-e641f14e.system.js +0 -1
  253. package/dist/ku4web-components/shadow-css-27708fdd.system.js +0 -13
  254. package/dist/ku4web-components/uid-9dbd7ad0.js +0 -9
  255. package/dist/ku4web-components/uid-fb867945.system.js +0 -1
@@ -1,458 +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(input.value, 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 data = rawData.replace(new RegExp(banned, 'g'), '');
174
- if (Assert.isNullOrEmpty(data)) {
175
- this.value = previousValue;
176
- input.setSelectionRange(selectionStart, selectionStart);
177
- return;
178
- }
179
- if (!banned || !banned.test(data)) {
180
- let nextValue = previousValue;
181
- if (selectionStart < selectionEnd) {
182
- const startValue = reverseCharIndexes.find(v => v <= selectionStart - 1);
183
- const endValue = reverseCharIndexes.find(v => v <= selectionEnd - 1);
184
- const startInsertIndex = charIndexes.findIndex(v => v === startValue);
185
- const endInsertIndex = charIndexes.findIndex(v => v === endValue);
186
- const unmasked = string.unmask(previousValue, template, char);
187
- const newValue = unmasked.substring(0, startInsertIndex + 1) + unmasked.substring(endInsertIndex + 1, previousValue.length);
188
- nextValue = string.mask(newValue, template, char);
189
- }
190
- const charIndex = charIndexes.find(v => v >= selectionStart);
191
- const insertIndex = charIndexes.findIndex(v => v === charIndex);
192
- const unmasked = string.unmask(nextValue, template, char);
193
- nextValue = unmasked.substring(0, insertIndex) + data + unmasked.substring(insertIndex, previousValue.length);
194
- this.value = string.mask(nextValue, template, char);
195
- const index = charIndexes[insertIndex + data.length] || this.value.search(chars) || this.value.length;
196
- input.setSelectionRange(index, index);
197
- }
198
- });
199
- this.value = previousValue;
200
- input.setSelectionRange(selectionStart, selectionStart);
201
- return;
202
- }
203
- catch (e) {
204
- this.value = previousValue;
205
- input.setSelectionRange(selectionStart, selectionStart);
206
- return;
207
- }
208
- }
209
- if (e.inputType === 'deleteContentBackward' || e.inputType === 'deleteByCut') {
210
- const startValue = reverseCharIndexes.find(v => v <= selectionStart - 1);
211
- const endValue = reverseCharIndexes.find(v => v <= selectionEnd - 1);
212
- const startInsertIndex = charIndexes.findIndex(v => v === startValue);
213
- const endInsertIndex = charIndexes.findIndex(v => v === endValue);
214
- const unmasked = string.unmask(previousValue, template, char);
215
- if (startInsertIndex < endInsertIndex) {
216
- const newValue = unmasked.substring(0, startInsertIndex + 1) + unmasked.substring(endInsertIndex + 1, previousValue.length);
217
- this.value = string.mask(newValue, template, char);
218
- newValue && startInsertIndex > -1
219
- ? input.setSelectionRange(previousCharIndex + 1, previousCharIndex + 1)
220
- : input.setSelectionRange(previousCharIndex, previousCharIndex);
221
- }
222
- else {
223
- const newValue = unmasked.substring(0, startInsertIndex) + unmasked.substring(endInsertIndex + 1, previousValue.length);
224
- this.value = string.mask(newValue, template, char);
225
- input.setSelectionRange(previousCharIndex, previousCharIndex);
226
- }
227
- return;
228
- }
229
- if (e.inputType === 'deleteContentForward') {
230
- const charIndex = charIndexes.find(v => v >= selectionStart);
231
- const insertIndex = charIndexes.findIndex(v => v === charIndex);
232
- const unmasked = string.unmask(previousValue, template, char);
233
- const newValue = unmasked.substring(0, insertIndex) + unmasked.substring(insertIndex + 1, previousValue.length);
234
- this.value = string.mask(newValue, template, char);
235
- input.setSelectionRange(selectionStart, selectionStart);
236
- return;
237
- }
238
- //Abort if auxiliary key is pressed.
239
- if (e.altKey || e.ctrlKey || e.metaKey) {
240
- return;
241
- }
242
- //Abort if disallowed character
243
- if (!e.data) {
244
- if (e.type === 'input' && !e.inputType) {
245
- const { value } = e.target;
246
- const charIndex = charIndexes.find(v => v >= selectionStart);
247
- const insertIndex = charIndexes.findIndex(v => v === charIndex);
248
- const unmasked = string.unmask(value, template, char);
249
- const allowed = value.replace(new RegExp(banned, 'g'), '');
250
- const nextValue = unmasked.substring(0, insertIndex) + allowed;
251
- const index = charIndexes.find(v => v > charIndex);
252
- this.value = string.mask(nextValue, template, char);
253
- const patternIndex = charIndexes.findIndex(v => v >= index);
254
- const validationIndex = patternIndex < 0 ? charIndexes.length - 1 : patternIndex - 1;
255
- this.validate(nextValue, patterns[validationIndex]);
256
- }
257
- else {
258
- this.value = previousValue;
259
- input.setSelectionRange(selectionStart, selectionStart);
260
- }
261
- return;
262
- }
263
- //Append
264
- if (chars.test(previousValue.charAt(selectionStart)) ||
265
- selectionStart === template.length) {
266
- const unmasked = string.unmask(previousValue, template, char);
267
- this.value = string.mask(unmasked + e.data, template, char);
268
- const charIndex = this.value.search(chars);
269
- const index = charIndex < 0 ? template.length : charIndex;
270
- input.setSelectionRange(index, index);
271
- const patternIndex = charIndexes.findIndex(v => v >= index);
272
- const validationIndex = patternIndex < 0 ? charIndexes.length - 1 : patternIndex - 1;
273
- this.validate(e.data, patterns[validationIndex]);
274
- }
275
- //Insert
276
- else {
277
- let nextValue = previousValue;
278
- if (selectionStart < selectionEnd) {
279
- const startValue = reverseCharIndexes.find(v => v <= selectionStart - 1);
280
- const endValue = reverseCharIndexes.find(v => v <= selectionEnd - 1);
281
- const startInsertIndex = charIndexes.findIndex(v => v === startValue);
282
- const endInsertIndex = charIndexes.findIndex(v => v === endValue);
283
- const unmasked = string.unmask(previousValue, template, char);
284
- const newValue = unmasked.substring(0, startInsertIndex + 1) + unmasked.substring(endInsertIndex + 1, previousValue.length);
285
- nextValue = string.mask(newValue, template, char);
286
- }
287
- const charIndex = charIndexes.find(v => v >= selectionStart);
288
- const insertIndex = charIndexes.findIndex(v => v === charIndex);
289
- const unmasked = string.unmask(nextValue, template, char);
290
- nextValue = unmasked.substring(0, insertIndex) + e.data + unmasked.substring(insertIndex, previousValue.length);
291
- const index = charIndexes.find(v => v > charIndex);
292
- this.value = string.mask(nextValue, template, char);
293
- input.setSelectionRange(index, index);
294
- const patternIndex = charIndexes.findIndex(v => v >= index);
295
- const validationIndex = patternIndex < 0 ? charIndexes.length - 1 : patternIndex - 1;
296
- this.validate(e.data, patterns[validationIndex]);
297
- }
298
- }
299
- validate(data, pattern) {
300
- const { previousValue, input, value, selectionStart } = this;
301
- if (Assert.exists(pattern) &&
302
- !(pattern.test(data) || (/\(\?[!<=]/.test(pattern.toString()) && pattern.test(value)))) {
303
- this.value = previousValue;
304
- input.setSelectionRange(selectionStart, selectionStart);
305
- }
306
- }
307
- componentWillLoad() {
308
- this.input = document.getElementById(this.for);
309
- if (Assert.exists(this.input)) {
310
- this.input.addEventListener('focus', this.handleFocus);
311
- this.input.addEventListener('blur', this.handleBlur);
312
- this.input.addEventListener('keydown', this.handleKeyDown);
313
- this.input.addEventListener('input', this.handleInput);
314
- this.input.addEventListener('ku4-mask-input', this.handleInput);
315
- this.input.addEventListener('touchstart', this.handleTouchStart, { passive: true });
316
- }
317
- else {
318
- // eslint-disable-next-line no-console
319
- console.error('ku4-mask must have a valid `for` referencing target field `id`.');
320
- }
321
- }
322
- disconnectedCallback() {
323
- if (this.input && this.input.removeEventListener) {
324
- this.input.removeEventListener('focus', this.handleFocus);
325
- this.input.removeEventListener('blur', this.handleBlur);
326
- this.input.removeEventListener('keydown', this.handleKeyDown);
327
- this.input.removeEventListener('input', this.handleInput);
328
- this.input.removeEventListener('touchstart', this.handleTouchStart);
329
- }
330
- }
331
- render() {
332
- return h("slot", null);
333
- }
334
- static get is() { return "ku4-mask"; }
335
- static get encapsulation() { return "shadow"; }
336
- static get originalStyleUrls() { return {
337
- "$": ["ku4-mask.scss"]
338
- }; }
339
- static get styleUrls() { return {
340
- "$": ["ku4-mask.css"]
341
- }; }
342
- static get properties() { return {
343
- "for": {
344
- "type": "string",
345
- "mutable": false,
346
- "complexType": {
347
- "original": "string",
348
- "resolved": "string",
349
- "references": {}
350
- },
351
- "required": false,
352
- "optional": false,
353
- "docs": {
354
- "tags": [],
355
- "text": "Mask for input having id of value"
356
- },
357
- "attribute": "for",
358
- "reflect": false
359
- },
360
- "template": {
361
- "type": "string",
362
- "mutable": false,
363
- "complexType": {
364
- "original": "string",
365
- "resolved": "string",
366
- "references": {}
367
- },
368
- "required": false,
369
- "optional": false,
370
- "docs": {
371
- "tags": [],
372
- "text": "Mask template"
373
- },
374
- "attribute": "template",
375
- "reflect": false,
376
- "defaultValue": "''"
377
- },
378
- "ban": {
379
- "type": "string",
380
- "mutable": false,
381
- "complexType": {
382
- "original": "string",
383
- "resolved": "string",
384
- "references": {}
385
- },
386
- "required": false,
387
- "optional": false,
388
- "docs": {
389
- "tags": [],
390
- "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."
391
- },
392
- "attribute": "ban",
393
- "reflect": false,
394
- "defaultValue": "''"
395
- },
396
- "pattern": {
397
- "type": "string",
398
- "mutable": false,
399
- "complexType": {
400
- "original": "string",
401
- "resolved": "string",
402
- "references": {}
403
- },
404
- "required": false,
405
- "optional": false,
406
- "docs": {
407
- "tags": [],
408
- "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."
409
- },
410
- "attribute": "pattern",
411
- "reflect": false,
412
- "defaultValue": "''"
413
- },
414
- "char": {
415
- "type": "string",
416
- "mutable": false,
417
- "complexType": {
418
- "original": "string",
419
- "resolved": "string",
420
- "references": {}
421
- },
422
- "required": false,
423
- "optional": false,
424
- "docs": {
425
- "tags": [],
426
- "text": "Mask Character"
427
- },
428
- "attribute": "char",
429
- "reflect": false,
430
- "defaultValue": "'_'"
431
- },
432
- "hidden": {
433
- "type": "boolean",
434
- "mutable": false,
435
- "complexType": {
436
- "original": "boolean",
437
- "resolved": "boolean",
438
- "references": {}
439
- },
440
- "required": false,
441
- "optional": false,
442
- "docs": {
443
- "tags": [],
444
- "text": "Hide mask"
445
- },
446
- "attribute": "hidden",
447
- "reflect": false,
448
- "defaultValue": "false"
449
- }
450
- }; }
451
- static get watchers() { return [{
452
- "propName": "template",
453
- "methodName": "templateHandler"
454
- }, {
455
- "propName": "char",
456
- "methodName": "charHandler"
457
- }]; }
458
- }
@@ -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
- }