d2coreui 21.0.33 → 23.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/components/clipboard/clipboardUtils.d.ts +4 -3
  2. package/components/clipboard/clipboardUtils.js +47 -22
  3. package/components/clipboard/clipboardUtils.js.map +1 -1
  4. package/components/codemirror/SyntaxHighlighter.d.ts +21 -21
  5. package/components/codemirror/SyntaxHighlighter.js +45 -44
  6. package/components/codemirror/SyntaxHighlighter.js.map +1 -1
  7. package/components/collapse/expandable.d.ts +13 -12
  8. package/components/collapse/expandable.js +20 -20
  9. package/components/collapse/expandable.js.map +1 -1
  10. package/components/color/colorPicker.d.ts +20 -20
  11. package/components/color/colorPicker.js +53 -53
  12. package/components/color/colorPicker.js.map +1 -1
  13. package/components/color/colorSwatch.d.ts +13 -12
  14. package/components/color/colorSwatch.js +62 -62
  15. package/components/color/colorSwatch.js.map +1 -1
  16. package/components/color/colorUtils.d.ts +7 -7
  17. package/components/color/colorUtils.js +43 -43
  18. package/components/color/colorUtils.js.map +1 -1
  19. package/components/date/dateRangeInput.d.ts +66 -64
  20. package/components/date/dateRangeInput.js +292 -297
  21. package/components/date/dateRangeInput.js.map +1 -1
  22. package/components/date/dateRangeInputAdvancedPanel.d.ts +27 -26
  23. package/components/date/dateRangeInputAdvancedPanel.js +130 -115
  24. package/components/date/dateRangeInputAdvancedPanel.js.map +1 -1
  25. package/components/date/dateRangeInputConfirm.d.ts +31 -29
  26. package/components/date/dateRangeInputConfirm.js +132 -121
  27. package/components/date/dateRangeInputConfirm.js.map +1 -1
  28. package/components/date/dateTimeInput.d.ts +72 -69
  29. package/components/date/dateTimeInput.js +440 -412
  30. package/components/date/dateTimeInput.js.map +1 -1
  31. package/components/date/durationInput.d.ts +59 -56
  32. package/components/date/durationInput.js +269 -280
  33. package/components/date/durationInput.js.map +1 -1
  34. package/components/form/NiceFormItem.d.ts +14 -14
  35. package/components/form/NiceFormItem.js +28 -31
  36. package/components/form/NiceFormItem.js.map +1 -1
  37. package/components/grid/cell/beanAccessor.d.ts +9 -0
  38. package/components/grid/cell/beanAccessor.js +13 -0
  39. package/components/grid/cell/beanAccessor.js.map +1 -0
  40. package/components/grid/cell/cellEditorUtils.d.ts +4 -4
  41. package/components/grid/cell/cellEditorUtils.js +8 -8
  42. package/components/grid/cell/customEnumCellEditor.d.ts +4 -26
  43. package/components/grid/cell/customEnumCellEditor.js +82 -91
  44. package/components/grid/cell/customEnumCellEditor.js.map +1 -1
  45. package/components/grid/cell/dataGridCellEditorComponent.d.ts +14 -0
  46. package/components/grid/cell/dataGridCellEditorComponent.js +49 -0
  47. package/components/grid/cell/dataGridCellEditorComponent.js.map +1 -0
  48. package/components/grid/cell/dateCellEditor.d.ts +4 -25
  49. package/components/grid/cell/dateCellEditor.js +53 -72
  50. package/components/grid/cell/dateCellEditor.js.map +1 -1
  51. package/components/grid/cell/durationCellEditor.d.ts +4 -24
  52. package/components/grid/cell/durationCellEditor.js +74 -97
  53. package/components/grid/cell/durationCellEditor.js.map +1 -1
  54. package/components/grid/cell/hexaOctetStringCellEditor.d.ts +4 -24
  55. package/components/grid/cell/hexaOctetStringCellEditor.js +70 -94
  56. package/components/grid/cell/hexaOctetStringCellEditor.js.map +1 -1
  57. package/components/grid/cell/hexaValueCellEditor.d.ts +4 -24
  58. package/components/grid/cell/hexaValueCellEditor.js +65 -89
  59. package/components/grid/cell/hexaValueCellEditor.js.map +1 -1
  60. package/components/grid/cell/numberCellEditor.d.ts +4 -27
  61. package/components/grid/cell/numberCellEditor.js +73 -95
  62. package/components/grid/cell/numberCellEditor.js.map +1 -1
  63. package/components/grid/cell/rangeSelector.d.ts +78 -78
  64. package/components/grid/cell/rangeSelector.js +526 -518
  65. package/components/grid/cell/rangeSelector.js.map +1 -1
  66. package/components/grid/cell/simpleStatusTextCellEditor.d.ts +4 -32
  67. package/components/grid/cell/simpleStatusTextCellEditor.js +106 -116
  68. package/components/grid/cell/simpleStatusTextCellEditor.js.map +1 -1
  69. package/components/grid/cell/statusTextCellEditor.d.ts +4 -32
  70. package/components/grid/cell/statusTextCellEditor.js +136 -159
  71. package/components/grid/cell/statusTextCellEditor.js.map +1 -1
  72. package/components/grid/cell/tableDefaultRowStyleRules.d.ts +20 -20
  73. package/components/grid/cell/tableDefaultRowStyleRules.js +29 -18
  74. package/components/grid/cell/tableDefaultRowStyleRules.js.map +1 -1
  75. package/components/grid/cell/textCellEditor.d.ts +4 -21
  76. package/components/grid/cell/textCellEditor.js +63 -85
  77. package/components/grid/cell/textCellEditor.js.map +1 -1
  78. package/components/grid/cell/withAgGridHooks.d.ts +3 -0
  79. package/components/grid/cell/withAgGridHooks.js +15 -0
  80. package/components/grid/cell/withAgGridHooks.js.map +1 -0
  81. package/components/grid/columnUtils.d.ts +5 -5
  82. package/components/grid/columnUtils.js +26 -26
  83. package/components/grid/columnUtils.js.map +1 -1
  84. package/components/grid/config/columnTransfer.d.ts +21 -22
  85. package/components/grid/config/columnTransfer.js +205 -201
  86. package/components/grid/config/columnTransfer.js.map +1 -1
  87. package/components/grid/config/dataGridEditor.d.ts +41 -41
  88. package/components/grid/config/dataGridEditor.js +181 -160
  89. package/components/grid/config/dataGridEditor.js.map +1 -1
  90. package/components/grid/config/rowHeightCalculator.d.ts +8 -0
  91. package/components/grid/config/rowHeightCalculator.js +20 -0
  92. package/components/grid/config/rowHeightCalculator.js.map +1 -0
  93. package/components/grid/config/rowStylePicker.d.ts +27 -25
  94. package/components/grid/config/rowStylePicker.js +127 -109
  95. package/components/grid/config/rowStylePicker.js.map +1 -1
  96. package/components/grid/dataGrid.d.ts +218 -206
  97. package/components/grid/dataGrid.js +1629 -1538
  98. package/components/grid/dataGrid.js.map +1 -1
  99. package/components/grid/detail/detailHeaderPanel.d.ts +13 -13
  100. package/components/grid/detail/detailHeaderPanel.js +25 -25
  101. package/components/grid/detail/detailHeaderPanel.js.map +1 -1
  102. package/components/grid/export/contextMenu.d.ts +18 -24
  103. package/components/grid/export/contextMenu.js +116 -113
  104. package/components/grid/export/contextMenu.js.map +1 -1
  105. package/components/grid/export/progressPopup.d.ts +29 -29
  106. package/components/grid/export/progressPopup.js +93 -93
  107. package/components/grid/export/progressPopup.js.map +1 -1
  108. package/components/grid/export/worker/clipboardExport.d.ts +1 -1
  109. package/components/grid/export/worker/clipboardExport.js +8 -8
  110. package/components/grid/export/worker/csvExport.d.ts +1 -1
  111. package/components/grid/export/worker/csvExport.js +8 -8
  112. package/components/grid/export/worker/pdfExport.d.ts +1 -1
  113. package/components/grid/export/worker/pdfExport.js +81 -81
  114. package/components/grid/export/worker/pdfExport.js.map +1 -1
  115. package/components/grid/export/worker/txtExport.d.ts +1 -1
  116. package/components/grid/export/worker/txtExport.js +19 -19
  117. package/components/grid/extendedDataGrid.d.ts +140 -140
  118. package/components/grid/extendedDataGrid.js +704 -695
  119. package/components/grid/extendedDataGrid.js.map +1 -1
  120. package/components/grid/filter/customColumnFilter.d.ts +5 -21
  121. package/components/grid/filter/customColumnFilter.js +11 -82
  122. package/components/grid/filter/customColumnFilter.js.map +1 -1
  123. package/components/grid/filter/dataGridColumnFilter.d.ts +17 -0
  124. package/components/grid/filter/dataGridColumnFilter.js +49 -0
  125. package/components/grid/filter/dataGridColumnFilter.js.map +1 -0
  126. package/components/grid/filter/dateColumnFilter.d.ts +7 -11
  127. package/components/grid/filter/dateColumnFilter.js +22 -56
  128. package/components/grid/filter/dateColumnFilter.js.map +1 -1
  129. package/components/grid/filter/textColumnFilter.d.ts +8 -20
  130. package/components/grid/filter/textColumnFilter.js +24 -76
  131. package/components/grid/filter/textColumnFilter.js.map +1 -1
  132. package/components/grid/filter/wildcardQuickFilterEngine.d.ts +7 -0
  133. package/components/grid/filter/wildcardQuickFilterEngine.js +48 -0
  134. package/components/grid/filter/wildcardQuickFilterEngine.js.map +1 -0
  135. package/components/grid/header/simpleHeader.d.ts +17 -16
  136. package/components/grid/header/simpleHeader.js +230 -186
  137. package/components/grid/header/simpleHeader.js.map +1 -1
  138. package/components/grid/panel/dataGridPagination.d.ts +16 -16
  139. package/components/grid/panel/dataGridPagination.js +58 -58
  140. package/components/grid/panel/dataGridPagination.js.map +1 -1
  141. package/components/grid/panel/loadingOverlay.d.ts +6 -6
  142. package/components/grid/panel/loadingOverlay.js +10 -10
  143. package/components/grid/panel/loadingOverlay.js.map +1 -1
  144. package/components/grid/panel/noRecordsOverlay.d.ts +6 -6
  145. package/components/grid/panel/noRecordsOverlay.js +10 -10
  146. package/components/grid/panel/noRecordsOverlay.js.map +1 -1
  147. package/components/grid/panel/tablePagination.d.ts +10 -10
  148. package/components/grid/panel/tablePagination.js +45 -45
  149. package/components/grid/panel/tablePagination.js.map +1 -1
  150. package/components/icons/dropdownArrow.d.ts +8 -0
  151. package/components/icons/dropdownArrow.js +59 -0
  152. package/components/icons/dropdownArrow.js.map +1 -0
  153. package/components/icons/undoIcon.d.ts +8 -8
  154. package/components/icons/undoIcon.js +6 -6
  155. package/components/input/autoCompleteInput.d.ts +35 -35
  156. package/components/input/autoCompleteInput.js +122 -121
  157. package/components/input/autoCompleteInput.js.map +1 -1
  158. package/components/input/draftUtils.d.ts +4 -4
  159. package/components/input/draftUtils.js +48 -48
  160. package/components/input/draftUtils.js.map +1 -1
  161. package/components/input/draftail.d.ts +1 -1
  162. package/components/input/draftail.js +1 -1
  163. package/components/input/hexaFormattedInput.d.ts +16 -16
  164. package/components/input/hexaFormattedInput.js +54 -54
  165. package/components/input/hexaFormattedInput.js.map +1 -1
  166. package/components/input/mask/helpers.d.ts +28 -28
  167. package/components/input/mask/helpers.js +112 -112
  168. package/components/input/mask/helpers.js.map +1 -1
  169. package/components/input/mask/inputMaskCore.d.ts +46 -46
  170. package/components/input/mask/inputMaskCore.js +278 -278
  171. package/components/input/mask/inputMaskCore.js.map +1 -1
  172. package/components/input/mask/pattern.d.ts +20 -20
  173. package/components/input/mask/pattern.js +78 -78
  174. package/components/input/mask/pattern.js.map +1 -1
  175. package/components/input/maskedInput.d.ts +373 -351
  176. package/components/input/maskedInput.js +224 -224
  177. package/components/input/maskedInput.js.map +1 -1
  178. package/components/input/passwordInput.d.ts +9 -9
  179. package/components/input/passwordInput.js +55 -55
  180. package/components/input/passwordInput.js.map +1 -1
  181. package/components/input/simpleAutoComplete.d.ts +12 -12
  182. package/components/input/simpleAutoComplete.js +41 -43
  183. package/components/input/simpleAutoComplete.js.map +1 -1
  184. package/components/input/textarea/extractSpansOfClasses.d.ts +15 -15
  185. package/components/input/textarea/extractSpansOfClasses.js +96 -96
  186. package/components/input/textarea/extractSpansOfClasses.js.map +1 -1
  187. package/components/input/textarea/getRanges.d.ts +1 -1
  188. package/components/input/textarea/getRanges.js +73 -73
  189. package/components/input/textarea/getRanges.js.map +1 -1
  190. package/components/input/textarea/getType.d.ts +1 -1
  191. package/components/input/textarea/getType.js +26 -26
  192. package/components/input/textarea/getType.js.map +1 -1
  193. package/components/input/textarea/highlighedContents.d.ts +6 -6
  194. package/components/input/textarea/highlighedContents.js +10 -10
  195. package/components/input/textarea/mentionsWithHighlighting.d.ts +27 -27
  196. package/components/input/textarea/mentionsWithHighlighting.js +60 -60
  197. package/components/input/textarea/mentionsWithHighlighting.js.map +1 -1
  198. package/components/keyboard/keyboardUtils.d.ts +5 -5
  199. package/components/keyboard/keyboardUtils.js +32 -32
  200. package/components/modal/draggableModalProvider.d.ts +4 -4
  201. package/components/modal/draggableModalProvider.js +21 -21
  202. package/components/modal/draggableModalProvider.js.map +1 -1
  203. package/components/modal/impl/clamp.d.ts +1 -1
  204. package/components/modal/impl/clamp.js +1 -1
  205. package/components/modal/impl/clamp.js.map +1 -1
  206. package/components/modal/impl/draggableModal.d.ts +12 -12
  207. package/components/modal/impl/draggableModal.js +17 -17
  208. package/components/modal/impl/draggableModal.js.map +1 -1
  209. package/components/modal/impl/draggableModalContext.d.ts +9 -9
  210. package/components/modal/impl/draggableModalContext.js +2 -2
  211. package/components/modal/impl/draggableModalContext.js.map +1 -1
  212. package/components/modal/impl/draggableModalInner.d.ts +15 -13
  213. package/components/modal/impl/draggableModalInner.js +57 -55
  214. package/components/modal/impl/draggableModalInner.js.map +1 -1
  215. package/components/modal/impl/draggableModalReducer.d.ts +66 -62
  216. package/components/modal/impl/draggableModalReducer.js +77 -78
  217. package/components/modal/impl/draggableModalReducer.js.map +1 -1
  218. package/components/modal/impl/getWindowSize.d.ts +4 -4
  219. package/components/modal/impl/getWindowSize.js +4 -4
  220. package/components/modal/impl/getWindowSize.js.map +1 -1
  221. package/components/modal/impl/index.d.ts +3 -3
  222. package/components/modal/impl/index.js +3 -3
  223. package/components/modal/impl/index.js.map +1 -1
  224. package/components/modal/impl/resizeHandle.d.ts +3 -3
  225. package/components/modal/impl/resizeHandle.js +4 -4
  226. package/components/modal/impl/resizeHandle.js.map +1 -1
  227. package/components/modal/impl/useDrag.d.ts +5 -5
  228. package/components/modal/impl/useDrag.js +42 -42
  229. package/components/modal/impl/useDrag.js.map +1 -1
  230. package/components/modal/impl/usePrevious.d.ts +1 -1
  231. package/components/modal/impl/usePrevious.js +8 -8
  232. package/components/modal/impl/usePrevious.js.map +1 -1
  233. package/components/modal/impl/useResize.d.ts +7 -7
  234. package/components/modal/impl/useResize.js +46 -46
  235. package/components/modal/impl/useResize.js.map +1 -1
  236. package/components/modal/modalDialog.d.ts +49 -49
  237. package/components/modal/modalDialog.js +152 -152
  238. package/components/modal/modalDialog.js.map +1 -1
  239. package/components/picker/enumValuePicker.d.ts +16 -16
  240. package/components/picker/enumValuePicker.js +34 -34
  241. package/components/picker/enumValuePicker.js.map +1 -1
  242. package/components/platformSpecific.d.ts +10 -10
  243. package/components/platformSpecific.js +27 -27
  244. package/components/scrollTo/onlyText.d.ts +4 -4
  245. package/components/scrollTo/onlyText.js +30 -30
  246. package/components/scrollTo/onlyText.js.map +1 -1
  247. package/components/scrollTo/scrollTo.d.ts +41 -39
  248. package/components/scrollTo/scrollTo.js +264 -264
  249. package/components/scrollTo/scrollTo.js.map +1 -1
  250. package/components/style/withCss.d.ts +9 -0
  251. package/components/style/withCss.js +6 -0
  252. package/components/style/withCss.js.map +1 -0
  253. package/components/style/withInputNumberCss.d.ts +6 -0
  254. package/components/style/withInputNumberCss.js +13 -0
  255. package/components/style/withInputNumberCss.js.map +1 -0
  256. package/components/table/dragSortingTable.d.ts +13 -14
  257. package/components/table/dragSortingTable.js +96 -82
  258. package/components/table/dragSortingTable.js.map +1 -1
  259. package/components/text/impl/innerSize.d.ts +2 -2
  260. package/components/text/impl/innerSize.js +12 -12
  261. package/components/text/impl/series.d.ts +1 -1
  262. package/components/text/impl/series.js +28 -28
  263. package/components/text/impl/shallowEqual.d.ts +1 -1
  264. package/components/text/impl/shallowEqual.js +18 -18
  265. package/components/text/impl/shallowEqual.js.map +1 -1
  266. package/components/text/impl/uniqueId.d.ts +1 -1
  267. package/components/text/impl/uniqueId.js +4 -4
  268. package/components/text/impl/whilst.d.ts +1 -1
  269. package/components/text/impl/whilst.js +19 -19
  270. package/components/text/impl/whilst.js.map +1 -1
  271. package/components/text/textFit.d.ts +38 -38
  272. package/components/text/textFit.js +165 -168
  273. package/components/text/textFit.js.map +1 -1
  274. package/i18n/components.cs.json +101 -100
  275. package/i18n/components.sk.json +101 -100
  276. package/i18n/components.uk.json +101 -100
  277. package/i18n/componentsLocaleHolder.d.ts +3 -3
  278. package/i18n/componentsLocaleHolder.js +28 -28
  279. package/i18n/componentsLocaleHolder.js.map +1 -1
  280. package/package.json +71 -70
  281. package/style/index.less +274 -298
  282. package/style/modal/DraggableModal.css +43 -40
  283. package/style/modal/ResizeHandle.css +27 -19
  284. package/tsconfig.build.json +24 -24
  285. package/tsconfig.json +11 -11
  286. package/components/grid/cell/wildcardQuickFilter.d.ts +0 -11
  287. package/components/grid/cell/wildcardQuickFilter.js +0 -61
  288. package/components/grid/cell/wildcardQuickFilter.js.map +0 -1
  289. package/components/table/dataTable.d.ts +0 -17
  290. package/components/table/dataTable.js +0 -79
  291. package/components/table/dataTable.js.map +0 -1
  292. package/style/antd/antd-tree-showline.css +0 -25
  293. package/style/antd/full-height-tabs.scss +0 -63
  294. package/style/draftail/draftail-editor.css +0 -179
  295. package/style/table/dragSortingTable.css +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"inputMaskCore.js","sourceRoot":"","sources":["../../../../../components/input/mask/inputMaskCore.ts"],"names":[],"mappings":"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","sourcesContent":["import {DEFAULT_PLACEHOLDER_CHAR, FormatCharacters, mergeFormatCharacters} from './helpers';\nimport {Pattern} from './pattern';\n\ntype SelectionObject = { start: number; end: number };\n\ntype Options = {\n formatCharacters: FormatCharacters;\n pattern: string;\n isRevealingMask: boolean;\n placeholderChar: string;\n selection: SelectionObject;\n value: string;\n};\n\nexport class InputMask {\n static Pattern = Pattern;\n\n formatCharacters!: FormatCharacters;\n pattern!: Pattern;\n isRevealingMask!: boolean;\n placeholderChar!: string;\n selection!: SelectionObject;\n value!: string[];\n emptyValue = '';\n\n _history: {\n value: string;\n selection: SelectionObject;\n lastOp: string | null;\n startUndo?: boolean;\n }[] = [];\n\n _historyIndex: null | number = null;\n _lastOp: null | string = null;\n _lastSelection: null | SelectionObject = null;\n\n constructor(options: Partial<Options>) {\n const mergedOptions: Options = {\n ...{\n isRevealingMask: false,\n placeholderChar: DEFAULT_PLACEHOLDER_CHAR,\n selection: {start: 0, end: 0},\n value: ''\n },\n ...options\n } as Options;\n\n if (!mergedOptions.pattern) {\n throw new Error('InputMask: you must provide a pattern.');\n }\n\n if (\n typeof mergedOptions.placeholderChar !== 'string' ||\n mergedOptions.placeholderChar.length > 1\n ) {\n throw new Error(\n 'InputMask: placeholderChar should be a single character or an empty string.'\n );\n }\n\n this.placeholderChar = mergedOptions.placeholderChar;\n this.formatCharacters = mergeFormatCharacters(\n mergedOptions.formatCharacters\n );\n\n this.setPattern(mergedOptions.pattern, {\n value: mergedOptions.value,\n selection: mergedOptions.selection,\n isRevealingMask: mergedOptions.isRevealingMask\n });\n }\n\n setPattern(patternSource: string, options: Partial<Options>) {\n const merged = {\n selection: {start: 0, end: 0},\n value: '',\n ...options\n };\n\n this.pattern = new Pattern(\n patternSource,\n this.formatCharacters,\n this.placeholderChar,\n merged.isRevealingMask\n );\n\n this.setValue(merged.value);\n\n this.emptyValue = this.pattern.formatValue([]).join('');\n this.selection = merged.selection;\n this._resetHistory();\n }\n\n setValue(value?: string) {\n if (value == null) {\n value = '';\n }\n this.value = this.pattern.formatValue((value || '').split(''));\n }\n\n _resetHistory() {\n this._history = [];\n this._historyIndex = null;\n this._lastOp = null;\n this._lastSelection = {...this.selection};\n }\n\n getValue(): string {\n if (this.pattern.isRevealingMask) {\n this.value = this.pattern.formatValue(\n (this.getRawValue() || '').split('')\n );\n }\n return (this.value || []).join('');\n }\n\n getRawValue(): string {\n var rawValue = [];\n for (var i = 0; i < this.value.length; i++) {\n if (this.pattern._editableIndices[i] === true) {\n rawValue.push(this.value[i]);\n }\n }\n return rawValue.join('');\n }\n\n /**\n * Applies a single character of input based on the current selection.\n * @param {string} char\n * @return {boolean} true if a change has been made to value or selection as a\n * result of the input, false otherwise.\n */\n input(char: string) {\n // Ignore additional input if the cursor's at the end of the pattern\n if (\n this.selection.start === this.selection.end &&\n this.selection.start === this.pattern.length\n ) {\n return false;\n }\n\n const selectionBefore = copy(this.selection);\n const valueBefore = this.getValue();\n\n let inputIndex = this.selection.start;\n\n // If the cursor or selection is prior to the first editable character, make\n // sure any input given is applied to it.\n if (this.pattern.firstEditableIndex && inputIndex < this.pattern.firstEditableIndex) {\n inputIndex = this.pattern.firstEditableIndex;\n }\n\n // Bail out or add the character to input\n if (this.pattern.isEditableIndex(inputIndex)) {\n if (!this.pattern.isValidAtIndex(char, inputIndex)) {\n return false;\n }\n this.value[inputIndex] = this.pattern.transform(char, inputIndex);\n } else {\n console.log('not editable');\n }\n\n // If multiple characters were selected, blank the remainder out based on the\n // pattern.\n let end = this.selection.end - 1;\n while (end > inputIndex) {\n if (this.pattern.isEditableIndex(end)) {\n this.value[end] = this.placeholderChar;\n }\n end--;\n }\n\n // Advance the cursor to the next character\n this.selection.start = this.selection.end = inputIndex + 1;\n\n // Skip over any subsequent static characters\n while (\n this.pattern.length > this.selection.start &&\n !this.pattern.isEditableIndex(this.selection.start)\n ) {\n this.selection.start++;\n this.selection.end++;\n }\n\n // History\n if (this._historyIndex != null) {\n // Took more input after undoing, so blow any subsequent history away\n this._history.splice(\n this._historyIndex,\n this._history.length - this._historyIndex\n );\n this._historyIndex = null;\n }\n if (\n this._lastOp !== 'input' ||\n selectionBefore.start !== selectionBefore.end ||\n (this._lastSelection !== null &&\n selectionBefore.start !== this._lastSelection.start)\n ) {\n this._history.push({\n value: valueBefore,\n selection: selectionBefore,\n lastOp: this._lastOp\n });\n }\n this._lastOp = 'input';\n this._lastSelection = copy(this.selection);\n\n return true;\n }\n\n /**\n * Attempts to delete from the value based on the current cursor position or\n * selection.\n * @return {boolean} true if the value or selection changed as the result of\n * backspacing, false otherwise.\n */\n backspace() {\n // If the cursor is at the start there's nothing to do\n if (this.selection.start === 0 && this.selection.end === 0) {\n return false;\n }\n\n var selectionBefore = {...this.selection};\n var valueBefore = this.getValue();\n\n // No range selected - work on the character preceding the cursor\n if (this.selection.start === this.selection.end) {\n if (this.pattern.isEditableIndex(this.selection.start - 1)) {\n if (this.pattern.isRevealingMask) {\n this.value.splice(this.selection.start - 1);\n } else {\n this.value[this.selection.start - 1] = this.placeholderChar;\n }\n }\n this.selection.start--;\n this.selection.end--;\n }\n // Range selected - delete characters and leave the cursor at the start of the selection\n else {\n var end = this.selection.end - 1;\n while (end >= this.selection.start) {\n if (this.pattern.isEditableIndex(end)) {\n this.value[end] = this.placeholderChar;\n }\n end--;\n }\n this.selection.end = this.selection.start;\n }\n\n // History\n if (this._historyIndex != null) {\n // Took more input after undoing, so blow any subsequent history away\n this._history.splice(\n this._historyIndex,\n this._history.length - this._historyIndex\n );\n }\n if (\n this._lastOp !== 'backspace' ||\n selectionBefore.start !== selectionBefore.end ||\n (this._lastSelection !== null &&\n selectionBefore.start !== this._lastSelection.start)\n ) {\n this._history.push({\n value: valueBefore,\n selection: selectionBefore,\n lastOp: this._lastOp\n });\n }\n this._lastOp = 'backspace';\n this._lastSelection = {...this.selection};\n\n return true;\n }\n\n /**\n * Attempts to paste a string of input at the current cursor position or over\n * the top of the current selection.\n * Invalid content at any position will cause the paste to be rejected, and it\n * may contain static parts of the mask's pattern.\n * @param {string} input\n * @return {boolean} true if the paste was successful, false otherwise.\n */\n paste(input: string) {\n // This is necessary because we're just calling input() with each character\n // and rolling back if any were invalid, rather than checking up-front.\n var initialState = {\n value: this.value.slice(),\n selection: {...this.selection},\n _lastOp: this._lastOp,\n _history: this._history.slice(),\n _historyIndex: this._historyIndex,\n _lastSelection: {...this._lastSelection}\n };\n\n // If there are static characters at the start of the pattern and the cursor\n // or selection is within them, the static characters must match for a valid\n // paste.\n if (this.selection.start < this.pattern.firstEditableIndex!) {\n for (\n var i = 0, l = this.pattern.firstEditableIndex! - this.selection.start;\n i < l;\n i++\n ) {\n if (input.charAt(i) !== this.pattern.pattern[i]) {\n return false;\n }\n }\n\n // Continue as if the selection and input started from the editable part of\n // the pattern.\n input = input.substring(\n this.pattern.firstEditableIndex! - this.selection.start\n );\n this.selection.start = this.pattern.firstEditableIndex!;\n }\n\n for (\n i = 0, l = input.length;\n i < l && this.selection.start <= this.pattern.lastEditableIndex!;\n i++\n ) {\n var valid = this.input(input.charAt(i));\n // Allow static parts of the pattern to appear in pasted input - they will\n // already have been stepped over by input(), so verify that the value\n // deemed invalid by input() was the expected static character.\n if (!valid) {\n if (this.selection.start > 0) {\n // XXX This only allows for one static character to be skipped\n var patternIndex = this.selection.start - 1;\n if (\n !this.pattern.isEditableIndex(patternIndex) &&\n input.charAt(i) === this.pattern.pattern[patternIndex]\n ) {\n continue;\n }\n }\n\n Object.keys(initialState).forEach(key => {\n // @ts-ignore\n this[key] = initialState[key];\n });\n\n return false;\n }\n }\n\n return true;\n }\n\n undo() {\n // If there is no history, or nothing more on the history stack, we can't undo\n if (this._history.length === 0 || this._historyIndex === 0) {\n return false;\n }\n\n var historyItem;\n if (this._historyIndex == null) {\n // Not currently undoing, set up the initial history index\n this._historyIndex = this._history.length - 1;\n historyItem = this._history[this._historyIndex];\n // Add a new history entry if anything has changed since the last one, so we\n // can redo back to the initial state we started undoing from.\n var value = this.getValue();\n if (\n historyItem.value !== value ||\n historyItem.selection.start !== this.selection.start ||\n historyItem.selection.end !== this.selection.end\n ) {\n this._history.push({\n value: value,\n selection: {...this.selection},\n lastOp: this._lastOp,\n startUndo: true\n });\n }\n } else {\n historyItem = this._history[--this._historyIndex];\n }\n\n this.value = historyItem.value.split('');\n this.selection = historyItem.selection;\n this._lastOp = historyItem.lastOp;\n return true;\n }\n\n redo() {\n if (this._history.length === 0 || this._historyIndex == null) {\n return false;\n }\n var historyItem = this._history[++this._historyIndex];\n // If this is the last history item, we're done redoing\n if (this._historyIndex === this._history.length - 1) {\n this._historyIndex = null;\n // If the last history item was only added to start undoing, remove it\n if (historyItem.startUndo) {\n this._history.pop();\n }\n }\n this.value = historyItem.value.split('');\n this.selection = historyItem.selection;\n this._lastOp = historyItem.lastOp;\n return true;\n }\n\n setSelection(selection: SelectionObject) {\n this.selection = {...selection};\n\n if (this.selection.start === this.selection.end) {\n if (this.selection.start < this.pattern.firstEditableIndex!) {\n this.selection!.start = this.selection!.end = this.pattern\n .firstEditableIndex as number;\n return true;\n }\n // Set selection to the first editable, non-placeholder character before the selection\n // OR to the beginning of the pattern\n var index = this.selection.start;\n while (index >= this.pattern.firstEditableIndex!) {\n if (\n (this.pattern.isEditableIndex(index - 1) &&\n this.value[index - 1] !== this.placeholderChar) ||\n index === this.pattern.firstEditableIndex\n ) {\n this.selection.start = this.selection.end = index;\n break;\n }\n index--;\n }\n return true;\n }\n return false;\n }\n}\n\nfunction extend(dest: any, src: any) {\n if (src) {\n let props = Object.keys(src);\n\n for (var i = 0, l = props.length; i < l; i++) {\n dest[props[i]] = src[props[i]];\n }\n }\n\n return dest;\n}\n\nfunction copy<T = any>(obj: T): T {\n return extend({}, obj);\n}\n\nexport default InputMask;"]}
