🚀 Big News:Socket Has Acquired Secure Annex.Learn More
Socket
Book a DemoSign in
Socket

polythene-core-textfield

Package Overview
Dependencies
Maintainers
1
Versions
37
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

polythene-core-textfield - npm Package Compare versions

Comparing version
1.0.0
to
1.1.0
+352
-339
dist/polythene-core-textfield.js
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('polythene-core'), require('polythene-theme')) :
typeof define === 'function' && define.amd ? define(['exports', 'polythene-core', 'polythene-theme'], factory) :
(factory((global.polythene = {}),global['polythene-core'],global['polythene-theme']));
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('polythene-core'), require('polythene-theme')) :
typeof define === 'function' && define.amd ? define(['exports', 'polythene-core', 'polythene-theme'], factory) :
(factory((global.polythene = {}),global['polythene-core'],global['polythene-theme']));
}(this, (function (exports,polytheneCore,polytheneTheme) { 'use strict';
var classes = {
component: "pe-textfield",
var classes = {
component: "pe-textfield",
// elements
counter: "pe-textfield__counter",
error: "pe-textfield__error",
errorPlaceholder: "pe-textfield__error-placeholder",
focusHelp: "pe-textfield__help-focus",
help: "pe-textfield__help",
input: "pe-textfield__input",
inputArea: "pe-textfield__input-area",
label: "pe-textfield__label",
optionalIndicator: "pe-textfield__optional-indicator",
requiredIndicator: "pe-textfield__required-indicator",
// elements
counter: "pe-textfield__counter",
error: "pe-textfield__error",
errorPlaceholder: "pe-textfield__error-placeholder",
focusHelp: "pe-textfield__help-focus",
help: "pe-textfield__help",
input: "pe-textfield__input",
inputArea: "pe-textfield__input-area",
label: "pe-textfield__label",
optionalIndicator: "pe-textfield__optional-indicator",
requiredIndicator: "pe-textfield__required-indicator",
// states
hasCounter: "pe-textfield--counter",
hasFloatingLabel: "pe-textfield--floating-label",
hasFullWidth: "pe-textfield--full-width",
hideClear: "pe-textfield--hide-clear",
hideSpinner: "pe-textfield--hide-spinner",
hideValidation: "pe-textfield--hide-validation",
isDense: "pe-textfield--dense",
isRequired: "pe-textfield--required",
stateDirty: "pe-textfield--dirty",
stateDisabled: "pe-textfield--disabled",
stateFocused: "pe-textfield--focused",
stateInvalid: "pe-textfield--invalid",
stateReadonly: "pe-textfield--readonly"
};
// states
hasCounter: "pe-textfield--counter",
hasFloatingLabel: "pe-textfield--floating-label",
hasFullWidth: "pe-textfield--full-width",
hideClear: "pe-textfield--hide-clear",
hideSpinner: "pe-textfield--hide-spinner",
hideValidation: "pe-textfield--hide-validation",
isDense: "pe-textfield--dense",
isRequired: "pe-textfield--required",
stateDirty: "pe-textfield--dirty",
stateDisabled: "pe-textfield--disabled",
stateFocused: "pe-textfield--focused",
stateInvalid: "pe-textfield--invalid",
stateReadonly: "pe-textfield--readonly"
};
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var getElement = function getElement(vnode) {
return vnode.attrs.element || "div";
};
var getElement = function getElement(vnode) {
return vnode.attrs.element || "div";
};
var DEFAULT_VALID_STATE = {
invalid: false,
message: undefined
};
var DEFAULT_VALID_STATE = {
invalid: false,
message: undefined
};
var validateCustom = function validateCustom(state, attrs) {
var el = state.inputEl();
if (!el) {
return DEFAULT_VALID_STATE;
}
var validState = attrs.validate(state.inputEl().value);
return {
invalid: validState && !validState.valid,
message: validState && validState.error
var validateCustom = function validateCustom(state, attrs) {
var el = state.inputEl();
if (!el) {
return DEFAULT_VALID_STATE;
}
var validState = attrs.validate(state.inputEl().value);
return {
invalid: validState && !validState.valid,
message: validState && validState.error
};
};
};
var validateCounter = function validateCounter(state, attrs) {
return {
invalid: state.inputEl().value.length > attrs.counter,
message: attrs.error
var validateCounter = function validateCounter(state, attrs) {
return {
invalid: state.inputEl().value.length > attrs.counter,
message: attrs.error
};
};
};
var validateHTML = function validateHTML(state, attrs) {
return {
invalid: !state.inputEl().checkValidity(),
message: attrs.error
var validateHTML = function validateHTML(state, attrs) {
return {
invalid: !state.inputEl().checkValidity(),
message: attrs.error
};
};
};
var getValidStatus = function getValidStatus(state, attrs) {
var status = DEFAULT_VALID_STATE;
var getValidStatus = function getValidStatus(state, attrs) {
var status = DEFAULT_VALID_STATE;
// attrs.validateResetOnClear: reset validation when field is cleared
if (state.isTouched() && state.isInvalid() && state.inputEl().value.length === 0 && attrs.validateResetOnClear) {
state.isTouched(false);
state.isInvalid(false);
state.error(undefined);
}
if (!status.invalid && attrs.counter) {
status = validateCounter(state, attrs);
}
if (!status.invalid && state.inputEl() && state.inputEl().checkValidity) {
status = validateHTML(state, attrs);
}
if (!status.invalid && attrs.validate) {
status = validateCustom(state, attrs);
}
return status;
};
// attrs.validateResetOnClear: reset validation when field is cleared
if (state.isTouched() && state.isInvalid() && state.inputEl().value.length === 0 && attrs.validateResetOnClear) {
state.isTouched(false);
state.isInvalid(false);
state.error(undefined);
}
if (!status.invalid && attrs.counter) {
status = validateCounter(state, attrs);
}
if (!status.invalid && state.inputEl() && state.inputEl().checkValidity) {
status = validateHTML(state, attrs);
}
if (!status.invalid && attrs.validate) {
status = validateCustom(state, attrs);
}
return status;
};
var checkValidity = function checkValidity(vnode) {
var state = vnode.state;
var attrs = vnode.attrs;
// default
var checkValidity = function checkValidity(vnode) {
var state = vnode.state;
var attrs = vnode.attrs;
// default
var status = attrs.valid !== undefined ? {
invalid: !attrs.valid,
message: attrs.error
} : !state.isTouched() && !attrs.validateAtStart ? DEFAULT_VALID_STATE : getValidStatus(state, attrs);
var previousInvalid = state.isInvalid();
state.error(status.message);
if (status.invalid !== previousInvalid) {
state.isInvalid(status.invalid);
}
if (!status.invalid) {
state.error(undefined);
}
};
var status = attrs.valid !== undefined ? {
invalid: !attrs.valid,
message: attrs.error
} : !state.isTouched() && !attrs.validateAtStart ? DEFAULT_VALID_STATE : getValidStatus(state, attrs);
var previousInvalid = state.isInvalid();
state.error(status.message);
var notifyState = function notifyState(vnode) {
var state = vnode.state;
var attrs = vnode.attrs;
if (attrs.onChange) {
var status = getValidStatus(state, attrs);
attrs.onChange({
focus: state.hasFocus(),
dirty: state.isDirty(),
el: state.inputEl(),
invalid: status.invalid,
error: status.error,
value: state.inputEl().value,
setInputState: function setInputState(newState) {
return state.setInputState(_extends({}, newState, { vnode: vnode }));
}
});
}
};
if (status.invalid !== previousInvalid) {
state.isInvalid(status.invalid);
}
if (!status.invalid) {
state.error(undefined);
}
};
var ignoreEvent = function ignoreEvent(attrs, name) {
return attrs.ignoreEvents && attrs.ignoreEvents.indexOf(name) !== -1;
};
var notifyState = function notifyState(vnode) {
var state = vnode.state;
var attrs = vnode.attrs;
if (attrs.onChange) {
var status = getValidStatus(state, attrs);
attrs.onChange({
focus: state.hasFocus(),
dirty: state.isDirty(),
el: state.inputEl(),
invalid: status.invalid,
error: status.error,
value: state.inputEl().value,
setInputState: function setInputState(newState) {
return state.setInputState(newState);
}
});
}
};
var getInitialState = function getInitialState(vnode, createStream, _ref) {
var k = _ref.keys;
var ignoreEvent = function ignoreEvent(attrs, name) {
return attrs.ignoreEvents && attrs.ignoreEvents.indexOf(name) !== -1;
};
var attrs = vnode.attrs;
var getInitialState = function getInitialState(vnode, createStream) {
var attrs = vnode.attrs;
var defaultValue = attrs.defaultValue !== undefined && attrs.defaultValue !== null ? attrs.defaultValue.toString() : attrs.value !== undefined && attrs.value !== null ? attrs.value.toString() : "";
var defaultValue = attrs.defaultValue !== undefined && attrs.defaultValue !== null ? attrs.defaultValue.toString() : attrs.value !== undefined && attrs.value !== null ? attrs.value.toString() : "";
var el = createStream(null);
var inputEl = createStream(null);
var setInputState = createStream({});
var error = createStream(attrs.error);
var hasFocus = createStream(false);
var isTouched = createStream(false); // true when any change is made
var isDirty = createStream(defaultValue !== ""); // true for any input
var isInvalid = createStream(false);
var previousValue = createStream(undefined);
var didSetFocusTime = 0;
var showErrorPlaceholder = !!(attrs.valid !== undefined || attrs.validate || attrs.min || attrs.max || attrs[k.minlength] || attrs[k.maxlength] || attrs.required || attrs.pattern);
var el = createStream(null);
var inputEl = createStream(null);
var setInputState = createStream({});
var error = createStream(attrs.error);
var hasFocus = createStream(false);
var isTouched = createStream(false); // true when any change is made
var isDirty = createStream(defaultValue !== ""); // true for any input
var isInvalid = createStream(false);
var previousValue = createStream(undefined);
var didSetFocusTime = 0;
return {
defaultValue: defaultValue,
didSetFocusTime: didSetFocusTime,
el: el,
error: error,
hasFocus: hasFocus,
inputEl: inputEl,
isDirty: isDirty,
isInvalid: isInvalid,
isTouched: isTouched,
previousValue: previousValue,
setInputState: setInputState,
redrawOnUpdate: createStream.merge([inputEl, isInvalid, isDirty])
return {
defaultValue: defaultValue,
didSetFocusTime: didSetFocusTime,
el: el,
error: error,
hasFocus: hasFocus,
inputEl: inputEl,
isDirty: isDirty,
isInvalid: isInvalid,
isTouched: isTouched,
previousValue: previousValue,
setInputState: setInputState,
showErrorPlaceholder: showErrorPlaceholder,
redrawOnUpdate: createStream.merge([inputEl, isInvalid, isDirty])
};
};
};
var onMount = function onMount(vnode) {
var dom = vnode.dom;
var state = vnode.state;
var attrs = vnode.attrs;
var onMount = function onMount(vnode) {
var dom = vnode.dom;
var state = vnode.state;
var attrs = vnode.attrs;
state.el(dom);
var inputType = attrs.multiLine ? "textarea" : "input";
var inputEl = dom.querySelector(inputType);
vnode.state.inputEl(inputEl);
state.inputEl().value = state.defaultValue;
state.el(dom);
var inputType = attrs.multiLine ? "textarea" : "input";
var inputEl = dom.querySelector(inputType);
vnode.state.inputEl(inputEl);
state.inputEl().value = state.defaultValue;
state.setInputState.map(function (_ref) {
var type = _ref.type,
focus = _ref.focus,
value = _ref.value;
return value !== undefined ? state.inputEl().value = value : null, focus !== undefined && (state.hasFocus(focus), focus ? state.inputEl().focus() : state.inputEl().blur()), type === "input" && (attrs.validateOnInput || attrs.counter) && state.isTouched(state.inputEl().value !== state.defaultValue), type !== "input" && state.isTouched(state.inputEl().value !== state.defaultValue), type === "onblur" && state.isTouched(true), state.isDirty(state.inputEl().value !== ""), checkValidity(vnode), notifyState(vnode), state.previousValue(state.inputEl().value);
});
state.setInputState.map(function (_ref2) {
var vnode = _ref2.vnode,
type = _ref2.type,
focus = _ref2.focus,
value = _ref2.value;
notifyState(vnode);
};
if (vnode) {
value !== undefined ? state.inputEl().value = value : null;
focus !== undefined && (state.hasFocus(focus), focus ? state.inputEl().focus() : state.inputEl().blur());
type === "input" && (attrs.validateOnInput || attrs.counter) && state.isTouched(state.inputEl().value !== state.defaultValue);
type !== "input" && state.isTouched(state.inputEl().value !== state.defaultValue);
type === "onblur" && state.isTouched(true);
state.isDirty(state.inputEl().value !== "");
checkValidity(vnode);
notifyState(vnode);
state.previousValue(state.inputEl().value);
}
});
var onUpdate = function onUpdate(vnode) {
var state = vnode.state;
var attrs = vnode.attrs;
checkValidity(vnode);
notifyState(vnode);
};
var inputEl = state.inputEl();
var value = attrs.value !== undefined && attrs.value !== null ? attrs.value : inputEl ? inputEl.value : state.previousValue();
var valueStr = value === undefined || value === null ? "" : value.toString();
var onUpdate = function onUpdate(vnode) {
var state = vnode.state;
var attrs = vnode.attrs;
checkValidity(vnode);
if (inputEl && state.previousValue() !== valueStr) {
inputEl.value = valueStr;
state.previousValue(valueStr);
state.setInputState({ type: "input" });
}
};
var inputEl = state.inputEl();
var value = attrs.value !== undefined && attrs.value !== null ? attrs.value : inputEl ? inputEl.value : state.previousValue();
var valueStr = value === undefined || value === null ? "" : value.toString();
var createProps = function createProps(vnode, _ref2) {
var k = _ref2.keys;
if (inputEl && state.previousValue() !== valueStr) {
inputEl.value = valueStr;
state.previousValue(valueStr);
state.setInputState({ vnode: vnode, type: "input" });
}
};
var state = vnode.state;
var attrs = vnode.attrs;
var isInvalid = state.isInvalid();
var createProps = function createProps(vnode, _ref3) {
var k = _ref3.keys;
return _extends({}, polytheneCore.filterSupportedAttributes(attrs), {
className: [classes.component, isInvalid ? classes.stateInvalid : "", state.hasFocus() ? classes.stateFocused : "", state.isDirty() ? classes.stateDirty : "", attrs.floatingLabel ? classes.hasFloatingLabel : "", attrs.disabled ? classes.stateDisabled : "", attrs.readonly ? classes.stateReadonly : "", attrs.dense ? classes.isDense : "", attrs.required ? classes.isRequired : "", attrs.fullWidth ? classes.hasFullWidth : "", attrs.counter ? classes.hasCounter : "", attrs.hideSpinner !== false && attrs.hideSpinner !== undefined ? classes.hideSpinner : "", attrs.hideClear !== false && attrs.hideClear !== undefined ? classes.hideClear : "", attrs.hideValidation ? classes.hideValidation : "", attrs.tone === "dark" ? "pe-dark-tone" : null, attrs.tone === "light" ? "pe-light-tone" : null, attrs.className || attrs[k.class]].join(" ")
});
};
var state = vnode.state;
var attrs = vnode.attrs;
var isInvalid = state.isInvalid();
var createContent = function createContent(vnode, _ref3) {
var h = _ref3.renderer,
k = _ref3.keys;
return _extends({}, polytheneCore.filterSupportedAttributes(attrs), {
className: [classes.component, isInvalid ? classes.stateInvalid : "", state.hasFocus() ? classes.stateFocused : "", state.isDirty() ? classes.stateDirty : "", attrs.floatingLabel ? classes.hasFloatingLabel : "", attrs.disabled ? classes.stateDisabled : "", attrs.readonly ? classes.stateReadonly : "", attrs.dense ? classes.isDense : "", attrs.required ? classes.isRequired : "", attrs.fullWidth ? classes.hasFullWidth : "", attrs.counter ? classes.hasCounter : "", attrs.hideSpinner !== false && attrs.hideSpinner !== undefined ? classes.hideSpinner : "", attrs.hideClear !== false && attrs.hideClear !== undefined ? classes.hideClear : "", attrs.hideValidation ? classes.hideValidation : "", attrs.tone === "dark" ? "pe-dark-tone" : null, attrs.tone === "light" ? "pe-light-tone" : null, attrs.className || attrs[k.class]].join(" ")
});
};
var state = vnode.state;
var attrs = vnode.attrs;
var createContent = function createContent(vnode, _ref4) {
var h = _ref4.renderer,
k = _ref4.keys;
var inputEl = state.inputEl();
var error = attrs.error || state.error();
var isInvalid = state.isInvalid();
var inputType = attrs.multiLine ? "textarea" : "input";
var type = attrs.multiLine ? null : !attrs.type || attrs.type === "submit" || attrs.type === "search" ? "text" : attrs.type;
var showError = isInvalid && error !== undefined;
var state = vnode.state;
var attrs = vnode.attrs;
var validates = !!(attrs.valid !== undefined || attrs.validate || attrs.min || attrs.max || attrs[k.minlength] || attrs[k.maxlength] || attrs.required || attrs.pattern);
var inactive = attrs.disabled || attrs[k.readonly];
var inputEl = state.inputEl();
var error = attrs.error || state.error();
var isInvalid = state.isInvalid();
var inputType = attrs.multiLine ? "textarea" : "input";
var type = attrs.multiLine ? null : !attrs.type || attrs.type === "submit" || attrs.type === "search" ? "text" : attrs.type;
var showError = isInvalid && error !== undefined;
var requiredIndicator = attrs.required && attrs.requiredIndicator !== "" ? h("span", {
key: "required",
className: classes.requiredIndicator
}, attrs.requiredIndicator || "*") : null;
var optionalIndicator = !attrs.required && attrs.optionalIndicator ? h("span", {
key: "optional",
className: classes.optionalIndicator
}, attrs.optionalIndicator) : null;
var label = attrs.label ? [attrs.label, requiredIndicator, optionalIndicator] : null;
var inactive = attrs.disabled || attrs[k.readonly];
return [h("div", {
className: classes.inputArea,
key: "input-area"
}, [label ? h("label", {
key: "label",
className: classes.label
}, label) : null, h(inputType, _extends({}, {
key: "input",
className: classes.input,
disabled: attrs.disabled
}, type ? { type: type } : null, attrs.name ? { name: attrs.name } : null, !ignoreEvent(attrs, k.onclick) ? _defineProperty({}, k.onclick, function () {
if (inactive) {
return;
}
// in case the browser does not give the field focus,
// for instance when the user tapped to the current field off screen
state.setInputState({ focus: true });
notifyState(vnode);
}) : null, !ignoreEvent(attrs, k.onfocus) ? _defineProperty({}, k.onfocus, function () {
if (inactive) {
return;
}
state.setInputState({ focus: true });
var requiredIndicator = attrs.required && attrs.requiredIndicator !== "" ? h("span", {
key: "required",
className: classes.requiredIndicator
}, attrs.requiredIndicator || "*") : null;
var optionalIndicator = !attrs.required && attrs.optionalIndicator ? h("span", {
key: "optional",
className: classes.optionalIndicator
}, attrs.optionalIndicator) : null;
var label = attrs.label ? [attrs.label, requiredIndicator, optionalIndicator] : null;
// set CSS class manually in case field gets focus but is off screen
// and no redraw is triggered
// at the next redraw state.hasFocus() will be read and the focus class be set
// in the props.class statement
if (state.el()) {
state.el().classList.add(classes.stateFocused);
}
notifyState(vnode);
}) : null, !ignoreEvent(attrs, k.onblur) ? _defineProperty({}, k.onblur, function () {
state.setInputState({ type: "onblur", focus: false });
// same principle as onfocus
state.el().classList.remove(classes.stateFocused);
}) : null, !ignoreEvent(attrs, k.oninput) ? _defineProperty({}, k.oninput, function () {
// default input event
// may be overwritten by attrs.events
state.setInputState({ type: "input" });
}) : null, !ignoreEvent(attrs, k.onkeydown) ? _defineProperty({}, k.onkeydown, function (e) {
if (e.key === "Enter") {
state.isTouched(true);
} else if (e.key === "Escape" || e.key === "Esc") {
state.setInputState({ focus: false });
}
}) : null, attrs.events ? attrs.events : null, // NOTE: may overwrite oninput
attrs.required !== undefined && !!attrs.required ? { required: true } : null, attrs[k.readonly] !== undefined && !!attrs[k.readonly] ? _defineProperty({}, k.readonly, true) : null, attrs.pattern !== undefined ? { pattern: attrs.pattern } : null, attrs[k.maxlength] !== undefined ? _defineProperty({}, k.maxlength, attrs[k.maxlength]) : null, attrs[k.minlength] !== undefined ? _defineProperty({}, k.minlength, attrs[k.minlength]) : null, attrs.max !== undefined ? { max: attrs.max } : null, attrs.min !== undefined ? { min: attrs.min } : null, attrs[k.autofocus] !== undefined ? _defineProperty({}, k.autofocus, attrs[k.autofocus]) : null, attrs[k.tabindex] !== undefined ? _defineProperty({}, k.tabindex, attrs[k.tabindex]) : null, attrs.rows !== undefined ? { rows: attrs.rows } : null))]), attrs.counter ? h("div", {
key: "counter",
className: classes.counter
}, (inputEl && inputEl.value.length || 0) + " / " + attrs.counter) : null, attrs.help && !showError ? h("div", {
key: "help",
className: [classes.help, attrs.focusHelp ? classes.focusHelp : null].join(" ")
}, attrs.help) : null, showError ? h("div", {
key: "error",
className: classes.error
}, error) : validates && !attrs.help ? h("div", {
key: "error-placeholder",
className: classes.errorPlaceholder
}) : null];
};
return [h("div", {
className: classes.inputArea,
key: "input-area"
}, [label ? h("label", {
key: "label",
className: classes.label
}, label) : null, h(inputType, _extends({}, {
key: "input",
className: classes.input,
disabled: attrs.disabled
}, type ? { type: type } : null, attrs.name ? { name: attrs.name } : null, !ignoreEvent(attrs, k.onclick) ? _defineProperty({}, k.onclick, function () {
if (inactive) {
return;
}
// in case the browser does not give the field focus,
// for instance when the user tapped to the current field off screen
state.setInputState({ vnode: vnode, focus: true });
notifyState(vnode);
}) : null, !ignoreEvent(attrs, k.onfocus) ? _defineProperty({}, k.onfocus, function () {
if (inactive) {
return;
}
state.setInputState({ vnode: vnode, focus: true });
var textfield = Object.freeze({
getElement: getElement,
getInitialState: getInitialState,
onMount: onMount,
onUpdate: onUpdate,
createProps: createProps,
createContent: createContent
});
// set CSS class manually in case field gets focus but is off screen
// and no redraw is triggered
// at the next redraw state.hasFocus() will be read and the focus class be set
// in the props.class statement
if (state.el()) {
state.el().classList.add(classes.stateFocused);
}
notifyState(vnode);
}) : null, !ignoreEvent(attrs, k.onblur) ? _defineProperty({}, k.onblur, function () {
state.setInputState({ vnode: vnode, type: "onblur", focus: false });
// same principle as onfocus
state.el().classList.remove(classes.stateFocused);
}) : null, !ignoreEvent(attrs, k.oninput) ? _defineProperty({}, k.oninput, function () {
// default input event
// may be overwritten by attrs.events
state.setInputState({ vnode: vnode, type: "input" });
}) : null, !ignoreEvent(attrs, k.onkeydown) ? _defineProperty({}, k.onkeydown, function (e) {
if (e.key === "Enter") {
state.isTouched(true);
} else if (e.key === "Escape" || e.key === "Esc") {
state.setInputState({ vnode: vnode, focus: false });
}
}) : null, attrs.events ? attrs.events : null, // NOTE: may overwrite oninput
attrs.required !== undefined && !!attrs.required ? { required: true } : null, attrs[k.readonly] !== undefined && !!attrs[k.readonly] ? _defineProperty({}, k.readonly, true) : null, attrs.pattern !== undefined ? { pattern: attrs.pattern } : null, attrs[k.maxlength] !== undefined ? _defineProperty({}, k.maxlength, attrs[k.maxlength]) : null, attrs[k.minlength] !== undefined ? _defineProperty({}, k.minlength, attrs[k.minlength]) : null, attrs.max !== undefined ? { max: attrs.max } : null, attrs.min !== undefined ? { min: attrs.min } : null, attrs[k.autofocus] !== undefined ? _defineProperty({}, k.autofocus, attrs[k.autofocus]) : null, attrs[k.tabindex] !== undefined ? _defineProperty({}, k.tabindex, attrs[k.tabindex]) : null, attrs.rows !== undefined ? { rows: attrs.rows } : null))]), attrs.counter ? h("div", {
key: "counter",
className: classes.counter
}, (inputEl && inputEl.value.length || 0) + " / " + attrs.counter) : null, attrs.help && !showError ? h("div", {
key: "help",
className: [classes.help, attrs.focusHelp ? classes.focusHelp : null].join(" ")
}, attrs.help) : null, showError ? h("div", {
key: "error",
className: classes.error
}, error) : state.showErrorPlaceholder && !attrs.help ? h("div", {
key: "error-placeholder",
className: classes.errorPlaceholder
}) : null];
};
var rgba = function rgba(colorStr) {
var opacity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
return "rgba(" + colorStr + ", " + opacity + ")";
};
var textfield = /*#__PURE__*/Object.freeze({
getElement: getElement,
getInitialState: getInitialState,
onMount: onMount,
onUpdate: onUpdate,
createProps: createProps,
createContent: createContent
});
var line_height_input = 20;
var input_padding_v = 7;
var rgba = function rgba(colorStr) {
var opacity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
return "rgba(" + colorStr + ", " + opacity + ")";
};
var vars$1 = {
vertical_spacing_top: 6, // 8 minus natural label height padding (1)
vertical_spacing_bottom: 7, // 8 minus natural label height padding (1)
input_focus_border_width: 2,
input_focus_border_animation_duration: polytheneTheme.vars.animation_duration,
var line_height_input = 20;
var input_padding_v = 7;
floating_label_vertical_spacing_top: 30, // 16 + 8 + 8 minus natural label height padding (2)
floating_label_vertical_spacing_bottom: 7, // 8 minus natural label height padding (1)
floating_label_top: 14,
floating_label_animation_duration: ".12s",
var vars = {
vertical_spacing_top: 6, // 8 minus natural label height padding (1)
vertical_spacing_bottom: 7, // 8 minus natural label height padding (1)
input_focus_border_width: 2,
input_focus_border_animation_duration: polytheneTheme.vars.animation_duration,
input_padding_h: 0,
input_padding_v: input_padding_v,
input_border_width: 1,
margin_top_error_message: 6,
font_size_input: 16,
font_size_error: 12,
font_size_floating_label: 12,
floating_label_vertical_spacing_top: 30, // 16 + 8 + 8 minus natural label height padding (2)
floating_label_vertical_spacing_bottom: 7, // 8 minus natural label height padding (1)
floating_label_top: 14,
floating_label_animation_duration: ".12s",
line_height_input: line_height_input,
input_padding_h: 0,
input_padding_v: input_padding_v,
input_border_width: 1,
margin_top_error_message: 6,
font_size_input: 16,
font_size_error: 12,
font_size_floating_label: 12,
dense_floating_label_vertical_spacing_top: 23, // 12 + 8 + 4 minus natural label height padding (1)
dense_floating_label_vertical_spacing_bottom: 4, // 8 minus natural label height padding (1)
dense_floating_label_top: 10,
dense_font_size_input: 13,
dense_font_size_floating_label: 13,
line_height_input: line_height_input,
full_width_input_padding_h: 20,
full_width_input_padding_v: 18, // 20 minus natural label height padding (2)
dense_floating_label_vertical_spacing_top: 23, // 12 + 8 + 4 minus natural label height padding (1)
dense_floating_label_vertical_spacing_bottom: 4, // 8 minus natural label height padding (1)
dense_floating_label_top: 10,
dense_font_size_input: 13,
dense_font_size_floating_label: 13,
dense_full_width_input_padding_h: 16,
dense_full_width_input_padding_v: 15, // 16 minus natural label height padding (1)
dense_full_width_font_size_input: 13,
full_width_input_padding_h: 20,
full_width_input_padding_v: 18, // 20 minus natural label height padding (2)
color_light_input_text: rgba(polytheneTheme.vars.color_light_foreground, polytheneTheme.vars.blend_light_text_primary),
color_light_input_background: "transparent", // only used to "remove" autofill color
color_light_highlight_text: rgba(polytheneTheme.vars.color_primary, polytheneTheme.vars.blend_light_text_primary),
color_light_input_bottom_border: rgba(polytheneTheme.vars.color_light_foreground, polytheneTheme.vars.blend_light_border_light),
color_light_input_error_text: rgba("221, 44, 0"),
color_light_input_error_border: rgba("221, 44, 0"),
color_light_input_placeholder: rgba(polytheneTheme.vars.color_light_foreground, polytheneTheme.vars.blend_light_text_tertiary),
color_light_label_text: rgba(polytheneTheme.vars.color_light_foreground, polytheneTheme.vars.blend_light_text_tertiary),
color_light_disabled_label_text: rgba(polytheneTheme.vars.color_light_foreground, polytheneTheme.vars.blend_light_text_disabled),
color_light_readonly_label_text: rgba(polytheneTheme.vars.color_light_foreground, polytheneTheme.vars.blend_light_text_tertiary),
color_light_help_text: rgba(polytheneTheme.vars.color_light_foreground, polytheneTheme.vars.blend_light_text_tertiary),
color_light_required_symbol: rgba("221, 44, 0"),
color_light_focus_border: rgba(polytheneTheme.vars.color_primary),
color_light_counter_ok_border: rgba(polytheneTheme.vars.color_primary),
dense_full_width_input_padding_h: 16,
dense_full_width_input_padding_v: 15, // 16 minus natural label height padding (1)
dense_full_width_font_size_input: 13,
color_dark_input_text: rgba(polytheneTheme.vars.color_dark_foreground, polytheneTheme.vars.blend_dark_text_primary),
color_dark_input_background: "transparent", // only used to "remove" autofill color
color_dark_highlight_text: rgba(polytheneTheme.vars.color_primary, polytheneTheme.vars.blend_dark_text_primary),
color_dark_input_bottom_border: rgba(polytheneTheme.vars.color_dark_foreground, polytheneTheme.vars.blend_dark_border_light),
color_dark_input_error_text: rgba("222, 50, 38"),
color_dark_input_error_border: rgba("222, 50, 38"),
color_dark_input_placeholder: rgba(polytheneTheme.vars.color_dark_foreground, polytheneTheme.vars.blend_dark_text_tertiary),
color_dark_label_text: rgba(polytheneTheme.vars.color_dark_foreground, polytheneTheme.vars.blend_dark_text_tertiary),
color_dark_disabled_label_text: rgba(polytheneTheme.vars.color_dark_foreground, polytheneTheme.vars.blend_dark_text_disabled),
color_dark_readonly_label_text: rgba(polytheneTheme.vars.color_dark_foreground, polytheneTheme.vars.blend_dark_text_tertiary),
color_dark_help_text: rgba(polytheneTheme.vars.color_dark_foreground, polytheneTheme.vars.blend_dark_text_tertiary),
color_dark_required_symbol: rgba("221, 44, 0"),
color_dark_focus_border: rgba(polytheneTheme.vars.color_primary),
color_dark_counter_ok_border: rgba(polytheneTheme.vars.color_primary)
};
color_light_input_text: rgba(polytheneTheme.vars.color_light_foreground, polytheneTheme.vars.blend_light_text_primary),
color_light_input_background: "transparent", // only used to "remove" autofill color
color_light_highlight_text: rgba(polytheneTheme.vars.color_primary, polytheneTheme.vars.blend_light_text_primary),
color_light_input_bottom_border: rgba(polytheneTheme.vars.color_light_foreground, polytheneTheme.vars.blend_light_border_light),
color_light_input_error_text: rgba("221, 44, 0"),
color_light_input_error_border: rgba("221, 44, 0"),
color_light_input_placeholder: rgba(polytheneTheme.vars.color_light_foreground, polytheneTheme.vars.blend_light_text_tertiary),
color_light_label_text: rgba(polytheneTheme.vars.color_light_foreground, polytheneTheme.vars.blend_light_text_tertiary),
color_light_disabled_label_text: rgba(polytheneTheme.vars.color_light_foreground, polytheneTheme.vars.blend_light_text_disabled),
color_light_readonly_label_text: rgba(polytheneTheme.vars.color_light_foreground, polytheneTheme.vars.blend_light_text_tertiary),
color_light_help_text: rgba(polytheneTheme.vars.color_light_foreground, polytheneTheme.vars.blend_light_text_tertiary),
color_light_required_symbol: rgba("221, 44, 0"),
color_light_focus_border: rgba(polytheneTheme.vars.color_primary),
color_light_counter_ok_border: rgba(polytheneTheme.vars.color_primary),
exports.coreTextField = textfield;
exports.vars = vars$1;
color_dark_input_text: rgba(polytheneTheme.vars.color_dark_foreground, polytheneTheme.vars.blend_dark_text_primary),
color_dark_input_background: "transparent", // only used to "remove" autofill color
color_dark_highlight_text: rgba(polytheneTheme.vars.color_primary, polytheneTheme.vars.blend_dark_text_primary),
color_dark_input_bottom_border: rgba(polytheneTheme.vars.color_dark_foreground, polytheneTheme.vars.blend_dark_border_light),
color_dark_input_error_text: rgba("222, 50, 38"),
color_dark_input_error_border: rgba("222, 50, 38"),
color_dark_input_placeholder: rgba(polytheneTheme.vars.color_dark_foreground, polytheneTheme.vars.blend_dark_text_tertiary),
color_dark_label_text: rgba(polytheneTheme.vars.color_dark_foreground, polytheneTheme.vars.blend_dark_text_tertiary),
color_dark_disabled_label_text: rgba(polytheneTheme.vars.color_dark_foreground, polytheneTheme.vars.blend_dark_text_disabled),
color_dark_readonly_label_text: rgba(polytheneTheme.vars.color_dark_foreground, polytheneTheme.vars.blend_dark_text_tertiary),
color_dark_help_text: rgba(polytheneTheme.vars.color_dark_foreground, polytheneTheme.vars.blend_dark_text_tertiary),
color_dark_required_symbol: rgba("221, 44, 0"),
color_dark_focus_border: rgba(polytheneTheme.vars.color_primary),
color_dark_counter_ok_border: rgba(polytheneTheme.vars.color_primary)
};
Object.defineProperty(exports, '__esModule', { value: true });
exports.coreTextField = textfield;
exports.vars = vars;
Object.defineProperty(exports, '__esModule', { value: true });
})));
//# sourceMappingURL=polythene-core-textfield.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"polythene-core-textfield.js","sources":["../../polythene-css-classes/textfield.js","../src/textfield.js","../src/vars.js"],"sourcesContent":["\nexport default {\n component: \"pe-textfield\",\n\n // elements\n counter: \"pe-textfield__counter\",\n error: \"pe-textfield__error\",\n errorPlaceholder: \"pe-textfield__error-placeholder\",\n focusHelp: \"pe-textfield__help-focus\",\n help: \"pe-textfield__help\",\n input: \"pe-textfield__input\",\n inputArea: \"pe-textfield__input-area\",\n label: \"pe-textfield__label\",\n optionalIndicator: \"pe-textfield__optional-indicator\",\n requiredIndicator: \"pe-textfield__required-indicator\",\n\n // states\n hasCounter: \"pe-textfield--counter\",\n hasFloatingLabel: \"pe-textfield--floating-label\",\n hasFullWidth: \"pe-textfield--full-width\",\n hideClear: \"pe-textfield--hide-clear\",\n hideSpinner: \"pe-textfield--hide-spinner\",\n hideValidation: \"pe-textfield--hide-validation\",\n isDense: \"pe-textfield--dense\",\n isRequired: \"pe-textfield--required\",\n stateDirty: \"pe-textfield--dirty\",\n stateDisabled: \"pe-textfield--disabled\",\n stateFocused: \"pe-textfield--focused\",\n stateInvalid: \"pe-textfield--invalid\",\n stateReadonly: \"pe-textfield--readonly\",\n};\n","import { filterSupportedAttributes } from \"polythene-core\";\nimport classes from \"polythene-css-classes/textfield\";\n\nexport const getElement = vnode =>\n vnode.attrs.element || \"div\";\n\nconst DEFAULT_VALID_STATE = {\n invalid: false,\n message: undefined\n};\n\nconst validateCustom = (state, attrs) => {\n const el = state.inputEl();\n if (!el) {\n return DEFAULT_VALID_STATE;\n }\n const validState = attrs.validate(state.inputEl().value);\n return {\n invalid: validState && !validState.valid,\n message: validState && validState.error\n };\n};\n\nconst validateCounter = (state, attrs) => ({\n invalid: state.inputEl().value.length > attrs.counter,\n message: attrs.error\n});\n\nconst validateHTML = (state, attrs) => ({\n invalid: !state.inputEl().checkValidity(),\n message: attrs.error\n});\n\nconst getValidStatus = (state, attrs) => {\n let status = DEFAULT_VALID_STATE;\n\n // attrs.validateResetOnClear: reset validation when field is cleared\n if (state.isTouched() && state.isInvalid() && state.inputEl().value.length === 0 && attrs.validateResetOnClear) {\n state.isTouched(false);\n state.isInvalid(false);\n state.error(undefined);\n }\n if (!status.invalid && attrs.counter) {\n status = validateCounter(state, attrs);\n }\n if (!status.invalid && state.inputEl() && state.inputEl().checkValidity) {\n status = validateHTML(state, attrs);\n }\n if (!status.invalid && attrs.validate) {\n status = validateCustom(state, attrs);\n }\n return status;\n};\n\nconst checkValidity = vnode => {\n const state = vnode.state;\n const attrs = vnode.attrs;\n // default\n \n const status = attrs.valid !== undefined\n ? {\n invalid: !attrs.valid,\n message: attrs.error\n }\n : (!state.isTouched() && !attrs.validateAtStart)\n ? DEFAULT_VALID_STATE\n : getValidStatus(state, attrs);\n const previousInvalid = state.isInvalid();\n state.error(status.message);\n\n if (status.invalid !== previousInvalid) {\n state.isInvalid(status.invalid);\n }\n if (!status.invalid) {\n state.error(undefined);\n }\n};\n\nconst notifyState = vnode => {\n const state = vnode.state;\n const attrs = vnode.attrs;\n if (attrs.onChange) {\n const status = getValidStatus(state, attrs);\n attrs.onChange({\n focus: state.hasFocus(),\n dirty: state.isDirty(),\n el: state.inputEl(),\n invalid: status.invalid,\n error: status.error,\n value: state.inputEl().value,\n setInputState: newState => state.setInputState(newState),\n });\n }\n};\n\nconst ignoreEvent = (attrs, name) =>\n attrs.ignoreEvents && attrs.ignoreEvents.indexOf(name) !== -1;\n\nexport const getInitialState = (vnode, createStream) => {\n const attrs = vnode.attrs;\n\n const defaultValue = attrs.defaultValue !== undefined && attrs.defaultValue !== null\n ? attrs.defaultValue.toString()\n : attrs.value !== undefined && attrs.value !== null\n ? attrs.value.toString()\n : \"\";\n\n const el = createStream(null);\n const inputEl = createStream(null);\n const setInputState = createStream({});\n const error = createStream(attrs.error);\n const hasFocus = createStream(false);\n const isTouched = createStream(false); // true when any change is made\n const isDirty = createStream(defaultValue !== \"\"); // true for any input\n const isInvalid = createStream(false);\n const previousValue = createStream(undefined);\n const didSetFocusTime = 0;\n\n return {\n defaultValue,\n didSetFocusTime,\n el,\n error,\n hasFocus,\n inputEl,\n isDirty,\n isInvalid,\n isTouched,\n previousValue,\n setInputState,\n redrawOnUpdate: createStream.merge([inputEl, isInvalid, isDirty])\n };\n};\n\nexport const onMount = vnode => {\n const dom = vnode.dom;\n const state = vnode.state;\n const attrs = vnode.attrs;\n\n state.el(dom);\n const inputType = attrs.multiLine ? \"textarea\" : \"input\";\n const inputEl = dom.querySelector(inputType);\n vnode.state.inputEl(inputEl);\n state.inputEl().value = state.defaultValue;\n\n state.setInputState.map(({ type, focus, value }) => (\n value !== undefined ? state.inputEl().value = value : null,\n focus !== undefined && (state.hasFocus(focus), focus ? state.inputEl().focus() : state.inputEl().blur()),\n type === \"input\" && (attrs.validateOnInput || attrs.counter) && state.isTouched(state.inputEl().value !== state.defaultValue),\n type !== \"input\" && state.isTouched(state.inputEl().value !== state.defaultValue),\n type === \"onblur\" && state.isTouched(true),\n state.isDirty(state.inputEl().value !== \"\"),\n checkValidity(vnode),\n notifyState(vnode),\n state.previousValue(state.inputEl().value)\n ));\n\n notifyState(vnode);\n};\n\nexport const onUpdate = vnode => {\n const state = vnode.state;\n const attrs = vnode.attrs;\n checkValidity(vnode);\n\n const inputEl = state.inputEl();\n const value = (attrs.value !== undefined && attrs.value !== null)\n ? attrs.value\n : inputEl\n ? inputEl.value\n : state.previousValue();\n const valueStr = (value === undefined || value === null)\n ? \"\"\n : value.toString();\n\n if (inputEl && state.previousValue() !== valueStr) {\n inputEl.value = valueStr;\n state.previousValue(valueStr);\n state.setInputState({ type: \"input\" });\n }\n};\n\nexport const createProps = (vnode, { keys: k }) => {\n const state = vnode.state;\n const attrs = vnode.attrs;\n const isInvalid = state.isInvalid();\n\n return Object.assign(\n {},\n filterSupportedAttributes(attrs),\n {\n className: [\n classes.component,\n isInvalid ? classes.stateInvalid : \"\",\n state.hasFocus() ? classes.stateFocused : \"\",\n state.isDirty() ? classes.stateDirty : \"\",\n attrs.floatingLabel ? classes.hasFloatingLabel : \"\",\n attrs.disabled ? classes.stateDisabled : \"\",\n attrs.readonly ? classes.stateReadonly : \"\",\n attrs.dense ? classes.isDense : \"\",\n attrs.required ? classes.isRequired : \"\",\n attrs.fullWidth ? classes.hasFullWidth : \"\",\n attrs.counter ? classes.hasCounter : \"\",\n attrs.hideSpinner !== false && attrs.hideSpinner !== undefined ? classes.hideSpinner : \"\",\n attrs.hideClear !== false && attrs.hideClear !== undefined ? classes.hideClear : \"\",\n attrs.hideValidation ? classes.hideValidation : \"\",\n attrs.tone === \"dark\" ? \"pe-dark-tone\" : null,\n attrs.tone === \"light\" ? \"pe-light-tone\" : null,\n attrs.className || attrs[k.class],\n ].join(\" \")\n }\n );\n};\n\nexport const createContent = (vnode, { renderer: h, keys: k }) => {\n const state = vnode.state;\n const attrs = vnode.attrs;\n\n const inputEl = state.inputEl();\n let error = attrs.error || state.error();\n const isInvalid = state.isInvalid();\n const inputType = attrs.multiLine ? \"textarea\" : \"input\";\n const type = attrs.multiLine\n ? null\n : !attrs.type || attrs.type === \"submit\" || attrs.type === \"search\"\n ? \"text\"\n : attrs.type;\n const showError = isInvalid && error !== undefined;\n \n const validates = !!(attrs.valid !== undefined || attrs.validate || attrs.min || attrs.max || attrs[k.minlength] || attrs[k.maxlength] || attrs.required || attrs.pattern);\n const inactive = attrs.disabled || attrs[k.readonly];\n\n const requiredIndicator = attrs.required && attrs.requiredIndicator !== \"\"\n ? h(\"span\",\n {\n key: \"required\",\n className: classes.requiredIndicator\n },\n attrs.requiredIndicator || \"*\"\n )\n : null;\n const optionalIndicator = !attrs.required && attrs.optionalIndicator\n ? h(\"span\",\n {\n key: \"optional\",\n className: classes.optionalIndicator\n },\n attrs.optionalIndicator\n )\n : null;\n const label = attrs.label\n ? [attrs.label, requiredIndicator, optionalIndicator]\n : null;\n\n return [\n h(\"div\",\n {\n className: classes.inputArea,\n key: \"input-area\"\n },\n [\n label\n ? h(\"label\",\n {\n key: \"label\",\n className: classes.label,\n },\n label)\n : null,\n h(inputType, Object.assign(\n {},\n {\n key: \"input\",\n className: classes.input,\n disabled: attrs.disabled\n },\n type ? { type } : null,\n attrs.name \n ? { name: attrs.name }\n : null,\n\n !ignoreEvent(attrs, k.onclick)\n ? {\n [k.onclick]: () => {\n if (inactive) {\n return;\n }\n // in case the browser does not give the field focus,\n // for instance when the user tapped to the current field off screen\n state.setInputState({ focus: true });\n notifyState(vnode);\n }\n }\n : null,\n\n !ignoreEvent(attrs, k.onfocus)\n ? {\n [k.onfocus]: () => {\n if (inactive) {\n return;\n }\n state.setInputState({ focus: true });\n\n // set CSS class manually in case field gets focus but is off screen\n // and no redraw is triggered\n // at the next redraw state.hasFocus() will be read and the focus class be set\n // in the props.class statement\n if (state.el()) {\n state.el().classList.add(classes.stateFocused);\n }\n notifyState(vnode);\n }\n }\n : null,\n \n !ignoreEvent(attrs, k.onblur)\n ? {\n [k.onblur]: () => {\n state.setInputState({ type: \"onblur\", focus: false });\n // same principle as onfocus\n state.el().classList.remove(classes.stateFocused);\n }\n }\n : null,\n\n !ignoreEvent(attrs, k.oninput)\n ? {\n [k.oninput]: () => {\n // default input event\n // may be overwritten by attrs.events\n state.setInputState({ type: \"input\" });\n }\n }\n : null,\n\n !ignoreEvent(attrs, k.onkeydown)\n ? {\n [k.onkeydown]: e => {\n if (e.key === \"Enter\") {\n state.isTouched(true);\n } else if (e.key === \"Escape\" || e.key === \"Esc\") {\n state.setInputState({ focus: false });\n }\n }\n }\n : null,\n\n attrs.events ? attrs.events : null, // NOTE: may overwrite oninput\n attrs.required !== undefined && !!attrs.required ? { required: true } : null,\n attrs[k.readonly] !== undefined && !!attrs[k.readonly] ? { [k.readonly]: true } : null,\n attrs.pattern !== undefined ? { pattern: attrs.pattern } : null,\n attrs[k.maxlength] !== undefined ? { [k.maxlength]: attrs[k.maxlength] } : null,\n attrs[k.minlength] !== undefined ? { [k.minlength]: attrs[k.minlength] } : null,\n attrs.max !== undefined ? { max: attrs.max } : null,\n attrs.min !== undefined ? { min: attrs.min } : null,\n attrs[k.autofocus] !== undefined ? { [k.autofocus]: attrs[k.autofocus] } : null,\n attrs[k.tabindex] !== undefined ? { [k.tabindex]: attrs[k.tabindex] } : null,\n attrs.rows !== undefined ? { rows: attrs.rows } : null\n ))\n ]\n ),\n attrs.counter\n ? h(\"div\",\n {\n key: \"counter\",\n className: classes.counter\n },\n ((inputEl && inputEl.value.length) || 0) + \" / \" + attrs.counter\n )\n : null,\n attrs.help && !showError\n ? h(\"div\",\n {\n key: \"help\",\n className: [\n classes.help,\n attrs.focusHelp ? classes.focusHelp : null\n ].join(\" \")\n },\n attrs.help\n )\n : null,\n showError\n ? h(\"div\",\n {\n key: \"error\",\n className: classes.error\n },\n error\n )\n : validates && !attrs.help\n ? h(\"div\",\n {\n key: \"error-placeholder\",\n className: classes.errorPlaceholder\n }\n )\n : null\n ];\n};\n","import { vars } from \"polythene-theme\";\n\nconst rgba = (colorStr, opacity = 1) =>\n `rgba(${colorStr}, ${opacity})`;\n\nconst line_height_input = 20;\nconst input_padding_v = 7;\n\nexport default {\n vertical_spacing_top: 6, // 8 minus natural label height padding (1)\n vertical_spacing_bottom: 7, // 8 minus natural label height padding (1)\n input_focus_border_width: 2,\n input_focus_border_animation_duration: vars.animation_duration,\n \n floating_label_vertical_spacing_top: 30, // 16 + 8 + 8 minus natural label height padding (2)\n floating_label_vertical_spacing_bottom: 7, // 8 minus natural label height padding (1)\n floating_label_top: 14,\n floating_label_animation_duration: \".12s\",\n\n input_padding_h: 0,\n input_padding_v,\n input_border_width: 1,\n margin_top_error_message: 6,\n font_size_input: 16,\n font_size_error: 12,\n font_size_floating_label: 12,\n\n line_height_input,\n\n dense_floating_label_vertical_spacing_top: 23, // 12 + 8 + 4 minus natural label height padding (1)\n dense_floating_label_vertical_spacing_bottom: 4, // 8 minus natural label height padding (1)\n dense_floating_label_top: 10,\n dense_font_size_input: 13,\n dense_font_size_floating_label: 13,\n \n full_width_input_padding_h: 20,\n full_width_input_padding_v: 18, // 20 minus natural label height padding (2)\n\n dense_full_width_input_padding_h: 16,\n dense_full_width_input_padding_v: 15, // 16 minus natural label height padding (1)\n dense_full_width_font_size_input: 13,\n\n color_light_input_text: rgba(vars.color_light_foreground, vars.blend_light_text_primary),\n color_light_input_background: \"transparent\", // only used to \"remove\" autofill color\n color_light_highlight_text: rgba(vars.color_primary, vars.blend_light_text_primary),\n color_light_input_bottom_border: rgba(vars.color_light_foreground, vars.blend_light_border_light),\n color_light_input_error_text: rgba(\"221, 44, 0\"),\n color_light_input_error_border: rgba(\"221, 44, 0\"),\n color_light_input_placeholder: rgba(vars.color_light_foreground, vars.blend_light_text_tertiary),\n color_light_label_text: rgba(vars.color_light_foreground, vars.blend_light_text_tertiary),\n color_light_disabled_label_text: rgba(vars.color_light_foreground, vars.blend_light_text_disabled),\n color_light_readonly_label_text: rgba(vars.color_light_foreground, vars.blend_light_text_tertiary),\n color_light_help_text: rgba(vars.color_light_foreground, vars.blend_light_text_tertiary),\n color_light_required_symbol: rgba(\"221, 44, 0\"),\n color_light_focus_border: rgba(vars.color_primary),\n color_light_counter_ok_border: rgba(vars.color_primary),\n \n color_dark_input_text: rgba(vars.color_dark_foreground, vars.blend_dark_text_primary),\n color_dark_input_background: \"transparent\", // only used to \"remove\" autofill color\n color_dark_highlight_text: rgba(vars.color_primary, vars.blend_dark_text_primary),\n color_dark_input_bottom_border: rgba(vars.color_dark_foreground, vars.blend_dark_border_light),\n color_dark_input_error_text: rgba(\"222, 50, 38\"),\n color_dark_input_error_border: rgba(\"222, 50, 38\"),\n color_dark_input_placeholder: rgba(vars.color_dark_foreground, vars.blend_dark_text_tertiary),\n color_dark_label_text: rgba(vars.color_dark_foreground, vars.blend_dark_text_tertiary),\n color_dark_disabled_label_text: rgba(vars.color_dark_foreground, vars.blend_dark_text_disabled),\n color_dark_readonly_label_text: rgba(vars.color_dark_foreground, vars.blend_dark_text_tertiary),\n color_dark_help_text: rgba(vars.color_dark_foreground, vars.blend_dark_text_tertiary),\n color_dark_required_symbol: rgba(\"221, 44, 0\"),\n color_dark_focus_border: rgba(vars.color_primary),\n color_dark_counter_ok_border: rgba(vars.color_primary)\n};\n"],"names":["getElement","vnode","attrs","element","DEFAULT_VALID_STATE","undefined","validateCustom","state","el","inputEl","validState","validate","value","valid","error","validateCounter","length","counter","validateHTML","checkValidity","getValidStatus","status","isTouched","isInvalid","validateResetOnClear","invalid","validateAtStart","previousInvalid","message","notifyState","onChange","hasFocus","isDirty","setInputState","newState","ignoreEvent","name","ignoreEvents","indexOf","getInitialState","createStream","defaultValue","toString","previousValue","didSetFocusTime","merge","onMount","dom","inputType","multiLine","querySelector","map","type","focus","blur","validateOnInput","onUpdate","valueStr","createProps","k","keys","filterSupportedAttributes","classes","component","stateInvalid","stateFocused","stateDirty","floatingLabel","hasFloatingLabel","disabled","stateDisabled","readonly","stateReadonly","dense","isDense","required","isRequired","fullWidth","hasFullWidth","hasCounter","hideSpinner","hideClear","hideValidation","tone","className","class","join","createContent","h","renderer","showError","validates","min","max","minlength","maxlength","pattern","inactive","requiredIndicator","optionalIndicator","label","inputArea","input","onclick","onfocus","classList","add","onblur","remove","oninput","onkeydown","e","key","events","autofocus","tabindex","rows","help","focusHelp","errorPlaceholder","rgba","colorStr","opacity","line_height_input","input_padding_v","vars","animation_duration","color_light_foreground","blend_light_text_primary","color_primary","blend_light_border_light","blend_light_text_tertiary","blend_light_text_disabled","color_dark_foreground","blend_dark_text_primary","blend_dark_border_light","blend_dark_text_tertiary","blend_dark_text_disabled"],"mappings":";;;;;;AACA,cAAe;aACM,cADN;;;WAIM,uBAJN;SAKM,qBALN;oBAMM,iCANN;aAOM,0BAPN;QAQM,oBARN;SASM,qBATN;aAUM,0BAVN;SAWM,qBAXN;qBAYM,kCAZN;qBAaM,kCAbN;;;cAgBM,uBAhBN;oBAiBM,8BAjBN;gBAkBM,0BAlBN;aAmBM,0BAnBN;eAoBM,4BApBN;kBAqBM,+BArBN;WAsBM,qBAtBN;cAuBM,wBAvBN;cAwBM,qBAxBN;iBAyBM,wBAzBN;gBA0BM,uBA1BN;gBA2BM,uBA3BN;iBA4BM;CA5BrB;;;;;;ACDA,AAGO,IAAMA,aAAa,SAAbA,UAAa;SACxBC,MAAMC,KAAN,CAAYC,OAAZ,IAAuB,KADC;CAAnB;;AAGP,IAAMC,sBAAsB;WACjB,KADiB;WAEjBC;CAFX;;AAKA,IAAMC,iBAAiB,SAAjBA,cAAiB,CAACC,KAAD,EAAQL,KAAR,EAAkB;MACjCM,KAAKD,MAAME,OAAN,EAAX;MACI,CAACD,EAAL,EAAS;WACAJ,mBAAP;;MAEIM,aAAaR,MAAMS,QAAN,CAAeJ,MAAME,OAAN,GAAgBG,KAA/B,CAAnB;SACO;aACIF,cAAc,CAACA,WAAWG,KAD9B;aAEIH,cAAcA,WAAWI;GAFpC;CANF;;AAYA,IAAMC,kBAAkB,SAAlBA,eAAkB,CAACR,KAAD,EAAQL,KAAR;SAAmB;aAChCK,MAAME,OAAN,GAAgBG,KAAhB,CAAsBI,MAAtB,GAA+Bd,MAAMe,OADL;aAEhCf,MAAMY;GAFO;CAAxB;;AAKA,IAAMI,eAAe,SAAfA,YAAe,CAACX,KAAD,EAAQL,KAAR;SAAmB;aAC7B,CAACK,MAAME,OAAN,GAAgBU,aAAhB,EAD4B;aAE7BjB,MAAMY;GAFI;CAArB;;AAKA,IAAMM,iBAAiB,SAAjBA,cAAiB,CAACb,KAAD,EAAQL,KAAR,EAAkB;MACnCmB,SAASjB,mBAAb;;;MAGIG,MAAMe,SAAN,MAAqBf,MAAMgB,SAAN,EAArB,IAA0ChB,MAAME,OAAN,GAAgBG,KAAhB,CAAsBI,MAAtB,KAAiC,CAA3E,IAAgFd,MAAMsB,oBAA1F,EAAgH;UACxGF,SAAN,CAAgB,KAAhB;UACMC,SAAN,CAAgB,KAAhB;UACMT,KAAN,CAAYT,SAAZ;;MAEE,CAACgB,OAAOI,OAAR,IAAmBvB,MAAMe,OAA7B,EAAsC;aAC3BF,gBAAgBR,KAAhB,EAAuBL,KAAvB,CAAT;;MAEE,CAACmB,OAAOI,OAAR,IAAmBlB,MAAME,OAAN,EAAnB,IAAsCF,MAAME,OAAN,GAAgBU,aAA1D,EAAyE;aAC9DD,aAAaX,KAAb,EAAoBL,KAApB,CAAT;;MAEE,CAACmB,OAAOI,OAAR,IAAmBvB,MAAMS,QAA7B,EAAuC;aAC5BL,eAAeC,KAAf,EAAsBL,KAAtB,CAAT;;SAEKmB,MAAP;CAlBF;;AAqBA,IAAMF,gBAAgB,SAAhBA,aAAgB,QAAS;MACvBZ,QAAQN,MAAMM,KAApB;MACML,QAAQD,MAAMC,KAApB;;;MAGMmB,SAASnB,MAAMW,KAAN,KAAgBR,SAAhB,GACX;aACS,CAACH,MAAMW,KADhB;aAESX,MAAMY;GAHJ,GAKV,CAACP,MAAMe,SAAN,EAAD,IAAsB,CAACpB,MAAMwB,eAA9B,GACEtB,mBADF,GAEEgB,eAAeb,KAAf,EAAsBL,KAAtB,CAPN;MAQMyB,kBAAkBpB,MAAMgB,SAAN,EAAxB;QACMT,KAAN,CAAYO,OAAOO,OAAnB;;MAEIP,OAAOI,OAAP,KAAmBE,eAAvB,EAAwC;UAChCJ,SAAN,CAAgBF,OAAOI,OAAvB;;MAEE,CAACJ,OAAOI,OAAZ,EAAqB;UACbX,KAAN,CAAYT,SAAZ;;CApBJ;;AAwBA,IAAMwB,cAAc,SAAdA,WAAc,QAAS;MACrBtB,QAAQN,MAAMM,KAApB;MACML,QAAQD,MAAMC,KAApB;MACIA,MAAM4B,QAAV,EAAoB;QACZT,SAASD,eAAeb,KAAf,EAAsBL,KAAtB,CAAf;UACM4B,QAAN,CAAe;aACEvB,MAAMwB,QAAN,EADF;aAEExB,MAAMyB,OAAN,EAFF;UAGEzB,MAAME,OAAN,EAHF;eAIEY,OAAOI,OAJT;aAKEJ,OAAOP,KALT;aAMEP,MAAME,OAAN,GAAgBG,KANlB;qBAOE;eAAYL,MAAM0B,aAAN,CAAoBC,QAApB,CAAZ;;KAPjB;;CALJ;;AAiBA,IAAMC,cAAc,SAAdA,WAAc,CAACjC,KAAD,EAAQkC,IAAR;SAClBlC,MAAMmC,YAAN,IAAsBnC,MAAMmC,YAAN,CAAmBC,OAAnB,CAA2BF,IAA3B,MAAqC,CAAC,CAD1C;CAApB;;AAGA,AAAO,IAAMG,kBAAkB,SAAlBA,eAAkB,CAACtC,KAAD,EAAQuC,YAAR,EAAyB;MAChDtC,QAAQD,MAAMC,KAApB;;MAEMuC,eAAevC,MAAMuC,YAAN,KAAuBpC,SAAvB,IAAoCH,MAAMuC,YAAN,KAAuB,IAA3D,GACjBvC,MAAMuC,YAAN,CAAmBC,QAAnB,EADiB,GAEjBxC,MAAMU,KAAN,KAAgBP,SAAhB,IAA6BH,MAAMU,KAAN,KAAgB,IAA7C,GACEV,MAAMU,KAAN,CAAY8B,QAAZ,EADF,GAEE,EAJN;;MAMMlC,KAAKgC,aAAa,IAAb,CAAX;MACM/B,UAAU+B,aAAa,IAAb,CAAhB;MACMP,gBAAgBO,aAAa,EAAb,CAAtB;MACM1B,QAAQ0B,aAAatC,MAAMY,KAAnB,CAAd;MACMiB,WAAWS,aAAa,KAAb,CAAjB;MACMlB,YAAYkB,aAAa,KAAb,CAAlB,CAdsD;MAehDR,UAAUQ,aAAaC,iBAAiB,EAA9B,CAAhB,CAfsD;MAgBhDlB,YAAYiB,aAAa,KAAb,CAAlB;MACMG,gBAAgBH,aAAanC,SAAb,CAAtB;MACMuC,kBAAkB,CAAxB;;SAEO;8BAAA;oCAAA;UAAA;gBAAA;sBAAA;oBAAA;oBAAA;wBAAA;wBAAA;gCAAA;gCAAA;oBAYWJ,aAAaK,KAAb,CAAmB,CAACpC,OAAD,EAAUc,SAAV,EAAqBS,OAArB,CAAnB;GAZlB;CApBK;;AAoCP,AAAO,IAAMc,UAAU,SAAVA,OAAU,QAAS;MACxBC,MAAM9C,MAAM8C,GAAlB;MACMxC,QAAQN,MAAMM,KAApB;MACML,QAAQD,MAAMC,KAApB;;QAEMM,EAAN,CAASuC,GAAT;MACMC,YAAY9C,MAAM+C,SAAN,GAAkB,UAAlB,GAA+B,OAAjD;MACMxC,UAAUsC,IAAIG,aAAJ,CAAkBF,SAAlB,CAAhB;QACMzC,KAAN,CAAYE,OAAZ,CAAoBA,OAApB;QACMA,OAAN,GAAgBG,KAAhB,GAAwBL,MAAMkC,YAA9B;;QAEMR,aAAN,CAAoBkB,GAApB,CAAwB;QAAGC,IAAH,QAAGA,IAAH;QAASC,KAAT,QAASA,KAAT;QAAgBzC,KAAhB,QAAgBA,KAAhB;WACtBA,UAAUP,SAAV,GAAsBE,MAAME,OAAN,GAAgBG,KAAhB,GAAwBA,KAA9C,GAAsD,IAAtD,EACAyC,UAAUhD,SAAV,KAAwBE,MAAMwB,QAAN,CAAesB,KAAf,GAAuBA,QAAQ9C,MAAME,OAAN,GAAgB4C,KAAhB,EAAR,GAAkC9C,MAAME,OAAN,GAAgB6C,IAAhB,EAAjF,CADA,EAEAF,SAAS,OAAT,KAAqBlD,MAAMqD,eAAN,IAAyBrD,MAAMe,OAApD,KAAgEV,MAAMe,SAAN,CAAgBf,MAAME,OAAN,GAAgBG,KAAhB,KAA0BL,MAAMkC,YAAhD,CAFhE,EAGAW,SAAS,OAAT,IAAoB7C,MAAMe,SAAN,CAAgBf,MAAME,OAAN,GAAgBG,KAAhB,KAA0BL,MAAMkC,YAAhD,CAHpB,EAIAW,SAAS,QAAT,IAAqB7C,MAAMe,SAAN,CAAgB,IAAhB,CAJrB,EAKAf,MAAMyB,OAAN,CAAczB,MAAME,OAAN,GAAgBG,KAAhB,KAA0B,EAAxC,CALA,EAMAO,cAAclB,KAAd,CANA,EAOA4B,YAAY5B,KAAZ,CAPA,EAQAM,MAAMoC,aAAN,CAAoBpC,MAAME,OAAN,GAAgBG,KAApC,CATsB;GAAxB;;cAYYX,KAAZ;CAvBK;;AA0BP,AAAO,IAAMuD,WAAW,SAAXA,QAAW,QAAS;MACzBjD,QAAQN,MAAMM,KAApB;MACML,QAAQD,MAAMC,KAApB;gBACcD,KAAd;;MAEMQ,UAAUF,MAAME,OAAN,EAAhB;MACMG,QAASV,MAAMU,KAAN,KAAgBP,SAAhB,IAA6BH,MAAMU,KAAN,KAAgB,IAA9C,GACVV,MAAMU,KADI,GAEVH,UACEA,QAAQG,KADV,GAEEL,MAAMoC,aAAN,EAJN;MAKMc,WAAY7C,UAAUP,SAAV,IAAuBO,UAAU,IAAlC,GACb,EADa,GAEbA,MAAM8B,QAAN,EAFJ;;MAIIjC,WAAWF,MAAMoC,aAAN,OAA0Bc,QAAzC,EAAmD;YACzC7C,KAAR,GAAgB6C,QAAhB;UACMd,aAAN,CAAoBc,QAApB;UACMxB,aAAN,CAAoB,EAAEmB,MAAM,OAAR,EAApB;;CAlBG;;AAsBP,AAAO,IAAMM,cAAc,SAAdA,WAAc,CAACzD,KAAD,SAAwB;MAAR0D,CAAQ,SAAdC,IAAc;;MAC3CrD,QAAQN,MAAMM,KAApB;MACML,QAAQD,MAAMC,KAApB;MACMqB,YAAYhB,MAAMgB,SAAN,EAAlB;;SAEO,SACL,EADK,EAELsC,wCAA0B3D,KAA1B,CAFK,EAGL;eACa,CACT4D,QAAQC,SADC,EAETxC,YAA8BuC,QAAQE,YAAtC,GAAqD,EAF5C,EAGTzD,MAAMwB,QAAN,KAA8B+B,QAAQG,YAAtC,GAAqD,EAH5C,EAIT1D,MAAMyB,OAAN,KAA8B8B,QAAQI,UAAtC,GAAmD,EAJ1C,EAKThE,MAAMiE,aAAN,GAA8BL,QAAQM,gBAAtC,GAAyD,EALhD,EAMTlE,MAAMmE,QAAN,GAA8BP,QAAQQ,aAAtC,GAAsD,EAN7C,EAOTpE,MAAMqE,QAAN,GAA8BT,QAAQU,aAAtC,GAAsD,EAP7C,EAQTtE,MAAMuE,KAAN,GAA8BX,QAAQY,OAAtC,GAAgD,EARvC,EASTxE,MAAMyE,QAAN,GAA8Bb,QAAQc,UAAtC,GAAmD,EAT1C,EAUT1E,MAAM2E,SAAN,GAA8Bf,QAAQgB,YAAtC,GAAqD,EAV5C,EAWT5E,MAAMe,OAAN,GAA8B6C,QAAQiB,UAAtC,GAAmD,EAX1C,EAYT7E,MAAM8E,WAAN,KAAsB,KAAtB,IAA+B9E,MAAM8E,WAAN,KAAsB3E,SAArD,GAAiEyD,QAAQkB,WAAzE,GAAuF,EAZ9E,EAaT9E,MAAM+E,SAAN,KAAoB,KAApB,IAA+B/E,MAAM+E,SAAN,KAAoB5E,SAAnD,GAA+DyD,QAAQmB,SAAvE,GAAmF,EAb1E,EAcT/E,MAAMgF,cAAN,GAA8BpB,QAAQoB,cAAtC,GAAuD,EAd9C,EAeThF,MAAMiF,IAAN,KAAe,MAAf,GAA8B,cAA9B,GAA+C,IAftC,EAgBTjF,MAAMiF,IAAN,KAAe,OAAf,GAA8B,eAA9B,GAAgD,IAhBvC,EAiBTjF,MAAMkF,SAAN,IAAmBlF,MAAMyD,EAAE0B,KAAR,CAjBV,EAkBTC,IAlBS,CAkBJ,GAlBI;GAJR,CAAP;CALK;;AAgCP,AAAO,IAAMC,gBAAgB,SAAhBA,aAAgB,CAACtF,KAAD,SAAqC;MAAjBuF,CAAiB,SAA3BC,QAA2B;MAAR9B,CAAQ,SAAdC,IAAc;;MAC1DrD,QAAQN,MAAMM,KAApB;MACML,QAAQD,MAAMC,KAApB;;MAEMO,UAAUF,MAAME,OAAN,EAAhB;MACIK,QAAQZ,MAAMY,KAAN,IAAeP,MAAMO,KAAN,EAA3B;MACMS,YAAYhB,MAAMgB,SAAN,EAAlB;MACMyB,YAAY9C,MAAM+C,SAAN,GAAkB,UAAlB,GAA+B,OAAjD;MACMG,OAAOlD,MAAM+C,SAAN,GACT,IADS,GAET,CAAC/C,MAAMkD,IAAP,IAAelD,MAAMkD,IAAN,KAAe,QAA9B,IAA0ClD,MAAMkD,IAAN,KAAe,QAAzD,GACE,MADF,GAEElD,MAAMkD,IAJZ;MAKMsC,YAAYnE,aAAaT,UAAUT,SAAzC;;MAEMsF,YAAY,CAAC,EAAEzF,MAAMW,KAAN,KAAgBR,SAAhB,IAA6BH,MAAMS,QAAnC,IAA+CT,MAAM0F,GAArD,IAA4D1F,MAAM2F,GAAlE,IAAyE3F,MAAMyD,EAAEmC,SAAR,CAAzE,IAA+F5F,MAAMyD,EAAEoC,SAAR,CAA/F,IAAqH7F,MAAMyE,QAA3H,IAAuIzE,MAAM8F,OAA/I,CAAnB;MACMC,WAAW/F,MAAMmE,QAAN,IAAkBnE,MAAMyD,EAAEY,QAAR,CAAnC;;MAEM2B,oBAAoBhG,MAAMyE,QAAN,IAAkBzE,MAAMgG,iBAAN,KAA4B,EAA9C,GACtBV,EAAE,MAAF,EACA;SACO,UADP;eAEa1B,QAAQoC;GAHrB,EAKAhG,MAAMgG,iBAAN,IAA2B,GAL3B,CADsB,GAQtB,IARJ;MASMC,oBAAoB,CAACjG,MAAMyE,QAAP,IAAmBzE,MAAMiG,iBAAzB,GACtBX,EAAE,MAAF,EACA;SACO,UADP;eAEa1B,QAAQqC;GAHrB,EAKAjG,MAAMiG,iBALN,CADsB,GAQtB,IARJ;MASMC,QAAQlG,MAAMkG,KAAN,GACV,CAAClG,MAAMkG,KAAP,EAAcF,iBAAd,EAAiCC,iBAAjC,CADU,GAEV,IAFJ;;SAIO,CACLX,EAAE,KAAF,EACE;eACa1B,QAAQuC,SADrB;SAEO;GAHT,EAKE,CACED,QACIZ,EAAE,OAAF,EACA;SACO,OADP;eAEa1B,QAAQsC;GAHrB,EAKAA,KALA,CADJ,GAOI,IARN,EASEZ,EAAExC,SAAF,EAAa,SACX,EADW,EAEX;SACO,OADP;eAEac,QAAQwC,KAFrB;cAGYpG,MAAMmE;GALP,EAOXjB,OAAO,EAAEA,UAAF,EAAP,GAAkB,IAPP,EAQXlD,MAAMkC,IAAN,GACI,EAAEA,MAAMlC,MAAMkC,IAAd,EADJ,GAEI,IAVO,EAYX,CAACD,YAAYjC,KAAZ,EAAmByD,EAAE4C,OAArB,CAAD,uBAEK5C,EAAE4C,OAFP,EAEiB,YAAM;QACbN,QAAJ,EAAc;;;;;UAKRhE,aAAN,CAAoB,EAAEoB,OAAO,IAAT,EAApB;gBACYpD,KAAZ;GATN,IAYI,IAxBO,EA0BX,CAACkC,YAAYjC,KAAZ,EAAmByD,EAAE6C,OAArB,CAAD,uBAEK7C,EAAE6C,OAFP,EAEiB,YAAM;QACbP,QAAJ,EAAc;;;UAGRhE,aAAN,CAAoB,EAAEoB,OAAO,IAAT,EAApB;;;;;;QAMI9C,MAAMC,EAAN,EAAJ,EAAgB;YACRA,EAAN,GAAWiG,SAAX,CAAqBC,GAArB,CAAyB5C,QAAQG,YAAjC;;gBAEUhE,KAAZ;GAfN,IAkBI,IA5CO,EA8CX,CAACkC,YAAYjC,KAAZ,EAAmByD,EAAEgD,MAArB,CAAD,uBAEKhD,EAAEgD,MAFP,EAEgB,YAAM;UACV1E,aAAN,CAAoB,EAAEmB,MAAM,QAAR,EAAkBC,OAAO,KAAzB,EAApB;;UAEM7C,EAAN,GAAWiG,SAAX,CAAqBG,MAArB,CAA4B9C,QAAQG,YAApC;GALN,IAQI,IAtDO,EAwDX,CAAC9B,YAAYjC,KAAZ,EAAmByD,EAAEkD,OAArB,CAAD,uBAEKlD,EAAEkD,OAFP,EAEiB,YAAM;;;UAGX5E,aAAN,CAAoB,EAAEmB,MAAM,OAAR,EAApB;GALN,IAQI,IAhEO,EAkEX,CAACjB,YAAYjC,KAAZ,EAAmByD,EAAEmD,SAArB,CAAD,uBAEKnD,EAAEmD,SAFP,EAEmB,aAAK;QACdC,EAAEC,GAAF,KAAU,OAAd,EAAuB;YACf1F,SAAN,CAAgB,IAAhB;KADF,MAEO,IAAIyF,EAAEC,GAAF,KAAU,QAAV,IAAsBD,EAAEC,GAAF,KAAU,KAApC,EAA2C;YAC1C/E,aAAN,CAAoB,EAAEoB,OAAO,KAAT,EAApB;;GANR,IAUI,IA5EO,EA8EXnD,MAAM+G,MAAN,GAAe/G,MAAM+G,MAArB,GAA8B,IA9EnB;QA+ELtC,QAAN,KAAmBtE,SAAnB,IAAgC,CAAC,CAACH,MAAMyE,QAAxC,GAAyD,EAAEA,UAAU,IAAZ,EAAzD,GAA8E,IA/EnE,EAgFXzE,MAAMyD,EAAEY,QAAR,MAAsBlE,SAAtB,IAAmC,CAAC,CAACH,MAAMyD,EAAEY,QAAR,CAArC,uBAA4DZ,EAAEY,QAA9D,EAAyE,IAAzE,IAAkF,IAhFvE,EAiFXrE,MAAM8F,OAAN,KAAkB3F,SAAlB,GAAyD,EAAE2F,SAAS9F,MAAM8F,OAAjB,EAAzD,GAAsF,IAjF3E,EAkFX9F,MAAMyD,EAAEoC,SAAR,MAAuB1F,SAAvB,uBAA4DsD,EAAEoC,SAA9D,EAA0E7F,MAAMyD,EAAEoC,SAAR,CAA1E,IAAiG,IAlFtF,EAmFX7F,MAAMyD,EAAEmC,SAAR,MAAuBzF,SAAvB,uBAA4DsD,EAAEmC,SAA9D,EAA0E5F,MAAMyD,EAAEmC,SAAR,CAA1E,IAAiG,IAnFtF,EAoFX5F,MAAM2F,GAAN,KAAcxF,SAAd,GAAyD,EAAEwF,KAAK3F,MAAM2F,GAAb,EAAzD,GAA8E,IApFnE,EAqFX3F,MAAM0F,GAAN,KAAcvF,SAAd,GAAyD,EAAEuF,KAAK1F,MAAM0F,GAAb,EAAzD,GAA8E,IArFnE,EAsFX1F,MAAMyD,EAAEuD,SAAR,MAAuB7G,SAAvB,uBAA4DsD,EAAEuD,SAA9D,EAA0EhH,MAAMyD,EAAEuD,SAAR,CAA1E,IAAiG,IAtFtF,EAuFXhH,MAAMyD,EAAEwD,QAAR,MAAsB9G,SAAtB,uBAA4DsD,EAAEwD,QAA9D,EAAyEjH,MAAMyD,EAAEwD,QAAR,CAAzE,IAA+F,IAvFpF,EAwFXjH,MAAMkH,IAAN,KAAe/G,SAAf,GAAyD,EAAE+G,MAAMlH,MAAMkH,IAAd,EAAzD,GAAgF,IAxFrE,CAAb,CATF,CALF,CADK,EA2GLlH,MAAMe,OAAN,GACIuE,EAAE,KAAF,EACA;SACO,SADP;eAEa1B,QAAQ7C;GAHrB,EAKA,CAAER,WAAWA,QAAQG,KAAR,CAAcI,MAA1B,IAAqC,CAAtC,IAA2C,KAA3C,GAAmDd,MAAMe,OALzD,CADJ,GAQI,IAnHC,EAoHLf,MAAMmH,IAAN,IAAc,CAAC3B,SAAf,GACIF,EAAE,KAAF,EACA;SACO,MADP;eAEa,CACT1B,QAAQuD,IADC,EAETnH,MAAMoH,SAAN,GAAkBxD,QAAQwD,SAA1B,GAAsC,IAF7B,EAGThC,IAHS,CAGJ,GAHI;GAHb,EAQApF,MAAMmH,IARN,CADJ,GAWI,IA/HC,EAgIL3B,YACIF,EAAE,KAAF,EACA;SACO,OADP;eAEa1B,QAAQhD;GAHrB,EAKAA,KALA,CADJ,GAQI6E,aAAa,CAACzF,MAAMmH,IAApB,GACE7B,EAAE,KAAF,EACA;SACO,mBADP;eAEa1B,QAAQyD;GAHrB,CADF,GAOE,IA/ID,CAAP;CAxCK;;;;;;;;;;;ACpNP,IAAMC,OAAO,SAAPA,IAAO,CAACC,QAAD;MAAWC,OAAX,uEAAqB,CAArB;mBACHD,QADG,UACUC,OADV;CAAb;;AAGA,IAAMC,oBAAoB,EAA1B;AACA,IAAMC,kBAAkB,CAAxB;;AAEA,aAAe;wBAC2B,CAD3B;2BAE2B,CAF3B;4BAG2B,CAH3B;yCAI2BC,oBAAKC,kBAJhC;;uCAM2B,EAN3B;0CAO2B,CAP3B;sBAQ2B,EAR3B;qCAS2B,MAT3B;;mBAWa,CAXb;kCAAA;sBAaa,CAbb;4BAca,CAdb;mBAea,EAfb;mBAgBa,EAhBb;4BAiBa,EAjBb;;sCAAA;;6CAqBiC,EArBjC;gDAsBiC,CAtBjC;4BAuBiC,EAvBjC;yBAwBiC,EAxBjC;kCAyBiC,EAzBjC;;8BA2BqB,EA3BrB;8BA4BqB,EA5BrB;;oCA8BqB,EA9BrB;oCA+BqB,EA/BrB;oCAgCqB,EAhCrB;;0BAkCqBN,KAAKK,oBAAKE,sBAAV,EAAkCF,oBAAKG,wBAAvC,CAlCrB;gCAmCqB,aAnCrB;8BAoCqBR,KAAKK,oBAAKI,aAAV,EAAyBJ,oBAAKG,wBAA9B,CApCrB;mCAqCqBR,KAAKK,oBAAKE,sBAAV,EAAkCF,oBAAKK,wBAAvC,CArCrB;gCAsCqBV,KAAK,YAAL,CAtCrB;kCAuCqBA,KAAK,YAAL,CAvCrB;iCAwCqBA,KAAKK,oBAAKE,sBAAV,EAAkCF,oBAAKM,yBAAvC,CAxCrB;0BAyCqBX,KAAKK,oBAAKE,sBAAV,EAAkCF,oBAAKM,yBAAvC,CAzCrB;mCA0CqBX,KAAKK,oBAAKE,sBAAV,EAAkCF,oBAAKO,yBAAvC,CA1CrB;mCA2CqBZ,KAAKK,oBAAKE,sBAAV,EAAkCF,oBAAKM,yBAAvC,CA3CrB;yBA4CqBX,KAAKK,oBAAKE,sBAAV,EAAkCF,oBAAKM,yBAAvC,CA5CrB;+BA6CqBX,KAAK,YAAL,CA7CrB;4BA8CqBA,KAAKK,oBAAKI,aAAV,CA9CrB;iCA+CqBT,KAAKK,oBAAKI,aAAV,CA/CrB;;yBAiDqBT,KAAKK,oBAAKQ,qBAAV,EAAiCR,oBAAKS,uBAAtC,CAjDrB;+BAkDqB,aAlDrB;6BAmDqBd,KAAKK,oBAAKI,aAAV,EAAyBJ,oBAAKS,uBAA9B,CAnDrB;kCAoDqBd,KAAKK,oBAAKQ,qBAAV,EAAiCR,oBAAKU,uBAAtC,CApDrB;+BAqDqBf,KAAK,aAAL,CArDrB;iCAsDqBA,KAAK,aAAL,CAtDrB;gCAuDqBA,KAAKK,oBAAKQ,qBAAV,EAAiCR,oBAAKW,wBAAtC,CAvDrB;yBAwDqBhB,KAAKK,oBAAKQ,qBAAV,EAAiCR,oBAAKW,wBAAtC,CAxDrB;kCAyDqBhB,KAAKK,oBAAKQ,qBAAV,EAAiCR,oBAAKY,wBAAtC,CAzDrB;kCA0DqBjB,KAAKK,oBAAKQ,qBAAV,EAAiCR,oBAAKW,wBAAtC,CA1DrB;wBA2DqBhB,KAAKK,oBAAKQ,qBAAV,EAAiCR,oBAAKW,wBAAtC,CA3DrB;8BA4DqBhB,KAAK,YAAL,CA5DrB;2BA6DqBA,KAAKK,oBAAKI,aAAV,CA7DrB;gCA8DqBT,KAAKK,oBAAKI,aAAV;CA9DpC;;;;;;;;;;;;;"}
{"version":3,"file":"polythene-core-textfield.js","sources":["../../polythene-css-classes/textfield.js","../src/textfield.js","../src/vars.js"],"sourcesContent":["\nexport default {\n component: \"pe-textfield\",\n\n // elements\n counter: \"pe-textfield__counter\",\n error: \"pe-textfield__error\",\n errorPlaceholder: \"pe-textfield__error-placeholder\",\n focusHelp: \"pe-textfield__help-focus\",\n help: \"pe-textfield__help\",\n input: \"pe-textfield__input\",\n inputArea: \"pe-textfield__input-area\",\n label: \"pe-textfield__label\",\n optionalIndicator: \"pe-textfield__optional-indicator\",\n requiredIndicator: \"pe-textfield__required-indicator\",\n\n // states\n hasCounter: \"pe-textfield--counter\",\n hasFloatingLabel: \"pe-textfield--floating-label\",\n hasFullWidth: \"pe-textfield--full-width\",\n hideClear: \"pe-textfield--hide-clear\",\n hideSpinner: \"pe-textfield--hide-spinner\",\n hideValidation: \"pe-textfield--hide-validation\",\n isDense: \"pe-textfield--dense\",\n isRequired: \"pe-textfield--required\",\n stateDirty: \"pe-textfield--dirty\",\n stateDisabled: \"pe-textfield--disabled\",\n stateFocused: \"pe-textfield--focused\",\n stateInvalid: \"pe-textfield--invalid\",\n stateReadonly: \"pe-textfield--readonly\",\n};\n","import { filterSupportedAttributes } from \"polythene-core\";\nimport classes from \"polythene-css-classes/textfield\";\n\nexport const getElement = vnode =>\n vnode.attrs.element || \"div\";\n\nconst DEFAULT_VALID_STATE = {\n invalid: false,\n message: undefined\n};\n\nconst validateCustom = (state, attrs) => {\n const el = state.inputEl();\n if (!el) {\n return DEFAULT_VALID_STATE;\n }\n const validState = attrs.validate(state.inputEl().value);\n return {\n invalid: validState && !validState.valid,\n message: validState && validState.error\n };\n};\n\nconst validateCounter = (state, attrs) => ({\n invalid: state.inputEl().value.length > attrs.counter,\n message: attrs.error\n});\n\nconst validateHTML = (state, attrs) => ({\n invalid: !state.inputEl().checkValidity(),\n message: attrs.error\n});\n\nconst getValidStatus = (state, attrs) => {\n let status = DEFAULT_VALID_STATE;\n\n // attrs.validateResetOnClear: reset validation when field is cleared\n if (state.isTouched() && state.isInvalid() && state.inputEl().value.length === 0 && attrs.validateResetOnClear) {\n state.isTouched(false);\n state.isInvalid(false);\n state.error(undefined);\n }\n if (!status.invalid && attrs.counter) {\n status = validateCounter(state, attrs);\n }\n if (!status.invalid && state.inputEl() && state.inputEl().checkValidity) {\n status = validateHTML(state, attrs);\n }\n if (!status.invalid && attrs.validate) {\n status = validateCustom(state, attrs);\n }\n return status;\n};\n\nconst checkValidity = vnode => {\n const state = vnode.state;\n const attrs = vnode.attrs;\n // default\n const status = attrs.valid !== undefined\n ? {\n invalid: !attrs.valid,\n message: attrs.error\n }\n : (!state.isTouched() && !attrs.validateAtStart)\n ? DEFAULT_VALID_STATE\n : getValidStatus(state, attrs);\n const previousInvalid = state.isInvalid();\n state.error(status.message);\n if (status.invalid !== previousInvalid) {\n state.isInvalid(status.invalid);\n }\n if (!status.invalid) {\n state.error(undefined);\n }\n};\n\nconst notifyState = vnode => {\n const state = vnode.state;\n const attrs = vnode.attrs;\n if (attrs.onChange) {\n const status = getValidStatus(state, attrs);\n attrs.onChange({\n focus: state.hasFocus(),\n dirty: state.isDirty(),\n el: state.inputEl(),\n invalid: status.invalid,\n error: status.error,\n value: state.inputEl().value,\n setInputState: newState => state.setInputState(Object.assign({}, newState, { vnode })),\n });\n }\n};\n\nconst ignoreEvent = (attrs, name) =>\n attrs.ignoreEvents && attrs.ignoreEvents.indexOf(name) !== -1;\n\nexport const getInitialState = (vnode, createStream, { keys: k }) => {\n const attrs = vnode.attrs;\n\n const defaultValue = attrs.defaultValue !== undefined && attrs.defaultValue !== null\n ? attrs.defaultValue.toString()\n : attrs.value !== undefined && attrs.value !== null\n ? attrs.value.toString()\n : \"\";\n\n const el = createStream(null);\n const inputEl = createStream(null);\n const setInputState = createStream({});\n const error = createStream(attrs.error);\n const hasFocus = createStream(false);\n const isTouched = createStream(false); // true when any change is made\n const isDirty = createStream(defaultValue !== \"\"); // true for any input\n const isInvalid = createStream(false);\n const previousValue = createStream(undefined);\n const didSetFocusTime = 0;\n const showErrorPlaceholder = !!(attrs.valid !== undefined || attrs.validate || attrs.min || attrs.max || attrs[k.minlength] || attrs[k.maxlength] || attrs.required || attrs.pattern);\n \n return {\n defaultValue,\n didSetFocusTime,\n el,\n error,\n hasFocus,\n inputEl,\n isDirty,\n isInvalid,\n isTouched,\n previousValue,\n setInputState,\n showErrorPlaceholder,\n redrawOnUpdate: createStream.merge([inputEl, isInvalid, isDirty])\n };\n};\n\nexport const onMount = vnode => {\n const dom = vnode.dom;\n const state = vnode.state;\n const attrs = vnode.attrs;\n\n state.el(dom);\n const inputType = attrs.multiLine ? \"textarea\" : \"input\";\n const inputEl = dom.querySelector(inputType);\n vnode.state.inputEl(inputEl);\n state.inputEl().value = state.defaultValue;\n \n state.setInputState.map(({ vnode, type, focus, value }) => {\n if (vnode) {\n value !== undefined ? state.inputEl().value = value : null;\n focus !== undefined && (state.hasFocus(focus), focus ? state.inputEl().focus() : state.inputEl().blur());\n type === \"input\" && (attrs.validateOnInput || attrs.counter) && state.isTouched(state.inputEl().value !== state.defaultValue);\n type !== \"input\" && state.isTouched(state.inputEl().value !== state.defaultValue);\n type === \"onblur\" && state.isTouched(true);\n state.isDirty(state.inputEl().value !== \"\");\n checkValidity(vnode);\n notifyState(vnode);\n state.previousValue(state.inputEl().value);\n }\n });\n\n notifyState(vnode);\n};\n\nexport const onUpdate = vnode => {\n const state = vnode.state;\n const attrs = vnode.attrs;\n checkValidity(vnode);\n\n const inputEl = state.inputEl();\n const value = (attrs.value !== undefined && attrs.value !== null)\n ? attrs.value\n : inputEl\n ? inputEl.value\n : state.previousValue();\n const valueStr = (value === undefined || value === null)\n ? \"\"\n : value.toString();\n\n if (inputEl && state.previousValue() !== valueStr) {\n inputEl.value = valueStr;\n state.previousValue(valueStr);\n state.setInputState({ vnode, type: \"input\" });\n }\n};\n\nexport const createProps = (vnode, { keys: k }) => {\n const state = vnode.state;\n const attrs = vnode.attrs;\n const isInvalid = state.isInvalid();\n\n return Object.assign(\n {},\n filterSupportedAttributes(attrs),\n {\n className: [\n classes.component,\n isInvalid ? classes.stateInvalid : \"\",\n state.hasFocus() ? classes.stateFocused : \"\",\n state.isDirty() ? classes.stateDirty : \"\",\n attrs.floatingLabel ? classes.hasFloatingLabel : \"\",\n attrs.disabled ? classes.stateDisabled : \"\",\n attrs.readonly ? classes.stateReadonly : \"\",\n attrs.dense ? classes.isDense : \"\",\n attrs.required ? classes.isRequired : \"\",\n attrs.fullWidth ? classes.hasFullWidth : \"\",\n attrs.counter ? classes.hasCounter : \"\",\n attrs.hideSpinner !== false && attrs.hideSpinner !== undefined ? classes.hideSpinner : \"\",\n attrs.hideClear !== false && attrs.hideClear !== undefined ? classes.hideClear : \"\",\n attrs.hideValidation ? classes.hideValidation : \"\",\n attrs.tone === \"dark\" ? \"pe-dark-tone\" : null,\n attrs.tone === \"light\" ? \"pe-light-tone\" : null,\n attrs.className || attrs[k.class],\n ].join(\" \")\n }\n );\n};\n\nexport const createContent = (vnode, { renderer: h, keys: k }) => {\n const state = vnode.state;\n const attrs = vnode.attrs;\n\n const inputEl = state.inputEl();\n let error = attrs.error || state.error();\n const isInvalid = state.isInvalid();\n const inputType = attrs.multiLine ? \"textarea\" : \"input\";\n const type = attrs.multiLine\n ? null\n : !attrs.type || attrs.type === \"submit\" || attrs.type === \"search\"\n ? \"text\"\n : attrs.type;\n const showError = isInvalid && error !== undefined;\n \n \n const inactive = attrs.disabled || attrs[k.readonly];\n\n const requiredIndicator = attrs.required && attrs.requiredIndicator !== \"\"\n ? h(\"span\",\n {\n key: \"required\",\n className: classes.requiredIndicator\n },\n attrs.requiredIndicator || \"*\"\n )\n : null;\n const optionalIndicator = !attrs.required && attrs.optionalIndicator\n ? h(\"span\",\n {\n key: \"optional\",\n className: classes.optionalIndicator\n },\n attrs.optionalIndicator\n )\n : null;\n const label = attrs.label\n ? [attrs.label, requiredIndicator, optionalIndicator]\n : null;\n\n return [\n h(\"div\",\n {\n className: classes.inputArea,\n key: \"input-area\"\n },\n [\n label\n ? h(\"label\",\n {\n key: \"label\",\n className: classes.label,\n },\n label)\n : null,\n h(inputType, Object.assign(\n {},\n {\n key: \"input\",\n className: classes.input,\n disabled: attrs.disabled\n },\n type ? { type } : null,\n attrs.name \n ? { name: attrs.name }\n : null,\n\n !ignoreEvent(attrs, k.onclick)\n ? {\n [k.onclick]: () => {\n if (inactive) {\n return;\n }\n // in case the browser does not give the field focus,\n // for instance when the user tapped to the current field off screen\n state.setInputState({ vnode, focus: true });\n notifyState(vnode);\n }\n }\n : null,\n\n !ignoreEvent(attrs, k.onfocus)\n ? {\n [k.onfocus]: () => {\n if (inactive) {\n return;\n }\n state.setInputState({ vnode, focus: true });\n\n // set CSS class manually in case field gets focus but is off screen\n // and no redraw is triggered\n // at the next redraw state.hasFocus() will be read and the focus class be set\n // in the props.class statement\n if (state.el()) {\n state.el().classList.add(classes.stateFocused);\n }\n notifyState(vnode);\n }\n }\n : null,\n \n !ignoreEvent(attrs, k.onblur)\n ? {\n [k.onblur]: () => {\n state.setInputState({ vnode, type: \"onblur\", focus: false });\n // same principle as onfocus\n state.el().classList.remove(classes.stateFocused);\n }\n }\n : null,\n\n !ignoreEvent(attrs, k.oninput)\n ? {\n [k.oninput]: () => {\n // default input event\n // may be overwritten by attrs.events\n state.setInputState({ vnode, type: \"input\" });\n }\n }\n : null,\n\n !ignoreEvent(attrs, k.onkeydown)\n ? {\n [k.onkeydown]: e => {\n if (e.key === \"Enter\") {\n state.isTouched(true);\n } else if (e.key === \"Escape\" || e.key === \"Esc\") {\n state.setInputState({ vnode, focus: false });\n }\n }\n }\n : null,\n\n attrs.events ? attrs.events : null, // NOTE: may overwrite oninput\n attrs.required !== undefined && !!attrs.required ? { required: true } : null,\n attrs[k.readonly] !== undefined && !!attrs[k.readonly] ? { [k.readonly]: true } : null,\n attrs.pattern !== undefined ? { pattern: attrs.pattern } : null,\n attrs[k.maxlength] !== undefined ? { [k.maxlength]: attrs[k.maxlength] } : null,\n attrs[k.minlength] !== undefined ? { [k.minlength]: attrs[k.minlength] } : null,\n attrs.max !== undefined ? { max: attrs.max } : null,\n attrs.min !== undefined ? { min: attrs.min } : null,\n attrs[k.autofocus] !== undefined ? { [k.autofocus]: attrs[k.autofocus] } : null,\n attrs[k.tabindex] !== undefined ? { [k.tabindex]: attrs[k.tabindex] } : null,\n attrs.rows !== undefined ? { rows: attrs.rows } : null\n ))\n ]\n ),\n attrs.counter\n ? h(\"div\",\n {\n key: \"counter\",\n className: classes.counter\n },\n ((inputEl && inputEl.value.length) || 0) + \" / \" + attrs.counter\n )\n : null,\n attrs.help && !showError\n ? h(\"div\",\n {\n key: \"help\",\n className: [\n classes.help,\n attrs.focusHelp ? classes.focusHelp : null\n ].join(\" \")\n },\n attrs.help\n )\n : null,\n showError\n ? h(\"div\",\n {\n key: \"error\",\n className: classes.error\n },\n error\n )\n : state.showErrorPlaceholder && !attrs.help\n ? h(\"div\",\n {\n key: \"error-placeholder\",\n className: classes.errorPlaceholder\n }\n )\n : null\n ];\n};\n","import { vars } from \"polythene-theme\";\n\nconst rgba = (colorStr, opacity = 1) =>\n `rgba(${colorStr}, ${opacity})`;\n\nconst line_height_input = 20;\nconst input_padding_v = 7;\n\nexport default {\n vertical_spacing_top: 6, // 8 minus natural label height padding (1)\n vertical_spacing_bottom: 7, // 8 minus natural label height padding (1)\n input_focus_border_width: 2,\n input_focus_border_animation_duration: vars.animation_duration,\n \n floating_label_vertical_spacing_top: 30, // 16 + 8 + 8 minus natural label height padding (2)\n floating_label_vertical_spacing_bottom: 7, // 8 minus natural label height padding (1)\n floating_label_top: 14,\n floating_label_animation_duration: \".12s\",\n\n input_padding_h: 0,\n input_padding_v,\n input_border_width: 1,\n margin_top_error_message: 6,\n font_size_input: 16,\n font_size_error: 12,\n font_size_floating_label: 12,\n\n line_height_input,\n\n dense_floating_label_vertical_spacing_top: 23, // 12 + 8 + 4 minus natural label height padding (1)\n dense_floating_label_vertical_spacing_bottom: 4, // 8 minus natural label height padding (1)\n dense_floating_label_top: 10,\n dense_font_size_input: 13,\n dense_font_size_floating_label: 13,\n \n full_width_input_padding_h: 20,\n full_width_input_padding_v: 18, // 20 minus natural label height padding (2)\n\n dense_full_width_input_padding_h: 16,\n dense_full_width_input_padding_v: 15, // 16 minus natural label height padding (1)\n dense_full_width_font_size_input: 13,\n\n color_light_input_text: rgba(vars.color_light_foreground, vars.blend_light_text_primary),\n color_light_input_background: \"transparent\", // only used to \"remove\" autofill color\n color_light_highlight_text: rgba(vars.color_primary, vars.blend_light_text_primary),\n color_light_input_bottom_border: rgba(vars.color_light_foreground, vars.blend_light_border_light),\n color_light_input_error_text: rgba(\"221, 44, 0\"),\n color_light_input_error_border: rgba(\"221, 44, 0\"),\n color_light_input_placeholder: rgba(vars.color_light_foreground, vars.blend_light_text_tertiary),\n color_light_label_text: rgba(vars.color_light_foreground, vars.blend_light_text_tertiary),\n color_light_disabled_label_text: rgba(vars.color_light_foreground, vars.blend_light_text_disabled),\n color_light_readonly_label_text: rgba(vars.color_light_foreground, vars.blend_light_text_tertiary),\n color_light_help_text: rgba(vars.color_light_foreground, vars.blend_light_text_tertiary),\n color_light_required_symbol: rgba(\"221, 44, 0\"),\n color_light_focus_border: rgba(vars.color_primary),\n color_light_counter_ok_border: rgba(vars.color_primary),\n \n color_dark_input_text: rgba(vars.color_dark_foreground, vars.blend_dark_text_primary),\n color_dark_input_background: \"transparent\", // only used to \"remove\" autofill color\n color_dark_highlight_text: rgba(vars.color_primary, vars.blend_dark_text_primary),\n color_dark_input_bottom_border: rgba(vars.color_dark_foreground, vars.blend_dark_border_light),\n color_dark_input_error_text: rgba(\"222, 50, 38\"),\n color_dark_input_error_border: rgba(\"222, 50, 38\"),\n color_dark_input_placeholder: rgba(vars.color_dark_foreground, vars.blend_dark_text_tertiary),\n color_dark_label_text: rgba(vars.color_dark_foreground, vars.blend_dark_text_tertiary),\n color_dark_disabled_label_text: rgba(vars.color_dark_foreground, vars.blend_dark_text_disabled),\n color_dark_readonly_label_text: rgba(vars.color_dark_foreground, vars.blend_dark_text_tertiary),\n color_dark_help_text: rgba(vars.color_dark_foreground, vars.blend_dark_text_tertiary),\n color_dark_required_symbol: rgba(\"221, 44, 0\"),\n color_dark_focus_border: rgba(vars.color_primary),\n color_dark_counter_ok_border: rgba(vars.color_primary)\n};\n"],"names":["component","counter","error","errorPlaceholder","focusHelp","help","input","inputArea","label","optionalIndicator","requiredIndicator","hasCounter","hasFloatingLabel","hasFullWidth","hideClear","hideSpinner","hideValidation","isDense","isRequired","stateDirty","stateDisabled","stateFocused","stateInvalid","stateReadonly","getElement","vnode","attrs","element","DEFAULT_VALID_STATE","invalid","message","undefined","validateCustom","state","el","inputEl","validState","validate","value","valid","validateCounter","length","validateHTML","checkValidity","getValidStatus","status","isTouched","isInvalid","validateResetOnClear","validateAtStart","previousInvalid","notifyState","onChange","focus","hasFocus","dirty","isDirty","setInputState","newState","ignoreEvent","name","ignoreEvents","indexOf","getInitialState","createStream","k","keys","defaultValue","toString","previousValue","didSetFocusTime","showErrorPlaceholder","min","max","minlength","maxlength","required","pattern","redrawOnUpdate","merge","onMount","dom","inputType","multiLine","querySelector","map","type","blur","validateOnInput","onUpdate","valueStr","createProps","filterSupportedAttributes","className","classes","floatingLabel","disabled","readonly","dense","fullWidth","tone","class","join","createContent","h","renderer","showError","inactive","key","onclick","onfocus","classList","add","onblur","remove","oninput","onkeydown","e","events","autofocus","tabindex","rows","rgba","colorStr","opacity","line_height_input","input_padding_v","vertical_spacing_top","vertical_spacing_bottom","input_focus_border_width","input_focus_border_animation_duration","vars","animation_duration","floating_label_vertical_spacing_top","floating_label_vertical_spacing_bottom","floating_label_top","floating_label_animation_duration","input_padding_h","input_border_width","margin_top_error_message","font_size_input","font_size_error","font_size_floating_label","dense_floating_label_vertical_spacing_top","dense_floating_label_vertical_spacing_bottom","dense_floating_label_top","dense_font_size_input","dense_font_size_floating_label","full_width_input_padding_h","full_width_input_padding_v","dense_full_width_input_padding_h","dense_full_width_input_padding_v","dense_full_width_font_size_input","color_light_input_text","color_light_foreground","blend_light_text_primary","color_light_input_background","color_light_highlight_text","color_primary","color_light_input_bottom_border","blend_light_border_light","color_light_input_error_text","color_light_input_error_border","color_light_input_placeholder","blend_light_text_tertiary","color_light_label_text","color_light_disabled_label_text","blend_light_text_disabled","color_light_readonly_label_text","color_light_help_text","color_light_required_symbol","color_light_focus_border","color_light_counter_ok_border","color_dark_input_text","color_dark_foreground","blend_dark_text_primary","color_dark_input_background","color_dark_highlight_text","color_dark_input_bottom_border","blend_dark_border_light","color_dark_input_error_text","color_dark_input_error_border","color_dark_input_placeholder","blend_dark_text_tertiary","color_dark_label_text","color_dark_disabled_label_text","blend_dark_text_disabled","color_dark_readonly_label_text","color_dark_help_text","color_dark_required_symbol","color_dark_focus_border","color_dark_counter_ok_border"],"mappings":"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"}

@@ -99,3 +99,2 @@ import { filterSupportedAttributes } from 'polythene-core';

// default
var status = attrs.valid !== undefined ? {

@@ -107,3 +106,2 @@ invalid: !attrs.valid,

state.error(status.message);
if (status.invalid !== previousInvalid) {

@@ -130,3 +128,3 @@ state.isInvalid(status.invalid);

setInputState: function setInputState(newState) {
return state.setInputState(newState);
return state.setInputState(_extends({}, newState, { vnode: vnode }));
}

@@ -141,3 +139,5 @@ });

var getInitialState = function getInitialState(vnode, createStream) {
var getInitialState = function getInitialState(vnode, createStream, _ref) {
var k = _ref.keys;
var attrs = vnode.attrs;

@@ -157,2 +157,3 @@

var didSetFocusTime = 0;
var showErrorPlaceholder = !!(attrs.valid !== undefined || attrs.validate || attrs.min || attrs.max || attrs[k.minlength] || attrs[k.maxlength] || attrs.required || attrs.pattern);

@@ -171,2 +172,3 @@ return {

setInputState: setInputState,
showErrorPlaceholder: showErrorPlaceholder,
redrawOnUpdate: createStream.merge([inputEl, isInvalid, isDirty])

@@ -187,7 +189,19 @@ };

state.setInputState.map(function (_ref) {
var type = _ref.type,
focus = _ref.focus,
value = _ref.value;
return value !== undefined ? state.inputEl().value = value : null, focus !== undefined && (state.hasFocus(focus), focus ? state.inputEl().focus() : state.inputEl().blur()), type === "input" && (attrs.validateOnInput || attrs.counter) && state.isTouched(state.inputEl().value !== state.defaultValue), type !== "input" && state.isTouched(state.inputEl().value !== state.defaultValue), type === "onblur" && state.isTouched(true), state.isDirty(state.inputEl().value !== ""), checkValidity(vnode), notifyState(vnode), state.previousValue(state.inputEl().value);
state.setInputState.map(function (_ref2) {
var vnode = _ref2.vnode,
type = _ref2.type,
focus = _ref2.focus,
value = _ref2.value;
if (vnode) {
value !== undefined ? state.inputEl().value = value : null;
focus !== undefined && (state.hasFocus(focus), focus ? state.inputEl().focus() : state.inputEl().blur());
type === "input" && (attrs.validateOnInput || attrs.counter) && state.isTouched(state.inputEl().value !== state.defaultValue);
type !== "input" && state.isTouched(state.inputEl().value !== state.defaultValue);
type === "onblur" && state.isTouched(true);
state.isDirty(state.inputEl().value !== "");
checkValidity(vnode);
notifyState(vnode);
state.previousValue(state.inputEl().value);
}
});

@@ -210,8 +224,8 @@

state.previousValue(valueStr);
state.setInputState({ type: "input" });
state.setInputState({ vnode: vnode, type: "input" });
}
};
var createProps = function createProps(vnode, _ref2) {
var k = _ref2.keys;
var createProps = function createProps(vnode, _ref3) {
var k = _ref3.keys;

@@ -227,5 +241,5 @@ var state = vnode.state;

var createContent = function createContent(vnode, _ref3) {
var h = _ref3.renderer,
k = _ref3.keys;
var createContent = function createContent(vnode, _ref4) {
var h = _ref4.renderer,
k = _ref4.keys;

@@ -242,3 +256,2 @@ var state = vnode.state;

var validates = !!(attrs.valid !== undefined || attrs.validate || attrs.min || attrs.max || attrs[k.minlength] || attrs[k.maxlength] || attrs.required || attrs.pattern);
var inactive = attrs.disabled || attrs[k.readonly];

@@ -272,3 +285,3 @@

// for instance when the user tapped to the current field off screen
state.setInputState({ focus: true });
state.setInputState({ vnode: vnode, focus: true });
notifyState(vnode);

@@ -279,3 +292,3 @@ }) : null, !ignoreEvent(attrs, k.onfocus) ? _defineProperty({}, k.onfocus, function () {

}
state.setInputState({ focus: true });
state.setInputState({ vnode: vnode, focus: true });

@@ -291,3 +304,3 @@ // set CSS class manually in case field gets focus but is off screen

}) : null, !ignoreEvent(attrs, k.onblur) ? _defineProperty({}, k.onblur, function () {
state.setInputState({ type: "onblur", focus: false });
state.setInputState({ vnode: vnode, type: "onblur", focus: false });
// same principle as onfocus

@@ -298,3 +311,3 @@ state.el().classList.remove(classes.stateFocused);

// may be overwritten by attrs.events
state.setInputState({ type: "input" });
state.setInputState({ vnode: vnode, type: "input" });
}) : null, !ignoreEvent(attrs, k.onkeydown) ? _defineProperty({}, k.onkeydown, function (e) {

@@ -304,3 +317,3 @@ if (e.key === "Enter") {

} else if (e.key === "Escape" || e.key === "Esc") {
state.setInputState({ focus: false });
state.setInputState({ vnode: vnode, focus: false });
}

@@ -317,3 +330,3 @@ }) : null, attrs.events ? attrs.events : null, // NOTE: may overwrite oninput

className: classes.error
}, error) : validates && !attrs.help ? h("div", {
}, error) : state.showErrorPlaceholder && !attrs.help ? h("div", {
key: "error-placeholder",

@@ -324,9 +337,9 @@ className: classes.errorPlaceholder

var textfield = Object.freeze({
getElement: getElement,
getInitialState: getInitialState,
onMount: onMount,
onUpdate: onUpdate,
createProps: createProps,
createContent: createContent
var textfield = /*#__PURE__*/Object.freeze({
getElement: getElement,
getInitialState: getInitialState,
onMount: onMount,
onUpdate: onUpdate,
createProps: createProps,
createContent: createContent
});

@@ -333,0 +346,0 @@

{
"name": "polythene-core-textfield",
"version": "1.0.0",
"version": "1.1.0",
"description": "",
"main": "dist/polythene-core-textfield.js",
"main": "dist/polythene-core-textfield",
"module": "dist/polythene-core-textfield.mjs",
"scripts": {
"clean": "rm -rf dist && mkdir dist",
"clean": "rm -rf dist/*",
"rollup": "../../node_modules/rollup/bin/rollup -c ../../scripts/rollup.umd.js && ../../node_modules/rollup/bin/rollup -c ../../scripts/rollup.es.js",
"build": "yarn run rollup"
"build": "yarn run clean && yarn run rollup"
},

@@ -17,5 +17,5 @@ "files": [

"dependencies": {
"polythene-core": "^1.0.0",
"polythene-css-classes": "^1.0.0",
"polythene-theme": "^1.0.0"
"polythene-core": "^1.1.0",
"polythene-css-classes": "^1.1.0",
"polythene-theme": "^1.1.0"
},

@@ -22,0 +22,0 @@ "author": "Arthur Clemens <arthurclemens@gmail.com> (http://arthurclemens.com)",