polythene-core-textfield
Advanced tools
+352
-339
| (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":"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"} | ||
| {"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 @@ |
+7
-7
| { | ||
| "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)", |
72722
7.74%719
3.45%Updated
Updated
Updated