1
+ {"version":3,"file":"inputMaskCore.js","sourceRoot":"","sources":["../../../../../components/input/mask/inputMaskCore.ts"],"names":[],"mappings":"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","sourcesContent":["import {DEFAULT_PLACEHOLDER_CHAR, FormatCharacters, mergeFormatCharacters} from './helpers';\nimport {Pattern} from './pattern';\n\ntype SelectionObject = { start: number; end: number };\n\ntype Options = {\n formatCharacters: FormatCharacters;\n pattern: string;\n isRevealingMask: boolean;\n placeholderChar: string;\n selection: SelectionObject;\n value: string;\n};\n\nexport class InputMask {\n static Pattern = Pattern;\n\n formatCharacters!: FormatCharacters;\n pattern!: Pattern;\n isRevealingMask!: boolean;\n placeholderChar!: string;\n selection!: SelectionObject;\n value!: string[];\n emptyValue = '';\n\n _history: {\n value: string;\n selection: SelectionObject;\n lastOp: string | null;\n startUndo?: boolean;\n }[] = [];\n\n _historyIndex: null | number = null;\n _lastOp: null | string = null;\n _lastSelection: null | SelectionObject = null;\n\n constructor(options: Partial<Options>) {\n const mergedOptions: Options = {\n ...{\n isRevealingMask: false,\n placeholderChar: DEFAULT_PLACEHOLDER_CHAR,\n selection: {start: 0, end: 0},\n value: ''\n },\n ...options\n } as Options;\n\n if (!mergedOptions.pattern) {\n throw new Error('InputMask: you must provide a pattern.');\n }\n\n if (\n typeof mergedOptions.placeholderChar !== 'string' ||\n mergedOptions.placeholderChar.length > 1\n ) {\n throw new Error(\n 'InputMask: placeholderChar should be a single character or an empty string.'\n );\n }\n\n this.placeholderChar = mergedOptions.placeholderChar;\n this.formatCharacters = mergeFormatCharacters(\n mergedOptions.formatCharacters\n );\n\n this.setPattern(mergedOptions.pattern, {\n value: mergedOptions.value,\n selection: mergedOptions.selection,\n isRevealingMask: mergedOptions.isRevealingMask\n });\n }\n\n setPattern(patternSource: string, options: Partial<Options>) {\n const merged = {\n selection: {start: 0, end: 0},\n value: '',\n ...options\n };\n\n this.pattern = new Pattern(\n patternSource,\n this.formatCharacters,\n this.placeholderChar,\n merged.isRevealingMask\n );\n\n this.setValue(merged.value);\n\n this.emptyValue = this.pattern.formatValue([]).join('');\n this.selection = merged.selection;\n this._resetHistory();\n }\n\n setValue(value?: string) {\n if (value == null) {\n value = '';\n }\n this.value = this.pattern.formatValue((value || '').split(''));\n }\n\n _resetHistory() {\n this._history = [];\n this._historyIndex = null;\n this._lastOp = null;\n this._lastSelection = {...this.selection};\n }\n\n getValue(): string {\n if (this.pattern.isRevealingMask) {\n this.value = this.pattern.formatValue(\n (this.getRawValue() || '').split('')\n );\n }\n return (this.value || []).join('');\n }\n\n getRawValue(): string {\n var rawValue = [];\n for (var i = 0; i < this.value.length; i++) {\n if (this.pattern._editableIndices[i] === true) {\n rawValue.push(this.value[i]);\n }\n }\n return rawValue.join('');\n }\n\n /**\n * Applies a single character of input based on the current selection.\n * @param {string} char\n * @return {boolean} true if a change has been made to value or selection as a\n * result of the input, false otherwise.\n */\n input(char: string) {\n // Ignore additional input if the cursor's at the end of the pattern\n if (\n this.selection.start === this.selection.end &&\n this.selection.start === this.pattern.length\n ) {\n return false;\n }\n\n const selectionBefore = copy(this.selection);\n const valueBefore = this.getValue();\n\n let inputIndex = this.selection.start;\n\n // If the cursor or selection is prior to the first editable character, make\n // sure any input given is applied to it.\n if (this.pattern.firstEditableIndex && inputIndex < this.pattern.firstEditableIndex) {\n inputIndex = this.pattern.firstEditableIndex;\n }\n\n // Bail out or add the character to input\n if (this.pattern.isEditableIndex(inputIndex)) {\n if (!this.pattern.isValidAtIndex(char, inputIndex)) {\n return false;\n }\n this.value[inputIndex] = this.pattern.transform(char, inputIndex);\n } else {\n console.log('not editable');\n }\n\n // If multiple characters were selected, blank the remainder out based on the\n // pattern.\n let end = this.selection.end - 1;\n while (end > inputIndex) {\n if (this.pattern.isEditableIndex(end)) {\n this.value[end] = this.placeholderChar;\n }\n end--;\n }\n\n // Advance the cursor to the next character\n this.selection.start = this.selection.end = inputIndex + 1;\n\n // Skip over any subsequent static characters\n while (\n this.pattern.length > this.selection.start &&\n !this.pattern.isEditableIndex(this.selection.start)\n ) {\n this.selection.start++;\n this.selection.end++;\n }\n\n // History\n if (this._historyIndex != null) {\n // Took more input after undoing, so blow any subsequent history away\n this._history.splice(\n this._historyIndex,\n this._history.length - this._historyIndex\n );\n this._historyIndex = null;\n }\n if (\n this._lastOp !== 'input' ||\n selectionBefore.start !== selectionBefore.end ||\n (this._lastSelection !== null &&\n selectionBefore.start !== this._lastSelection.start)\n ) {\n this._history.push({\n value: valueBefore,\n selection: selectionBefore,\n lastOp: this._lastOp\n });\n }\n this._lastOp = 'input';\n this._lastSelection = copy(this.selection);\n\n return true;\n }\n\n /**\n * Attempts to delete from the value based on the current cursor position or\n * selection.\n * @return {boolean} true if the value or selection changed as the result of\n * backspacing, false otherwise.\n */\n backspace() {\n // If the cursor is at the start there's nothing to do\n if (this.selection.start === 0 && this.selection.end === 0) {\n return false;\n }\n\n var selectionBefore = {...this.selection};\n var valueBefore = this.getValue();\n\n // No range selected - work on the character preceding the cursor\n if (this.selection.start === this.selection.end) {\n if (this.pattern.isEditableIndex(this.selection.start - 1)) {\n if (this.pattern.isRevealingMask) {\n this.value.splice(this.selection.start - 1);\n } else {\n this.value[this.selection.start - 1] = this.placeholderChar;\n }\n }\n this.selection.start--;\n this.selection.end--;\n }\n // Range selected - delete characters and leave the cursor at the start of the selection\n else {\n var end = this.selection.end - 1;\n while (end >= this.selection.start) {\n if (this.pattern.isEditableIndex(end)) {\n this.value[end] = this.placeholderChar;\n }\n end--;\n }\n this.selection.end = this.selection.start;\n }\n\n // History\n if (this._historyIndex != null) {\n // Took more input after undoing, so blow any subsequent history away\n this._history.splice(\n this._historyIndex,\n this._history.length - this._historyIndex\n );\n }\n if (\n this._lastOp !== 'backspace' ||\n selectionBefore.start !== selectionBefore.end ||\n (this._lastSelection !== null &&\n selectionBefore.start !== this._lastSelection.start)\n ) {\n this._history.push({\n value: valueBefore,\n selection: selectionBefore,\n lastOp: this._lastOp\n });\n }\n this._lastOp = 'backspace';\n this._lastSelection = {...this.selection};\n\n return true;\n }\n\n /**\n * Attempts to paste a string of input at the current cursor position or over\n * the top of the current selection.\n * Invalid content at any position will cause the paste to be rejected, and it\n * may contain static parts of the mask's pattern.\n * @param {string} input\n * @return {boolean} true if the paste was successful, false otherwise.\n */\n paste(input: string) {\n // This is necessary because we're just calling input() with each character\n // and rolling back if any were invalid, rather than checking up-front.\n var initialState = {\n value: this.value.slice(),\n selection: {...this.selection},\n _lastOp: this._lastOp,\n _history: this._history.slice(),\n _historyIndex: this._historyIndex,\n _lastSelection: {...this._lastSelection}\n };\n\n // If there are static characters at the start of the pattern and the cursor\n // or selection is within them, the static characters must match for a valid\n // paste.\n if (this.selection.start < this.pattern.firstEditableIndex!) {\n for (\n var i = 0, l = this.pattern.firstEditableIndex! - this.selection.start;\n i < l;\n i++\n ) {\n if (input.charAt(i) !== this.pattern.pattern[i]) {\n return false;\n }\n }\n\n // Continue as if the selection and input started from the editable part of\n // the pattern.\n input = input.substring(\n this.pattern.firstEditableIndex! - this.selection.start\n );\n this.selection.start = this.pattern.firstEditableIndex!;\n }\n\n for (\n i = 0, l = input.length;\n i < l && this.selection.start <= this.pattern.lastEditableIndex!;\n i++\n ) {\n var valid = this.input(input.charAt(i));\n // Allow static parts of the pattern to appear in pasted input - they will\n // already have been stepped over by input(), so verify that the value\n // deemed invalid by input() was the expected static character.\n if (!valid) {\n if (this.selection.start > 0) {\n // XXX This only allows for one static character to be skipped\n var patternIndex = this.selection.start - 1;\n if (\n !this.pattern.isEditableIndex(patternIndex) &&\n input.charAt(i) === this.pattern.pattern[patternIndex]\n ) {\n continue;\n }\n }\n\n Object.keys(initialState).forEach(key => {\n // @ts-ignore\n this[key] = initialState[key];\n });\n\n return false;\n }\n }\n\n return true;\n }\n\n undo() {\n // If there is no history, or nothing more on the history stack, we can't undo\n if (this._history.length === 0 || this._historyIndex === 0) {\n return false;\n }\n\n var historyItem;\n if (this._historyIndex == null) {\n // Not currently undoing, set up the initial history index\n this._historyIndex = this._history.length - 1;\n historyItem = this._history[this._historyIndex];\n // Add a new history entry if anything has changed since the last one, so we\n // can redo back to the initial state we started undoing from.\n var value = this.getValue();\n if (\n historyItem.value !== value ||\n historyItem.selection.start !== this.selection.start ||\n historyItem.selection.end !== this.selection.end\n ) {\n this._history.push({\n value: value,\n selection: {...this.selection},\n lastOp: this._lastOp,\n startUndo: true\n });\n }\n } else {\n historyItem = this._history[--this._historyIndex];\n }\n\n this.value = historyItem.value.split('');\n this.selection = historyItem.selection;\n this._lastOp = historyItem.lastOp;\n return true;\n }\n\n redo() {\n if (this._history.length === 0 || this._historyIndex == null) {\n return false;\n }\n var historyItem = this._history[++this._historyIndex];\n // If this is the last history item, we're done redoing\n if (this._historyIndex === this._history.length - 1) {\n this._historyIndex = null;\n // If the last history item was only added to start undoing, remove it\n if (historyItem.startUndo) {\n this._history.pop();\n }\n }\n this.value = historyItem.value.split('');\n this.selection = historyItem.selection;\n this._lastOp = historyItem.lastOp;\n return true;\n }\n\n setSelection(selection: SelectionObject) {\n this.selection = {...selection};\n\n if (this.selection.start === this.selection.end) {\n if (this.selection.start < this.pattern.firstEditableIndex!) {\n this.selection!.start = this.selection!.end = this.pattern\n .firstEditableIndex as number;\n return true;\n }\n // Set selection to the first editable, non-placeholder character before the selection\n // OR to the beginning of the pattern\n var index = this.selection.start;\n while (index >= this.pattern.firstEditableIndex!) {\n if (\n (this.pattern.isEditableIndex(index - 1) &&\n this.value[index - 1] !== this.placeholderChar) ||\n index === this.pattern.firstEditableIndex\n ) {\n this.selection.start = this.selection.end = index;\n break;\n }\n index--;\n }\n return true;\n }\n return false;\n }\n}\n\nfunction extend(dest: any, src: any) {\n if (src) {\n let props = Object.keys(src);\n\n for (var i = 0, l = props.length; i < l; i++) {\n dest[props[i]] = src[props[i]];\n }\n }\n\n return dest;\n}\n\nfunction copy<T = any>(obj: T): T {\n return extend({}, obj);\n}\n\nexport default InputMask;"]}
@@ -1,20 +1,20 @@
1
- import { FormatCharacters } from './helpers';
2
- export declare class Pattern {
3
- placeholderChar: string;
4
- formatCharacters: FormatCharacters;
5
- source: string;
6
- pattern: never[];
7
- length: number;
8
- firstEditableIndex: null | number;
9
- lastEditableIndex: null | number;
10
- _editableIndices: {
11
- [key: number]: boolean;
12
- };
13
- isRevealingMask: boolean;
14
- constructor(source: string, formatCharacters: FormatCharacters, placeholderChar: string, isRevealingMask?: boolean);
15
- _parse(): void;
16
- formatValue(value: string[]): string[];
17
- isEditableIndex(index: number): boolean;
18
- isValidAtIndex(char: string, index: number): boolean;
19
- transform(char: string, index: number): string;
20
- }
1
+ import { FormatCharacters } from './helpers';
2
+ export declare class Pattern {
3
+ placeholderChar: string;
4
+ formatCharacters: FormatCharacters;
5
+ source: string;
6
+ pattern: never[];
7
+ length: number;
8
+ firstEditableIndex: null | number;
9
+ lastEditableIndex: null | number;
10
+ _editableIndices: {
11
+ [key: number]: boolean;
12
+ };
13
+ isRevealingMask: boolean;
14
+ constructor(source: string, formatCharacters: FormatCharacters, placeholderChar: string, isRevealingMask?: boolean);
15
+ _parse(): void;
16
+ formatValue(value: string[]): string[];
17
+ isEditableIndex(index: number): boolean;
18
+ isValidAtIndex(char: string, index: number): boolean;
19
+ transform(char: string, index: number): string;
20
+ }
@@ -1,79 +1,79 @@
1
- import { DEFAULT_FORMAT_CHARACTERS, DEFAULT_PLACEHOLDER_CHAR, ESCAPE_CHAR, } from './helpers';
2
- export class Pattern {
3
- constructor(source, formatCharacters, placeholderChar, isRevealingMask = false) {
4
- this.pattern = [];
5
- this.length = 0;
6
- this.firstEditableIndex = null;
7
- this.lastEditableIndex = null;
8
- this._editableIndices = {};
9
- this.placeholderChar = placeholderChar || DEFAULT_PLACEHOLDER_CHAR;
10
- this.formatCharacters = formatCharacters || DEFAULT_FORMAT_CHARACTERS;
11
- this.source = source;
12
- this.isRevealingMask = isRevealingMask;
13
- this._parse();
14
- }
15
- _parse() {
16
- var sourceChars = this.source.split('');
17
- var patternIndex = 0;
18
- var pattern = [];
19
- for (var i = 0, l = sourceChars.length; i < l; i++) {
20
- var char = sourceChars[i];
21
- if (char === ESCAPE_CHAR) {
22
- if (i === l - 1) {
23
- throw new Error('InputMask: pattern ends with a raw ' + ESCAPE_CHAR);
24
- }
25
- char = sourceChars[++i];
26
- }
27
- else if (char in this.formatCharacters) {
28
- if (this.firstEditableIndex === null) {
29
- this.firstEditableIndex = patternIndex;
30
- }
31
- this.lastEditableIndex = patternIndex;
32
- this._editableIndices[patternIndex] = true;
33
- }
34
- pattern.push(char);
35
- patternIndex++;
36
- }
37
- if (this.firstEditableIndex === null) {
38
- throw new Error('InputMask: pattern "' + this.source + '" does not contain any editable characters.');
39
- }
40
- this.pattern = pattern;
41
- this.length = pattern.length;
42
- }
43
- formatValue(value) {
44
- var valueBuffer = new Array(this.length);
45
- var valueIndex = 0;
46
- for (var i = 0, l = this.length; i < l; i++) {
47
- if (this.isEditableIndex(i)) {
48
- if (this.isRevealingMask &&
49
- value.length <= valueIndex &&
50
- !this.isValidAtIndex(value[valueIndex], i)) {
51
- break;
52
- }
53
- valueBuffer[i] =
54
- value.length > valueIndex && this.isValidAtIndex(value[valueIndex], i)
55
- ? this.transform(value[valueIndex], i)
56
- : this.placeholderChar;
57
- valueIndex++;
58
- }
59
- else {
60
- valueBuffer[i] = this.pattern[i];
61
- if (value.length > valueIndex && value[valueIndex] === this.pattern[i]) {
62
- valueIndex++;
63
- }
64
- }
65
- }
66
- return valueBuffer;
67
- }
68
- isEditableIndex(index) {
69
- return !!this._editableIndices[index];
70
- }
71
- isValidAtIndex(char, index) {
72
- return this.formatCharacters[this.pattern[index]].validate(char);
73
- }
74
- transform(char, index) {
75
- var format = this.formatCharacters[this.pattern[index]];
76
- return typeof format.transform == 'function' ? format.transform(char) : char;
77
- }
78
- }
1
+ import { DEFAULT_FORMAT_CHARACTERS, DEFAULT_PLACEHOLDER_CHAR, ESCAPE_CHAR, } from './helpers';
2
+ export class Pattern {
3
+ constructor(source, formatCharacters, placeholderChar, isRevealingMask = false) {
4
+ this.pattern = [];
5
+ this.length = 0;
6
+ this.firstEditableIndex = null;
7
+ this.lastEditableIndex = null;
8
+ this._editableIndices = {};
9
+ this.placeholderChar = placeholderChar || DEFAULT_PLACEHOLDER_CHAR;
10
+ this.formatCharacters = formatCharacters || DEFAULT_FORMAT_CHARACTERS;
11
+ this.source = source;
12
+ this.isRevealingMask = isRevealingMask;
13
+ this._parse();
14
+ }
15
+ _parse() {
16
+ var sourceChars = this.source.split('');
17
+ var patternIndex = 0;
18
+ var pattern = [];
19
+ for (var i = 0, l = sourceChars.length; i < l; i++) {
20
+ var char = sourceChars[i];
21
+ if (char === ESCAPE_CHAR) {
22
+ if (i === l - 1) {
23
+ throw new Error('InputMask: pattern ends with a raw ' + ESCAPE_CHAR);
24
+ }
25
+ char = sourceChars[++i];
26
+ }
27
+ else if (char in this.formatCharacters) {
28
+ if (this.firstEditableIndex === null) {
29
+ this.firstEditableIndex = patternIndex;
30
+ }
31
+ this.lastEditableIndex = patternIndex;
32
+ this._editableIndices[patternIndex] = true;
33
+ }
34
+ pattern.push(char);
35
+ patternIndex++;
36
+ }
37
+ if (this.firstEditableIndex === null) {
38
+ throw new Error('InputMask: pattern "' + this.source + '" does not contain any editable characters.');
39
+ }
40
+ this.pattern = pattern;
41
+ this.length = pattern.length;
42
+ }
43
+ formatValue(value) {
44
+ var valueBuffer = new Array(this.length);
45
+ var valueIndex = 0;
46
+ for (var i = 0, l = this.length; i < l; i++) {
47
+ if (this.isEditableIndex(i)) {
48
+ if (this.isRevealingMask &&
49
+ value.length <= valueIndex &&
50
+ !this.isValidAtIndex(value[valueIndex], i)) {
51
+ break;
52
+ }
53
+ valueBuffer[i] =
54
+ value.length > valueIndex && this.isValidAtIndex(value[valueIndex], i)
55
+ ? this.transform(value[valueIndex], i)
56
+ : this.placeholderChar;
57
+ valueIndex++;
58
+ }
59
+ else {
60
+ valueBuffer[i] = this.pattern[i];
61
+ if (value.length > valueIndex && value[valueIndex] === this.pattern[i]) {
62
+ valueIndex++;
63
+ }
64
+ }
65
+ }
66
+ return valueBuffer;
67
+ }
68
+ isEditableIndex(index) {
69
+ return !!this._editableIndices[index];
70
+ }
71
+ isValidAtIndex(char, index) {
72
+ return this.formatCharacters[this.pattern[index]].validate(char);
73
+ }
74
+ transform(char, index) {
75
+ var format = this.formatCharacters[this.pattern[index]];
76
+ return typeof format.transform == 'function' ? format.transform(char) : char;
77
+ }
78
+ }
79
79
  //# sourceMappingURL=pattern.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../../../../components/input/mask/pattern.ts"],"names":[],"mappings":"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","sourcesContent":["import {DEFAULT_FORMAT_CHARACTERS, DEFAULT_PLACEHOLDER_CHAR, ESCAPE_CHAR, FormatCharacters,} from './helpers';\n\nexport class Pattern {\n placeholderChar: string;\n formatCharacters: FormatCharacters;\n source: string;\n\n /** Pattern characters after escape characters have been processed. */\n pattern = [];\n\n /** Length of the pattern after escape characters have been processed. */\n length = 0;\n\n /** Index of the first editable character. */\n firstEditableIndex: null | number = null;\n\n /** Index of the last editable character. */\n lastEditableIndex: null | number = null;\n\n /** Lookup for indices of editable characters in the pattern. */\n _editableIndices: { [key: number]: boolean } = {};\n\n /** If true, only the pattern before the last valid value character shows. */\n isRevealingMask: boolean;\n\n constructor(\n source: string,\n formatCharacters: FormatCharacters,\n placeholderChar: string,\n isRevealingMask = false,\n ) {\n /** Placeholder character */\n this.placeholderChar = placeholderChar || DEFAULT_PLACEHOLDER_CHAR;\n /** Format character definitions. */\n this.formatCharacters = formatCharacters || DEFAULT_FORMAT_CHARACTERS;\n /** Pattern definition string with escape characters. */\n this.source = source;\n\n this.isRevealingMask = isRevealingMask;\n\n this._parse();\n }\n\n _parse() {\n var sourceChars = this.source.split('');\n var patternIndex = 0;\n var pattern: string[] = [];\n\n for (var i = 0, l = sourceChars.length; i < l; i++) {\n var char = sourceChars[i];\n if (char === ESCAPE_CHAR) {\n if (i === l - 1) {\n throw new Error('InputMask: pattern ends with a raw ' + ESCAPE_CHAR);\n }\n char = sourceChars[++i];\n } else if (char in this.formatCharacters) {\n if (this.firstEditableIndex === null) {\n this.firstEditableIndex = patternIndex;\n }\n this.lastEditableIndex = patternIndex;\n this._editableIndices[patternIndex] = true;\n }\n\n pattern.push(char);\n patternIndex++;\n }\n\n if (this.firstEditableIndex === null) {\n throw new Error(\n 'InputMask: pattern \"' + this.source + '\" does not contain any editable characters.',\n );\n }\n\n // @ts-ignore\n this.pattern = pattern;\n this.length = pattern.length;\n }\n\n formatValue(value: string[]): string[] {\n var valueBuffer = new Array(this.length);\n var valueIndex = 0;\n\n for (var i = 0, l = this.length; i < l; i++) {\n if (this.isEditableIndex(i)) {\n if (\n this.isRevealingMask &&\n value.length <= valueIndex &&\n !this.isValidAtIndex(value[valueIndex], i)\n ) {\n break;\n }\n valueBuffer[i] =\n value.length > valueIndex && this.isValidAtIndex(value[valueIndex], i)\n ? this.transform(value[valueIndex], i)\n : this.placeholderChar;\n valueIndex++;\n } else {\n valueBuffer[i] = this.pattern[i];\n // Also allow the value to contain static values from the pattern by\n // advancing its index.\n if (value.length > valueIndex && value[valueIndex] === this.pattern[i]) {\n valueIndex++;\n }\n }\n }\n\n return valueBuffer;\n }\n\n isEditableIndex(index: number) {\n return !!this._editableIndices[index];\n }\n\n isValidAtIndex(char: string, index: number) {\n return this.formatCharacters[this.pattern[index]].validate(char);\n }\n\n transform(char: string, index: number) {\n var format = this.formatCharacters[this.pattern[index]];\n return typeof format.transform == 'function' ? format.transform(char) : char;\n }\n}"]}
