inputmask-core
Advanced tools
+10
-1
@@ -0,4 +1,10 @@ | ||
| ## 2.1.0 / 2015-07-15 | ||
| Added `mask.getRawValue()` to get the user's raw input, without any non-editable placeholder characters. [[muffinresearch][muffinresearch]] | ||
| Added customisation of the character used to fill in editable slots for which these is no input yet, by passing a single-character `placeholderChar` string as an option to the `InputMask` constructor. [[muffinresearch][muffinresearch]] | ||
| ## 2.0.1 / 2015-07-14 | ||
| Fixed taking input for patterns with leading static parts when the cursor or entire selection is in the static part. | ||
| Fixed taking input for patterns with leading static parts when the cursor or entire selection is in the static part. [[jordansexton][jordansexton]] | ||
@@ -55,1 +61,4 @@ ## 2.0.0 / 2015-04-03 | ||
| * Backspacing | ||
| [jordansexton]: https://github.com/jordansexton | ||
| [muffinresearch]: https://github.com/muffinresearch |
+39
-21
@@ -1,2 +0,2 @@ | ||
| 'use strict'; | ||
| 'use strict' | ||
@@ -40,3 +40,2 @@ function extend(dest, src) { | ||
| var PLACEHOLDER = '_' | ||
| var ESCAPE_CHAR = '\\' | ||
@@ -48,2 +47,3 @@ | ||
| var DEFAULT_PLACEHOLDER_CHAR = '_' | ||
| var DEFAULT_FORMAT_CHARACTERS = { | ||
@@ -73,5 +73,9 @@ '*': { | ||
| */ | ||
| function Pattern(source, formatCharacters) { | ||
| if (!(this instanceof Pattern)) { return new Pattern(source) } | ||
| function Pattern(source, formatCharacters, placeholderChar) { | ||
| if (!(this instanceof Pattern)) { | ||
| return new Pattern(source, formatCharacters, placeholderChar) | ||
| } | ||
| /** Placeholder character */ | ||
| this.placeholderChar = placeholderChar || DEFAULT_PLACEHOLDER_CHAR | ||
| /** Format character definitions. */ | ||
@@ -143,3 +147,3 @@ this.formatCharacters = formatCharacters || DEFAULT_FORMAT_CHARACTERS | ||
| ? this.transform(value[valueIndex], i) | ||
| : PLACEHOLDER) | ||
| : this.placeholderChar) | ||
| valueIndex++ | ||
@@ -188,2 +192,3 @@ } | ||
| pattern: null, | ||
| placeholderChar: DEFAULT_PLACEHOLDER_CHAR, | ||
| selection: {start: 0, end: 0}, | ||
@@ -197,2 +202,7 @@ value: '' | ||
| if (options.placeholderChar.length !== 1) { | ||
| throw new Error('InputMask: placeholderChar should be a single character.') | ||
| } | ||
| this.placeholderChar = options.placeholderChar | ||
| this.formatCharacters = mergeFormatCharacters(options.formatCharacters) | ||
@@ -244,3 +254,3 @@ this.setPattern(options.pattern, { | ||
| if (this.pattern.isEditableIndex(end)) { | ||
| this.value[end] = PLACEHOLDER | ||
| this.value[end] = this.placeholderChar | ||
| } | ||
@@ -267,5 +277,5 @@ end-- | ||
| } | ||
| if (this._lastOp != 'input' || | ||
| selectionBefore.start != selectionBefore.end || | ||
| this._lastSelection != null && selectionBefore.start != this._lastSelection.start) { | ||
| if (this._lastOp !== 'input' || | ||
| selectionBefore.start !== selectionBefore.end || | ||
| this._lastSelection !== null && selectionBefore.start !== this._lastSelection.start) { | ||
| this._history.push({value: valueBefore, selection: selectionBefore, lastOp: this._lastOp}) | ||
@@ -294,8 +304,6 @@ } | ||
| var format | ||
| // No range selected - work on the character preceding the cursor | ||
| if (this.selection.start === this.selection.end) { | ||
| if (this.pattern.isEditableIndex(this.selection.start - 1)) { | ||
| this.value[this.selection.start - 1] = PLACEHOLDER | ||
| this.value[this.selection.start - 1] = this.placeholderChar | ||
| } | ||
@@ -310,3 +318,3 @@ this.selection.start-- | ||
| if (this.pattern.isEditableIndex(end)) { | ||
| this.value[end] = PLACEHOLDER | ||
| this.value[end] = this.placeholderChar | ||
| } | ||
@@ -323,5 +331,5 @@ end-- | ||
| } | ||
| if (this._lastOp != 'backspace' || | ||
| selectionBefore.start != selectionBefore.end || | ||
| this._lastSelection != null && selectionBefore.start != this._lastSelection.start) { | ||
| if (this._lastOp !== 'backspace' || | ||
| selectionBefore.start !== selectionBefore.end || | ||
| this._lastSelection !== null && selectionBefore.start !== this._lastSelection.start) { | ||
| this._history.push({value: valueBefore, selection: selectionBefore, lastOp: this._lastOp}) | ||
@@ -371,3 +379,3 @@ } | ||
| for (var i = 0, l = input.length; | ||
| for (i = 0, l = input.length; | ||
| i < l && this.selection.start <= this.pattern.lastEditableIndex; | ||
@@ -412,5 +420,5 @@ i++) { | ||
| var value = this.getValue() | ||
| if (historyItem.value != value || | ||
| historyItem.selection.start != this.selection.start || | ||
| historyItem.selection.end != this.selection.end) { | ||
| if (historyItem.value !== value || | ||
| historyItem.selection.start !== this.selection.start || | ||
| historyItem.selection.end !== this.selection.end) { | ||
| this._history.push({value: value, selection: copy(this.selection), lastOp: this._lastOp, startUndo: true}) | ||
@@ -455,3 +463,3 @@ } | ||
| }, options) | ||
| this.pattern = new Pattern(pattern, this.formatCharacters) | ||
| this.pattern = new Pattern(pattern, this.formatCharacters, this.placeholderChar) | ||
| this.setValue(options.value) | ||
@@ -486,2 +494,12 @@ this.emptyValue = this.pattern.formatValue([]).join('') | ||
| InputMask.prototype.getRawValue = function getRawValue() { | ||
| var rawValue = [] | ||
| for (var i = 0; i < this.value.length; i++) { | ||
| if (this.pattern._editableIndices[i] === true) { | ||
| rawValue.push(this.value[i]) | ||
| } | ||
| } | ||
| return rawValue.join('') | ||
| } | ||
| InputMask.prototype._resetHistory = function _resetHistory() { | ||
@@ -488,0 +506,0 @@ this._history = [] |
+4
-1
| { | ||
| "name": "inputmask-core", | ||
| "version": "2.0.1", | ||
| "version": "2.1.0", | ||
| "description": "Standalone input mask implementation, independent of any GUI", | ||
| "main": "lib/index.js", | ||
| "scripts": { | ||
| "lint": "eslint lib test", | ||
| "test": "tape test/*.js" | ||
@@ -16,2 +17,4 @@ }, | ||
| "devDependencies": { | ||
| "eslint": "^0.24.1", | ||
| "eslint-config-standard": "^3.4.1", | ||
| "tape": "^3.5.0" | ||
@@ -18,0 +21,0 @@ }, |
+33
-1
@@ -174,2 +174,16 @@ # inputmask-core [](http://travis-ci.org/insin/inputmask-core) | ||
| ### `placeholderChar` : `string` | ||
| The character which is used to fill in editable slots for which these is no input yet when getting the mask's current value. | ||
| Defaults to `'_'`; must be a single character. | ||
| ```javascript | ||
| var mask = new InputMask({pattern: '11/11/1111', placeholderChar: ' '}) | ||
| mask.input('1') | ||
| // → true | ||
| mask.getValue() | ||
| // → '1 / / ' | ||
| ``` | ||
| ### `value` : `string` | ||
@@ -310,2 +324,20 @@ | ||
| ### `getRawValue()` : `string` | ||
| Gets the current value in the mask without non-editable pattern characters. | ||
| This can be useful when changing the mask's pattern, to "replay" the user's input so far into the new patten: | ||
| ```javascript | ||
| var mask = new InputMask({pattern: '1111 1111', value: '98781'}) | ||
| mask.getValue() | ||
| // → '9878 1___' | ||
| mask.getRawValue() | ||
| // → '98781' | ||
| mask.setPattern('111 111', {value: mask.getRawValue()}) | ||
| mask.getValue() | ||
| // → '987 81_' | ||
| ``` | ||
| ### `setValue(value: string)` | ||
@@ -335,2 +367,2 @@ | ||
| ## MIT Licensed | ||
| ## MIT Licensed |
Sorry, the diff of this file is not supported yet
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
30034
7.79%438
4.04%366
9.91%3
200%