inputmask
Advanced tools
Comparing version 5.0.8 to 5.0.9-beta.6
@@ -89,3 +89,4 @@ import {keys} from "./keycode.js"; | ||
keys.AltGraph, | ||
keys.CapsLock | ||
keys.CapsLock, | ||
keys.Dead, | ||
], | ||
@@ -92,0 +93,0 @@ isComplete: null, //override for isComplete - args => buffer, opts - return true || false |
import extend from "./extend"; | ||
import window from "../global/window"; | ||
import DependencyLib from "./inputmask.dependencyLib"; | ||
import canUseDOM from "../canUseDOM"; | ||
export {on, off, trigger, Event}; | ||
export {on, off, trigger, Evnt as Event}; | ||
const document = window.document; | ||
function isValidElement(elem) { | ||
return elem instanceof Element; | ||
return elem instanceof Element; | ||
} | ||
let Event; | ||
let Evnt; | ||
if (typeof window.CustomEvent === "function") { | ||
Event = window.CustomEvent; | ||
} else { | ||
if (canUseDOM) { | ||
Event = function (event, params) { | ||
params = params || {bubbles: false, cancelable: false, composed: true, detail: undefined}; | ||
var evt = document.createEvent("CustomEvent"); | ||
evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail); | ||
return evt; | ||
}; | ||
Event.prototype = window.Event.prototype; | ||
} | ||
Evnt = window.CustomEvent; | ||
} else if (window.Event && document && document.createEvent) { | ||
Evnt = function (event, params) { | ||
params = params || {bubbles: false, cancelable: false, composed: true, detail: undefined}; | ||
var evt = document.createEvent("CustomEvent"); | ||
evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail); | ||
return evt; | ||
}; | ||
Evnt.prototype = window.Event.prototype; | ||
} else if (typeof Event != "undefined") { //nodejs | ||
Evnt = Event; | ||
} | ||
function on(events, handler) { | ||
function addEvent(ev, namespace) { | ||
//register domevent | ||
if (elem.addEventListener) { // all browsers except IE before version 9 | ||
elem.addEventListener(ev, handler, false); | ||
} else if (elem.attachEvent) { // IE before version 9 | ||
elem.attachEvent(`on${ev}`, handler); | ||
} | ||
eventRegistry[ev] = eventRegistry[ev] || {}; | ||
eventRegistry[ev][namespace] = eventRegistry[ev][namespace] || []; | ||
eventRegistry[ev][namespace].push(handler); | ||
} | ||
function addEvent(ev, namespace) { | ||
//register domevent | ||
if (elem.addEventListener) { // all browsers except IE before version 9 | ||
elem.addEventListener(ev, handler, false); | ||
} else if (elem.attachEvent) { // IE before version 9 | ||
elem.attachEvent(`on${ev}`, handler); | ||
} | ||
eventRegistry[ev] = eventRegistry[ev] || {}; | ||
eventRegistry[ev][namespace] = eventRegistry[ev][namespace] || []; | ||
eventRegistry[ev][namespace].push(handler); | ||
} | ||
if (isValidElement(this[0])) { | ||
var eventRegistry = this[0].eventRegistry, | ||
elem = this[0]; | ||
if (isValidElement(this[0])) { | ||
var eventRegistry = this[0].eventRegistry, | ||
elem = this[0]; | ||
events.split(" ").forEach((event) => { | ||
const [ev, namespace = "global"] = event.split("."); | ||
addEvent(ev, namespace); | ||
}); | ||
} | ||
return this; | ||
events.split(" ").forEach((event) => { | ||
const [ev, namespace = "global"] = event.split("."); | ||
addEvent(ev, namespace); | ||
}); | ||
} | ||
return this; | ||
} | ||
function off(events, handler) { | ||
var eventRegistry, elem; | ||
var eventRegistry, elem; | ||
function removeEvent(ev, namespace, handler) { | ||
if (ev in eventRegistry === true) { | ||
//unbind to dom events | ||
if (elem.removeEventListener) { // all browsers except IE before version 9 | ||
elem.removeEventListener(ev, handler, false); | ||
} else if (elem.detachEvent) { // IE before version 9 | ||
elem.detachEvent(`on${ev}`, handler); | ||
} | ||
if (namespace === "global") { | ||
for (var nmsp in eventRegistry[ev]) { | ||
eventRegistry[ev][nmsp].splice(eventRegistry[ev][nmsp].indexOf(handler), 1); | ||
} | ||
} else { | ||
eventRegistry[ev][namespace].splice(eventRegistry[ev][namespace].indexOf(handler), 1); | ||
} | ||
} | ||
} | ||
function removeEvent(ev, namespace, handler) { | ||
if (ev in eventRegistry === true) { | ||
//unbind to dom events | ||
if (elem.removeEventListener) { // all browsers except IE before version 9 | ||
elem.removeEventListener(ev, handler, false); | ||
} else if (elem.detachEvent) { // IE before version 9 | ||
elem.detachEvent(`on${ev}`, handler); | ||
} | ||
if (namespace === "global") { | ||
for (var nmsp in eventRegistry[ev]) { | ||
eventRegistry[ev][nmsp].splice(eventRegistry[ev][nmsp].indexOf(handler), 1); | ||
} | ||
} else { | ||
eventRegistry[ev][namespace].splice(eventRegistry[ev][namespace].indexOf(handler), 1); | ||
} | ||
} | ||
} | ||
function resolveNamespace(ev, namespace) { | ||
var evts = [], | ||
hndx, hndL; | ||
if (ev.length > 0) { | ||
if (handler === undefined) { | ||
for (hndx = 0, hndL = eventRegistry[ev][namespace].length; hndx < hndL; hndx++) { | ||
evts.push({ | ||
ev: ev, | ||
namespace: namespace && namespace.length > 0 ? namespace : "global", | ||
handler: eventRegistry[ev][namespace][hndx] | ||
}); | ||
} | ||
} else { | ||
evts.push({ | ||
ev: ev, | ||
namespace: namespace && namespace.length > 0 ? namespace : "global", | ||
handler: handler | ||
}); | ||
} | ||
} else if (namespace.length > 0) { | ||
for (var evNdx in eventRegistry) { | ||
for (var nmsp in eventRegistry[evNdx]) { | ||
if (nmsp === namespace) { | ||
if (handler === undefined) { | ||
for (hndx = 0, hndL = eventRegistry[evNdx][nmsp].length; hndx < hndL; hndx++) { | ||
evts.push({ | ||
ev: evNdx, | ||
namespace: nmsp, | ||
handler: eventRegistry[evNdx][nmsp][hndx] | ||
}); | ||
} | ||
} else { | ||
evts.push({ | ||
ev: evNdx, | ||
namespace: nmsp, | ||
handler: handler | ||
}); | ||
} | ||
} | ||
} | ||
} | ||
} | ||
function resolveNamespace(ev, namespace) { | ||
var evts = [], | ||
hndx, hndL; | ||
if (ev.length > 0) { | ||
if (handler === undefined) { | ||
for (hndx = 0, hndL = eventRegistry[ev][namespace].length; hndx < hndL; hndx++) { | ||
evts.push({ | ||
ev: ev, | ||
namespace: namespace && namespace.length > 0 ? namespace : "global", | ||
handler: eventRegistry[ev][namespace][hndx] | ||
}); | ||
} | ||
} else { | ||
evts.push({ | ||
ev: ev, | ||
namespace: namespace && namespace.length > 0 ? namespace : "global", | ||
handler: handler | ||
}); | ||
} | ||
} else if (namespace.length > 0) { | ||
for (var evNdx in eventRegistry) { | ||
for (var nmsp in eventRegistry[evNdx]) { | ||
if (nmsp === namespace) { | ||
if (handler === undefined) { | ||
for (hndx = 0, hndL = eventRegistry[evNdx][nmsp].length; hndx < hndL; hndx++) { | ||
evts.push({ | ||
ev: evNdx, | ||
namespace: nmsp, | ||
handler: eventRegistry[evNdx][nmsp][hndx] | ||
}); | ||
} | ||
} else { | ||
evts.push({ | ||
ev: evNdx, | ||
namespace: nmsp, | ||
handler: handler | ||
}); | ||
} | ||
} | ||
} | ||
} | ||
} | ||
return evts; | ||
} | ||
return evts; | ||
} | ||
if (isValidElement(this[0]) && events) { | ||
eventRegistry = this[0].eventRegistry; | ||
elem = this[0]; | ||
if (isValidElement(this[0]) && events) { | ||
eventRegistry = this[0].eventRegistry; | ||
elem = this[0]; | ||
events.split(" ").forEach((event) => { | ||
const [ev, namespace] = event.split("."); | ||
resolveNamespace(ev, namespace).forEach(({ev: ev1, handler: handler1, namespace: namespace1}) => { | ||
removeEvent(ev1, namespace1, handler1); | ||
}); | ||
}); | ||
} | ||
return this; | ||
events.split(" ").forEach((event) => { | ||
const [ev, namespace] = event.split("."); | ||
resolveNamespace(ev, namespace).forEach(({ev: ev1, handler: handler1, namespace: namespace1}) => { | ||
removeEvent(ev1, namespace1, handler1); | ||
}); | ||
}); | ||
} | ||
return this; | ||
} | ||
function trigger(events /* , args... */) { | ||
if (isValidElement(this[0])) { | ||
var eventRegistry = this[0].eventRegistry, | ||
elem = this[0]; | ||
var _events = typeof events === "string" ? events.split(" ") : [events.type]; | ||
for (var endx = 0; endx < _events.length; endx++) { | ||
var nsEvent = _events[endx].split("."), | ||
ev = nsEvent[0], | ||
namespace = nsEvent[1] || "global"; | ||
if (document !== undefined && namespace === "global") { | ||
//trigger domevent | ||
var evnt, i, params = { | ||
bubbles: true, | ||
cancelable: true, | ||
composed: true, | ||
detail: arguments[1] | ||
}; | ||
// The custom event that will be created | ||
if (document.createEvent) { | ||
try { | ||
switch (ev) { | ||
case "input": | ||
params.inputType = "insertText"; | ||
evnt = new InputEvent(ev, params); | ||
break; | ||
default: | ||
evnt = new CustomEvent(ev, params); | ||
} | ||
} catch (e) { | ||
evnt = document.createEvent("CustomEvent"); | ||
evnt.initCustomEvent(ev, params.bubbles, params.cancelable, params.detail); | ||
} | ||
if (events.type) extend(evnt, events); | ||
elem.dispatchEvent(evnt); | ||
} else { | ||
evnt = document.createEventObject(); | ||
evnt.eventType = ev; | ||
evnt.detail = arguments[1]; | ||
if (events.type) extend(evnt, events); | ||
elem.fireEvent("on" + evnt.eventType, evnt); | ||
} | ||
} else if (eventRegistry[ev] !== undefined) { | ||
arguments[0] = arguments[0].type ? arguments[0] : DependencyLib.Event(arguments[0]); | ||
arguments[0].detail = arguments.slice(1); | ||
if (isValidElement(this[0])) { | ||
var eventRegistry = this[0].eventRegistry, | ||
elem = this[0]; | ||
var _events = typeof events === "string" ? events.split(" ") : [events.type]; | ||
for (var endx = 0; endx < _events.length; endx++) { | ||
var nsEvent = _events[endx].split("."), | ||
ev = nsEvent[0], | ||
namespace = nsEvent[1] || "global"; | ||
if (document !== undefined && namespace === "global") { | ||
//trigger domevent | ||
var evnt, i, params = { | ||
bubbles: true, | ||
cancelable: true, | ||
composed: true, | ||
detail: arguments[1] | ||
}; | ||
// The custom event that will be created | ||
if (document.createEvent) { | ||
try { | ||
switch (ev) { | ||
case "input": | ||
params.inputType = "insertText"; | ||
evnt = new InputEvent(ev, params); | ||
break; | ||
default: | ||
evnt = new CustomEvent(ev, params); | ||
} | ||
} catch (e) { | ||
evnt = document.createEvent("CustomEvent"); | ||
evnt.initCustomEvent(ev, params.bubbles, params.cancelable, params.detail); | ||
} | ||
if (events.type) extend(evnt, events); | ||
elem.dispatchEvent(evnt); | ||
} else { | ||
evnt = document.createEventObject(); | ||
evnt.eventType = ev; | ||
evnt.detail = arguments[1]; | ||
if (events.type) extend(evnt, events); | ||
elem.fireEvent("on" + evnt.eventType, evnt); | ||
} | ||
} else if (eventRegistry[ev] !== undefined) { | ||
arguments[0] = arguments[0].type ? arguments[0] : DependencyLib.Event(arguments[0]); | ||
arguments[0].detail = arguments.slice(1); | ||
const registry = eventRegistry[ev], | ||
handlers = namespace === "global" ? Object.values(registry).flat() : registry[namespace]; | ||
handlers.forEach(handler => handler.apply(elem, arguments)); | ||
} | ||
} | ||
} | ||
return this; | ||
const registry = eventRegistry[ev], | ||
handlers = namespace === "global" ? Object.values(registry).flat() : registry[namespace]; | ||
handlers.forEach(handler => handler.apply(elem, arguments)); | ||
} | ||
} | ||
} | ||
return this; | ||
} |
@@ -5,5 +5,5 @@ import window from "./global/window"; | ||
ie = (ua.indexOf("MSIE ") > 0) || (ua.indexOf("Trident/") > 0), | ||
mobile = (navigator.userAgentData && navigator.userAgentData.mobile) || (window.navigator && window.navigator.maxTouchPoints) || "ontouchstart" in window, //not entirely correct but will currently do | ||
mobile = (window.navigator && window.navigator.userAgentData && window.navigator.userAgentData.mobile) || (window.navigator && window.navigator.maxTouchPoints) || "ontouchstart" in window, //not entirely correct but will currently do | ||
iphone = /iphone/i.test(ua); | ||
export {ie, mobile, iphone}; |
@@ -15,2 +15,3 @@ import { | ||
import {getPlaceholder, getTest} from "./validation-tests"; | ||
import window from "./global/window"; | ||
@@ -210,2 +211,3 @@ export {EventHandlers}; | ||
const inputmask = this.inputmask, opts = inputmask.opts, $ = inputmask.dependencyLib; | ||
// console.log(e.inputType); | ||
@@ -365,3 +367,3 @@ | ||
var input = this, | ||
nptValue = inputmask?._valueGet(); | ||
nptValue = inputmask && inputmask._valueGet(); | ||
@@ -378,3 +380,3 @@ if (opts.showMaskOnFocus) { | ||
} | ||
inputmask.undoValue = inputmask?._valueGet(true); | ||
inputmask.undoValue = inputmask && inputmask._valueGet(true); | ||
}, | ||
@@ -414,3 +416,3 @@ invalidEvent: function (e) { | ||
clipDataText = inputmask.isRTL ? clipData.reverse().join("") : clipData.join(""); | ||
if (window.navigator.clipboard) window.navigator.clipboard.writeText(clipDataText); | ||
if (window.navigator && window.navigator.clipboard) window.navigator.clipboard.writeText(clipDataText); | ||
else if (window.clipboardData && window.clipboardData.getData) { // IE | ||
@@ -459,5 +461,9 @@ window.clipboardData.setData("Text", clipDataText); | ||
if (inputmask.undoValue !== inputmask._valueGet(true)) { | ||
inputmask.undoValue = inputmask._valueGet(true); | ||
$input.trigger("change"); | ||
nptValue = inputmask._valueGet(true); | ||
if (inputmask.undoValue !== nptValue) { | ||
if (nptValue != "" || (inputmask.undoValue != getBufferTemplate.call(inputmask).join("") || (inputmask.undoValue == getBufferTemplate.call(inputmask).join("") && inputmask.maskset.validPositions.length > 0))) | ||
{ | ||
inputmask.undoValue = nptValue; | ||
$input.trigger("change"); | ||
} | ||
} | ||
@@ -464,0 +470,0 @@ } |
@@ -538,3 +538,3 @@ /* | ||
buffer[i] = _buffer[i]; | ||
delete maskset.validPositions[i]; | ||
maskset.validPositions.splice(i, 1); | ||
} | ||
@@ -541,0 +541,0 @@ } |
@@ -494,3 +494,3 @@ /* | ||
for (let i = leadingzeroes[0].length - offset; i > 0; i--) { | ||
delete this.maskset.validPositions[caretNdx + i]; | ||
this.maskset.validPositions.splice(caretNdx + i,1); | ||
delete buffer[caretNdx + i]; | ||
@@ -497,0 +497,0 @@ } |
@@ -1,3 +0,7 @@ | ||
import canUseDOM from "../canUseDOM"; | ||
const canUseDOM = !!( | ||
typeof window !== "undefined" && | ||
window.document && | ||
window.document.createElement | ||
); | ||
export default canUseDOM ? window : {}; |
@@ -19,3 +19,2 @@ /* | ||
import defaults from "./defaults"; | ||
import canUseDOM from "./canUseDOM"; | ||
@@ -25,6 +24,2 @@ const document = window.document, dataKey = "_inputmask_opts"; | ||
function Inputmask(alias, options, internal) { | ||
if (!canUseDOM) { | ||
return; | ||
} | ||
//allow instanciating without new | ||
@@ -31,0 +26,0 @@ if (!(this instanceof Inputmask)) { |
import window from "./global/window"; | ||
import Inputmask from "./inputmask"; | ||
import canUseDOM from "./canUseDOM"; | ||
@@ -9,26 +8,26 @@ const document = window.document; | ||
// integrate shadowroot into maskcope | ||
if (canUseDOM && document && document.head && document.head.attachShadow && window.customElements && window.customElements.get("input-mask") === undefined) { | ||
class InputmaskElement extends HTMLElement { | ||
constructor() { | ||
super(); | ||
var attributeNames = this.getAttributeNames(), | ||
shadow = this.attachShadow({mode: "closed"}), | ||
input = document.createElement("input"); | ||
input.type = "text"; | ||
shadow.appendChild(input); | ||
if (document && document.head && document.head.attachShadow && window.customElements && window.customElements.get("input-mask") === undefined) { | ||
class InputmaskElement extends HTMLElement { | ||
constructor() { | ||
super(); | ||
var attributeNames = this.getAttributeNames(), | ||
shadow = this.attachShadow({mode: "closed"}), | ||
input = document.createElement("input"); | ||
input.type = "text"; | ||
shadow.appendChild(input); | ||
for (var attr in attributeNames) { | ||
if (Object.prototype.hasOwnProperty.call(attributeNames, attr)) { | ||
input.setAttribute(attributeNames[attr], this.getAttribute(attributeNames[attr])); | ||
} | ||
} | ||
for (var attr in attributeNames) { | ||
if (Object.prototype.hasOwnProperty.call(attributeNames, attr)) { | ||
input.setAttribute(attributeNames[attr], this.getAttribute(attributeNames[attr])); | ||
} | ||
} | ||
var im = new Inputmask(); | ||
im.dataAttribute = ""; | ||
im.mask(input); | ||
input.inputmask.shadowRoot = shadow; //make the shadowRoot available | ||
} | ||
} | ||
var im = new Inputmask(); | ||
im.dataAttribute = ""; | ||
im.mask(input); | ||
input.inputmask.shadowRoot = shadow; //make the shadowRoot available | ||
} | ||
} | ||
window.customElements.define("input-mask", InputmaskElement); | ||
window.customElements.define("input-mask", InputmaskElement); | ||
} |
@@ -45,3 +45,4 @@ export {keyCode, toKey, toKeyCode, keys}; | ||
"F11": 122, | ||
"F12": 123 | ||
"F12": 123, | ||
"Dead": 221 | ||
}; | ||
@@ -48,0 +49,0 @@ |
@@ -0,1 +1,2 @@ | ||
import window from "./global/window"; | ||
import { | ||
@@ -2,0 +3,0 @@ determineTestTemplate, |
@@ -92,3 +92,3 @@ import { | ||
} | ||
delete maskset.validPositions[i]; | ||
maskset.validPositions.splice(i, 1); | ||
} | ||
@@ -532,3 +532,3 @@ if (resultPos === -1 && c !== undefined) { | ||
for (i = start; i < end; i++) { | ||
delete maskset.validPositions[i]; | ||
maskset.validPositions.splice(i); | ||
} | ||
@@ -624,3 +624,3 @@ p = start; | ||
for (i = lvp; i >= begin; i--) { | ||
delete maskset.validPositions[i]; | ||
maskset.validPositions.splice(i); | ||
if (validTest === undefined) delete maskset.tests[i + 1]; | ||
@@ -627,0 +627,0 @@ } |
{ | ||
"name": "inputmask", | ||
"version": "5.0.8", | ||
"version": "5.0.9-beta.6", | ||
"description": "Inputmask is a javascript library which creates an input mask. Inputmask can run against vanilla javascript, jQuery and jqlite.", | ||
@@ -5,0 +5,0 @@ "main": "dist/inputmask.js", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
874943
42
11683
3