1
+ {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../../../../components/input/mask/pattern.ts"],"names":[],"mappings":"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","sourcesContent":["import {DEFAULT_FORMAT_CHARACTERS, DEFAULT_PLACEHOLDER_CHAR, ESCAPE_CHAR, FormatCharacters,} from './helpers';\n\nexport class Pattern {\n placeholderChar: string;\n formatCharacters: FormatCharacters;\n source: string;\n\n /** Pattern characters after escape characters have been processed. */\n pattern = [];\n\n /** Length of the pattern after escape characters have been processed. */\n length = 0;\n\n /** Index of the first editable character. */\n firstEditableIndex: null | number = null;\n\n /** Index of the last editable character. */\n lastEditableIndex: null | number = null;\n\n /** Lookup for indices of editable characters in the pattern. */\n _editableIndices: { [key: number]: boolean } = {};\n\n /** If true, only the pattern before the last valid value character shows. */\n isRevealingMask: boolean;\n\n constructor(\n source: string,\n formatCharacters: FormatCharacters,\n placeholderChar: string,\n isRevealingMask = false,\n ) {\n /** Placeholder character */\n this.placeholderChar = placeholderChar || DEFAULT_PLACEHOLDER_CHAR;\n /** Format character definitions. */\n this.formatCharacters = formatCharacters || DEFAULT_FORMAT_CHARACTERS;\n /** Pattern definition string with escape characters. */\n this.source = source;\n\n this.isRevealingMask = isRevealingMask;\n\n this._parse();\n }\n\n _parse() {\n var sourceChars = this.source.split('');\n var patternIndex = 0;\n var pattern: string[] = [];\n\n for (var i = 0, l = sourceChars.length; i < l; i++) {\n var char = sourceChars[i];\n if (char === ESCAPE_CHAR) {\n if (i === l - 1) {\n throw new Error('InputMask: pattern ends with a raw ' + ESCAPE_CHAR);\n }\n char = sourceChars[++i];\n } else if (char in this.formatCharacters) {\n if (this.firstEditableIndex === null) {\n this.firstEditableIndex = patternIndex;\n }\n this.lastEditableIndex = patternIndex;\n this._editableIndices[patternIndex] = true;\n }\n\n pattern.push(char);\n patternIndex++;\n }\n\n if (this.firstEditableIndex === null) {\n throw new Error(\n 'InputMask: pattern \"' + this.source + '\" does not contain any editable characters.',\n );\n }\n\n // @ts-ignore\n this.pattern = pattern;\n this.length = pattern.length;\n }\n\n formatValue(value: string[]): string[] {\n var valueBuffer = new Array(this.length);\n var valueIndex = 0;\n\n for (var i = 0, l = this.length; i < l; i++) {\n if (this.isEditableIndex(i)) {\n if (\n this.isRevealingMask &&\n value.length <= valueIndex &&\n !this.isValidAtIndex(value[valueIndex], i)\n ) {\n break;\n }\n valueBuffer[i] =\n value.length > valueIndex && this.isValidAtIndex(value[valueIndex], i)\n ? this.transform(value[valueIndex], i)\n : this.placeholderChar;\n valueIndex++;\n } else {\n valueBuffer[i] = this.pattern[i];\n // Also allow the value to contain static values from the pattern by\n // advancing its index.\n if (value.length > valueIndex && value[valueIndex] === this.pattern[i]) {\n valueIndex++;\n }\n }\n }\n\n return valueBuffer;\n }\n\n isEditableIndex(index: number) {\n return !!this._editableIndices[index];\n }\n\n isValidAtIndex(char: string, index: number) {\n return this.formatCharacters[this.pattern[index]].validate(char);\n }\n\n transform(char: string, index: number) {\n var format = this.formatCharacters[this.pattern[index]];\n return typeof format.transform == 'function' ? format.transform(char) : char;\n }\n}"]}