polythene-core
Advanced tools
Comparing version 1.3.3 to 1.4.0
@@ -1,716 +0,2 @@ | ||
(function (global, factory) { | ||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : | ||
typeof define === 'function' && define.amd ? define(['exports'], factory) : | ||
(factory((global.polythene = {}))); | ||
}(this, (function (exports) { 'use strict'; | ||
var isClient = typeof document !== "undefined"; | ||
var isServer = !isClient; | ||
var evts = { | ||
"animation": "animationend", | ||
"OAnimation": "oAnimationEnd", | ||
"MozAnimation": "animationend", | ||
"WebkitAnimation": "webkitAnimationEnd" | ||
}; | ||
var getAnimationEndEvent = function getAnimationEndEvent() { | ||
if (isClient) { | ||
var el = document.createElement("fakeelement"); | ||
for (var a in evts) { | ||
if (el.style[a] !== undefined) { | ||
return evts[a]; | ||
} | ||
} | ||
} | ||
}; | ||
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 modes = { | ||
hidden: "hidden", | ||
visible: "visible", | ||
exposing: "exposing", | ||
hiding: "hiding" | ||
}; | ||
var Conditional = { | ||
getInitialState: function getInitialState(vnode, createStream) { | ||
var attrs = vnode.attrs; | ||
if (!attrs.didHide) { | ||
return {}; | ||
} | ||
var visible = attrs.permanent || attrs.show; | ||
var mode = createStream(attrs.permanent ? modes.visible : visible ? modes.visible : modes.hidden); | ||
return { | ||
mode: mode, | ||
redrawOnUpdate: createStream.merge([mode]) | ||
}; | ||
}, | ||
onUpdate: function onUpdate(_ref) { | ||
var state = _ref.state, | ||
attrs = _ref.attrs; | ||
if (!attrs.didHide) { | ||
return; | ||
} | ||
var mode = state.mode(); | ||
if (attrs.permanent) { | ||
if (mode === modes.visible && attrs.show) { | ||
state.mode(modes.exposing); | ||
} else if (mode === modes.exposing && !attrs.show) { | ||
state.mode(modes.hiding); | ||
} | ||
} else { | ||
// "normal" type | ||
if (mode === modes.hidden && attrs.show) { | ||
state.mode(modes.visible); | ||
} else if (mode === modes.visible && !attrs.show) { | ||
state.mode(modes.hiding); | ||
} | ||
} | ||
}, | ||
view: function view(_ref2, _ref3) { | ||
var state = _ref2.state, | ||
attrs = _ref2.attrs; | ||
var h = _ref3.renderer; | ||
var placeholder = h("span", { className: attrs.placeholderClassName }); | ||
// No didHide callback passed: use normal visibility evaluation | ||
if (!attrs.didHide) { | ||
return attrs.permanent || attrs.inactive || attrs.show ? h(attrs.instance, attrs) : placeholder; | ||
} | ||
// else: use didHide to reset the state after hiding | ||
var mode = state.mode(); | ||
var visible = mode !== modes.hidden; | ||
return visible ? h(attrs.instance, _extends({}, attrs, { | ||
didHide: function didHide(args) { | ||
return attrs.didHide(args), state.mode(attrs.permanent ? modes.visible : modes.hidden); | ||
} | ||
}, mode === modes.hiding && { | ||
show: true, | ||
hide: true | ||
})) : placeholder; | ||
} | ||
}; | ||
Conditional.displayName = "Conditional"; | ||
var r = function r(acc, p) { | ||
return acc[p] = 1, acc; | ||
}; | ||
/* | ||
Separately handled props: | ||
- class | ||
- element | ||
*/ | ||
var defaultAttrs = [ | ||
// Universal | ||
"key", "style", "href", "id", | ||
// React | ||
"tabIndex", | ||
// Mithril | ||
"tabindex", "oninit", "oncreate", "onupdate", "onbeforeremove", "onremove", "onbeforeupdate"]; | ||
var filterSupportedAttributes = function filterSupportedAttributes(attrs) { | ||
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
_ref$add = _ref.add, | ||
addAttrs = _ref$add === undefined ? [] : _ref$add, | ||
_ref$remove = _ref.remove, | ||
removeAttrs = _ref$remove === undefined ? [] : _ref$remove; | ||
var removeLookup = removeAttrs.reduce(r, {}); | ||
var supported = defaultAttrs.concat(addAttrs).filter(function (item) { | ||
return !removeLookup[item]; | ||
}).reduce(r, {}); | ||
return Object.keys(attrs).reduce(function (acc, key) { | ||
return supported[key] ? acc[key] = attrs[key] : null, acc; | ||
}, {}); | ||
}; | ||
var unpackAttrs = function unpackAttrs(attrs) { | ||
return typeof attrs === "function" ? attrs() : attrs; | ||
}; | ||
var sizeClasses = function sizeClasses(classes) { | ||
return { | ||
small: classes.small, | ||
regular: classes.regular, | ||
medium: classes.medium, | ||
large: classes.large, | ||
fab: classes.fab | ||
}; | ||
}; | ||
var classForSize = function classForSize(classes) { | ||
var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "regular"; | ||
return sizeClasses(classes)[size]; | ||
}; | ||
var isTouch = isServer ? false : "ontouchstart" in document.documentElement; | ||
var pointerStartEvent = isTouch ? ["touchstart", "click"] : ["click"]; | ||
var pointerEndEvent = isTouch ? ["click", "mouseup"] : ["mouseup"]; | ||
var pointerStartMoveEvent = isTouch ? ["touchstart", "mousedown"] : ["mousedown"]; | ||
var pointerMoveEvent = isTouch ? ["touchmove", "mousemove"] : ["mousemove"]; | ||
var pointerEndMoveEvent = isTouch ? ["touchend", "mouseup"] : ["mouseup"]; | ||
if (isClient) { | ||
document.querySelector("html").classList.add(isTouch ? "pe-touch" : "pe-no-touch"); | ||
} | ||
var listeners = {}; | ||
// https://gist.github.com/Eartz/fe651f2fadcc11444549 | ||
var throttle = function throttle(func) { | ||
var s = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.05; | ||
var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : isClient ? window : {}; | ||
var wait = false; | ||
return function () { | ||
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { | ||
args[_key] = arguments[_key]; | ||
} | ||
var later = function later() { | ||
return func.apply(context, args); | ||
}; | ||
if (!wait) { | ||
later(); | ||
wait = true; | ||
setTimeout(function () { | ||
return wait = false; | ||
}, s); | ||
} | ||
}; | ||
}; | ||
var subscribe = function subscribe(eventName, listener, delay) { | ||
listeners[eventName] = listeners[eventName] || []; | ||
listeners[eventName].push(delay ? throttle(listener, delay) : listener); | ||
}; | ||
var unsubscribe = function unsubscribe(eventName, listener) { | ||
if (!listeners[eventName]) { | ||
return; | ||
} | ||
var index = listeners[eventName].indexOf(listener); | ||
if (index > -1) { | ||
listeners[eventName].splice(index, 1); | ||
} | ||
}; | ||
var emit = function emit(eventName, event) { | ||
if (!listeners[eventName]) { | ||
return; | ||
} | ||
listeners[eventName].forEach(function (listener) { | ||
return listener(event); | ||
}); | ||
}; | ||
if (isClient) { | ||
window.addEventListener("resize", function (e) { | ||
return emit("resize", e); | ||
}); | ||
window.addEventListener("scroll", function (e) { | ||
return emit("scroll", e); | ||
}); | ||
window.addEventListener("keydown", function (e) { | ||
return emit("keydown", e); | ||
}); | ||
window.addEventListener(pointerEndEvent, function (e) { | ||
return emit(pointerEndEvent, e); | ||
}); | ||
} | ||
var _extends$1 = 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 Multi = function Multi(_ref) { | ||
var mOptions = _ref.options, | ||
renderer = _ref.renderer; | ||
var items = []; // This is shared between all instances of a type (Dialog, Notification, ...) | ||
var current = void 0; | ||
var getInitialState = function getInitialState(vnode, createStream) { | ||
current = createStream(null); | ||
return { | ||
current: current, | ||
redrawOnUpdate: createStream.merge([current]) | ||
}; | ||
}; | ||
/* | ||
@param e: { id, eventName } | ||
*/ | ||
var onChange = function onChange(e) { | ||
if (!current) { | ||
console.error("Cannot set state. Did you set a root element like Dialog to show instances?"); // eslint-disable-line no-console | ||
} | ||
current(e.id); | ||
emit(mOptions.name, e); | ||
}; | ||
var itemIndex = function itemIndex(id) { | ||
var item = findItem(id); | ||
return items.indexOf(item); | ||
}; | ||
var removeItem = function removeItem(id) { | ||
var index = itemIndex(id); | ||
if (index !== -1) { | ||
items.splice(index, 1); | ||
onChange({ id: id, name: "removeItem" }); | ||
} | ||
}; | ||
var replaceItem = function replaceItem(id, newItem) { | ||
var index = itemIndex(id); | ||
if (index !== -1) { | ||
items[index] = newItem; | ||
} | ||
}; | ||
var findItem = function findItem(id) { | ||
// traditional for loop for IE10 | ||
for (var i = 0; i < items.length; i++) { | ||
if (items[i].instanceId === id) { | ||
return items[i]; | ||
} | ||
} | ||
}; | ||
var next = function next() { | ||
if (items.length) { | ||
items[0].show = true; | ||
} | ||
onChange({ id: items.length ? items[0].instanceId : null, name: "next" }); | ||
}; | ||
var remove = function remove() { | ||
var instanceId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : mOptions.defaultId; | ||
if (mOptions.queue) { | ||
items.shift(); | ||
next(); | ||
} else { | ||
removeItem(instanceId); | ||
} | ||
}; | ||
var removeAll = function removeAll() { | ||
items.length = 0; | ||
onChange({ id: null, name: "removeAll" }); | ||
}; | ||
var setPauseState = function setPauseState(pause, instanceId) { | ||
var item = findItem(instanceId); | ||
if (item) { | ||
item.pause = pause; | ||
item.unpause = !pause; | ||
onChange({ id: instanceId, name: pause ? "pause" : "unpause" }); | ||
} | ||
}; | ||
var createItem = function createItem(itemAttrs, instanceId, spawn) { | ||
var resolveShow = void 0; | ||
var resolveHide = void 0; | ||
var attrs = unpackAttrs(itemAttrs); | ||
var didShow = function didShow() { | ||
if (attrs.didShow) { | ||
attrs.didShow(instanceId); | ||
} | ||
onChange({ id: instanceId, name: "didShow" }); | ||
return resolveShow(instanceId); | ||
}; | ||
var showPromise = new Promise(function (resolve) { | ||
return resolveShow = resolve; | ||
}); | ||
var didHide = function didHide() { | ||
if (attrs.didHide) { | ||
attrs.didHide(instanceId); | ||
} | ||
onChange({ id: instanceId, name: "didHide" }); | ||
remove(instanceId); | ||
return resolveHide(instanceId); | ||
}; | ||
var hidePromise = new Promise(function (resolve) { | ||
return resolveHide = resolve; | ||
}); | ||
return _extends$1({}, mOptions, { | ||
instanceId: instanceId, | ||
spawn: spawn, | ||
attrs: itemAttrs, | ||
show: mOptions.queue ? false : true, | ||
showPromise: showPromise, | ||
hidePromise: hidePromise, | ||
didShow: didShow, | ||
didHide: didHide | ||
}); | ||
}; | ||
var count = function count() { | ||
return items.length; | ||
}; | ||
var pause = function pause() { | ||
var instanceId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : mOptions.defaultId; | ||
return setPauseState(true, instanceId); | ||
}; | ||
var unpause = function unpause() { | ||
var instanceId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : mOptions.defaultId; | ||
return setPauseState(false, instanceId); | ||
}; | ||
var show = function show() { | ||
var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
var spawnOpts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; | ||
var instanceId = spawnOpts.id || mOptions.defaultId; | ||
var spawn = spawnOpts.spawn || mOptions.defaultId; | ||
var item = createItem(attrs, instanceId, spawn); | ||
onChange({ id: instanceId, name: "show" }); | ||
if (mOptions.queue) { | ||
items.push(item); | ||
if (items.length === 1) { | ||
next(); | ||
} | ||
} else { | ||
var storedItem = findItem(instanceId); | ||
if (!storedItem) { | ||
items.push(item); | ||
} else { | ||
replaceItem(instanceId, item); | ||
} | ||
} | ||
return item.showPromise; | ||
}; | ||
var hide = function hide() { | ||
var spawnOpts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
var instanceId = spawnOpts.id || mOptions.defaultId; | ||
var item = mOptions.queue && items.length ? items[0] : findItem(instanceId); | ||
if (item) { | ||
item.hide = true; | ||
} | ||
onChange({ id: instanceId, name: "hide" }); | ||
return item ? item.hidePromise : Promise.resolve(instanceId); | ||
}; | ||
var clear = removeAll; | ||
var view = function view(_ref2) { | ||
var attrs = _ref2.attrs; | ||
var spawn = attrs.spawn || mOptions.defaultId; | ||
var candidates = items.filter(function (item) { | ||
return item.show && item.spawn === spawn; | ||
}); | ||
if (mOptions.htmlShowClass && isClient && document.documentElement) { | ||
document.documentElement.classList[candidates.length ? "add" : "remove"](mOptions.htmlShowClass); | ||
} | ||
return !candidates.length ? renderer(mOptions.placeholder) // placeholder because we cannot return null | ||
: renderer(mOptions.holderSelector, { | ||
className: attrs.position === "container" ? "pe-multiple--container" : "pe-multiple--screen" | ||
}, candidates.map(function (itemData) { | ||
return renderer(mOptions.instance, _extends$1({}, { | ||
fromMultipleClassName: mOptions.className, | ||
fromMultipleClear: clear, | ||
fromMultipleDidHide: itemData.didHide, | ||
fromMultipleDidShow: itemData.didShow, | ||
hide: itemData.hide, | ||
holderSelector: mOptions.holderSelector, | ||
instanceId: itemData.instanceId, | ||
key: itemData.key, | ||
pause: itemData.pause, | ||
show: itemData.show, | ||
spawnId: spawn, | ||
transitions: mOptions.transitions, | ||
unpause: itemData.unpause | ||
}, unpackAttrs(itemData.attrs))); | ||
})); | ||
}; | ||
return { | ||
clear: clear, | ||
count: count, | ||
getInitialState: getInitialState, | ||
hide: hide, | ||
pause: pause, | ||
remove: remove, | ||
show: show, | ||
unpause: unpause, | ||
view: view | ||
}; | ||
}; | ||
Multi.displayName = "Multi"; | ||
var getStyle = function getStyle(_ref) { | ||
var element = _ref.element, | ||
selector = _ref.selector, | ||
pseudoSelector = _ref.pseudoSelector, | ||
prop = _ref.prop; | ||
var el = selector ? element.querySelector(selector) : element; | ||
if (!el) { | ||
return; | ||
} | ||
return el.currentStyle ? el.currentStyle[prop] : window.getComputedStyle ? document.defaultView.getComputedStyle(el, pseudoSelector).getPropertyValue(prop) : null; | ||
}; | ||
var stylePropCompare = function stylePropCompare(_ref2) { | ||
var element = _ref2.element, | ||
selector = _ref2.selector, | ||
pseudoSelector = _ref2.pseudoSelector, | ||
prop = _ref2.prop, | ||
equals = _ref2.equals, | ||
contains = _ref2.contains; | ||
var el = selector ? element.querySelector(selector) : element; | ||
if (!el) { | ||
return false; | ||
} | ||
if (equals !== undefined) { | ||
return equals === document.defaultView.getComputedStyle(el, pseudoSelector).getPropertyValue(prop); | ||
} | ||
if (contains !== undefined) { | ||
return document.defaultView.getComputedStyle(el, pseudoSelector).getPropertyValue(prop).indexOf(contains) !== -1; | ||
} | ||
}; | ||
var isRTL = function isRTL(_ref3) { | ||
var _ref3$element = _ref3.element, | ||
element = _ref3$element === undefined ? document : _ref3$element, | ||
selector = _ref3.selector; | ||
return stylePropCompare({ element: element, selector: selector, prop: "direction", equals: "rtl" }); | ||
}; | ||
var styleDurationToMs = function styleDurationToMs(durationStr) { | ||
var parsed = parseFloat(durationStr) * (durationStr.indexOf("ms") === -1 ? 1000 : 1); | ||
return isNaN(parsed) ? 0 : parsed; | ||
}; | ||
var _extends$2 = 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; }; | ||
// defaults | ||
var DEFAULT_DURATION = .240; | ||
var DEFAULT_DELAY = 0; | ||
// const TRANSITION = "both"; | ||
// See: transition | ||
var show = function show(opts) { | ||
return transition(opts, "show"); | ||
}; | ||
var hide = function hide(opts) { | ||
return transition(opts, "hide"); | ||
}; | ||
/* | ||
opts: | ||
- el | ||
- duration | ||
- delay | ||
- showClass | ||
- transitionClass | ||
- before | ||
- show | ||
- hide | ||
- after | ||
- timingFunction | ||
- state (show, hide) | ||
*/ | ||
var transition = function transition(opts, state) { | ||
var el = opts.el; | ||
if (!el) { | ||
return Promise.resolve(); | ||
} else { | ||
return new Promise(function (resolve) { | ||
var style = el.style; | ||
var computedStyle = isClient ? window.getComputedStyle(el) : {}; | ||
var duration = opts.hasDuration ? opts.duration * 1000.0 : styleDurationToMs(computedStyle.transitionDuration); | ||
var delay = opts.hasDelay ? opts.delay * 1000.0 : styleDurationToMs(computedStyle.transitionDelay); | ||
var timingFunction = opts.timingFunction || computedStyle.transitionTimingFunction; | ||
if (opts.transitionClass) { | ||
var transitionClassElement = opts.transitionClassElement || el; | ||
transitionClassElement.classList.add(opts.transitionClass); | ||
} | ||
var before = function before() { | ||
style.transitionDuration = "0ms"; | ||
style.transitionDelay = "0ms"; | ||
opts.before(); | ||
}; | ||
var maybeBefore = opts.before && state === "show" ? before : opts.before && state === "hide" ? before : null; | ||
var after = opts.after ? function () { | ||
return opts.after(); | ||
} : null; | ||
var applyTransition = function applyTransition() { | ||
style.transitionDuration = duration + "ms"; | ||
style.transitionDelay = delay + "ms"; | ||
if (timingFunction) { | ||
style.transitionTimingFunction = timingFunction; | ||
} | ||
if (opts.showClass) { | ||
var showClassElement = opts.showClassElement || el; | ||
showClassElement.classList[state === "show" ? "add" : "remove"](opts.showClass); | ||
} | ||
if (opts.transition) { | ||
opts.transition(); | ||
} | ||
}; | ||
var doTransition = function doTransition() { | ||
applyTransition(); | ||
setTimeout(function () { | ||
if (after) { | ||
after(); | ||
} | ||
if (opts.transitionClass) { | ||
var _transitionClassElement = opts.transitionClassElement || el; | ||
_transitionClassElement.classList.remove(opts.transitionClass); | ||
el.offsetHeight; // force reflow | ||
} | ||
resolve(); | ||
}, duration + delay); | ||
}; | ||
var maybeDelayTransition = function maybeDelayTransition() { | ||
if (duration === 0) { | ||
doTransition(); | ||
} else { | ||
setTimeout(doTransition, 0); | ||
} | ||
}; | ||
if (maybeBefore) { | ||
maybeBefore(); | ||
el.offsetHeight; // force reflow | ||
setTimeout(function () { | ||
maybeDelayTransition(); | ||
}, 0); | ||
} else { | ||
maybeDelayTransition(); | ||
} | ||
}); | ||
} | ||
}; | ||
var transitionComponent = function transitionComponent(_ref) { | ||
var isShow = _ref.isShow, | ||
state = _ref.state, | ||
attrs = _ref.attrs, | ||
domElements = _ref.domElements, | ||
beforeTransition = _ref.beforeTransition, | ||
afterTransition = _ref.afterTransition, | ||
showClass = _ref.showClass, | ||
transitionClass = _ref.transitionClass; | ||
if (state.transitioning()) { | ||
return Promise.resolve(); | ||
} | ||
state.transitioning(true); | ||
state.visible(isShow ? true : false); | ||
if (beforeTransition) { | ||
beforeTransition(); | ||
} | ||
var duration = attrs[isShow ? "showDuration" : "hideDuration"]; | ||
var delay = attrs[isShow ? "showDelay" : "hideDelay"]; | ||
var timingFunction = attrs[isShow ? "showTimingFunction" : "hideTimingFunction"]; | ||
var transitions = attrs.transitions; | ||
var fn = isShow ? show : hide; | ||
var opts1 = _extends$2({}, attrs, domElements, { | ||
showClass: showClass, | ||
transitionClass: transitionClass, | ||
duration: duration, | ||
delay: delay, | ||
timingFunction: timingFunction | ||
}); | ||
var opts2 = _extends$2({}, opts1, transitions && transitions[isShow ? "show" : "hide"](opts1)); | ||
var opts3 = _extends$2({}, opts2, { | ||
duration: opts2.duration !== undefined ? opts2.duration : DEFAULT_DURATION, | ||
hasDuration: opts2.duration !== undefined, | ||
delay: opts2.delay !== undefined ? opts2.delay : DEFAULT_DELAY, | ||
hasDelay: opts2.delay !== undefined | ||
}); | ||
return fn(opts3).then(function () { | ||
var id = state.instanceId; | ||
if (attrs[isShow ? "fromMultipleDidShow" : "fromMultipleDidHide"]) { | ||
attrs[isShow ? "fromMultipleDidShow" : "fromMultipleDidHide"](id); // when used with Multiple; this will call attrs.didShow / attrs.didHide | ||
} else if (attrs[isShow ? "didShow" : "didHide"]) { | ||
attrs[isShow ? "didShow" : "didHide"](id); // when used directly | ||
} | ||
if (afterTransition) { | ||
afterTransition(); | ||
} | ||
state.transitioning(false); | ||
}); | ||
}; | ||
var deprecation = function deprecation(component, _ref) { | ||
var option = _ref.option, | ||
newOption = _ref.newOption, | ||
newComponent = _ref.newComponent; | ||
return option && console.warn(component + ": option '" + option + "' is deprecated and will be removed in later versions. Use '" + newOption + "' instead."), newComponent && !newOption && console.warn(component + ": this component is deprecated and will be removed in later versions. Use '" + newComponent + "' instead."), newComponent && newOption && console.warn(component + ": this component is deprecated and will be removed in later versions. Use '" + newComponent + "' with option '" + newOption + "' instead.") // eslint-disable-line no-console | ||
; | ||
}; | ||
var iconDropdownUp = "<svg xmlns=\"http://www.w3.org/2000/svg\" id=\"dd-up-svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M7 14l5-5 5 5z\"/></svg>"; | ||
var iconDropdownDown = "<svg xmlns=\"http://www.w3.org/2000/svg\" id=\"dd-down-svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M7 10l5 5 5-5z\"/></svg>"; | ||
exports.getAnimationEndEvent = getAnimationEndEvent; | ||
exports.Conditional = Conditional; | ||
exports.filterSupportedAttributes = filterSupportedAttributes; | ||
exports.unpackAttrs = unpackAttrs; | ||
exports.classForSize = classForSize; | ||
exports.isClient = isClient; | ||
exports.isServer = isServer; | ||
exports.isTouch = isTouch; | ||
exports.pointerStartEvent = pointerStartEvent; | ||
exports.pointerEndEvent = pointerEndEvent; | ||
exports.pointerStartMoveEvent = pointerStartMoveEvent; | ||
exports.pointerMoveEvent = pointerMoveEvent; | ||
exports.pointerEndMoveEvent = pointerEndMoveEvent; | ||
exports.Multi = Multi; | ||
exports.show = show; | ||
exports.hide = hide; | ||
exports.transitionComponent = transitionComponent; | ||
exports.throttle = throttle; | ||
exports.subscribe = subscribe; | ||
exports.unsubscribe = unsubscribe; | ||
exports.emit = emit; | ||
exports.getStyle = getStyle; | ||
exports.stylePropCompare = stylePropCompare; | ||
exports.isRTL = isRTL; | ||
exports.styleDurationToMs = styleDurationToMs; | ||
exports.deprecation = deprecation; | ||
exports.iconDropdownUp = iconDropdownUp; | ||
exports.iconDropdownDown = iconDropdownDown; | ||
Object.defineProperty(exports, '__esModule', { value: true }); | ||
}))); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).polythene={})}(this,function(e){"use strict";const t="undefined"!=typeof document,n=!t,i={animation:"animationend",OAnimation:"oAnimationEnd",MozAnimation:"animationend",WebkitAnimation:"webkitAnimationEnd"},o="hidden",s="visible",d="exposing",r="hiding",a={getInitialState:(e,t)=>{const n=e.attrs;if(!n.didHide)return{};const i=n.permanent||n.show,d=t(n.permanent?s:i?s:o);return{mode:d,redrawOnUpdate:t.merge([d])}},onUpdate:({state:e,attrs:t})=>{if(!t.didHide)return;const n=e.mode();t.permanent?n===s&&t.show?e.mode(d):n!==d||t.show||e.mode(r):n===o&&t.show?e.mode(s):n!==s||t.show||e.mode(r)},view:({state:e,attrs:t},{renderer:n})=>{const i=n("span",{className:t.placeholderClassName});if(!t.didHide)return t.permanent||t.inactive||t.show?n(t.instance,t):i;const d=e.mode();return d!==o?n(t.instance,Object.assign({},t,{didHide:n=>(t.didHide(n),e.mode(t.permanent?s:o))},d===r&&{show:!0,hide:!0})):i},displayName:"Conditional"},l=(e,t)=>(e[t]=1,e),u=["key","style","href","id","tabIndex","tabindex","oninit","oncreate","onupdate","onbeforeremove","onremove","onbeforeupdate"],m=e=>"function"==typeof e?e():e,c=!n&&"ontouchstart"in document.documentElement,p=c?["touchstart","click"]:["click"],h=c?["click","mouseup"]:["mouseup"],w=c?["touchstart","mousedown"]:["mousedown"],f=c?["touchmove","mousemove"]:["mousemove"],g=c?["touchend","mouseup"]:["mouseup"];t&&document.querySelector("html").classList.add(c?"pe-touch":"pe-no-touch");const v={},y=(e,n=.05,i=(t?window:{}))=>{let o=!1;return(...t)=>{o||((()=>e.apply(i,t))(),o=!0,setTimeout(()=>o=!1,n))}},S=(e,t)=>{v[e]&&v[e].forEach(e=>e(t))};t&&(window.addEventListener("resize",e=>S("resize",e)),window.addEventListener("scroll",e=>S("scroll",e)),window.addEventListener("keydown",e=>S("keydown",e)),window.addEventListener(h,e=>S(h,e)));const b=({options:e,renderer:n})=>{const i=[];let o;const s=t=>{o||console.error("Cannot set state. Did you set a root element like Dialog to show instances?"),o(t.id),S(e.name,t)},d=e=>{const t=r(e);return i.indexOf(t)},r=e=>{for(let t=0;t<i.length;t++)if(i[t].instanceId===e)return i[t]},a=()=>{i.length&&(i[0].show=!0),s({id:i.length?i[0].instanceId:null,name:"next"})},l=(t=e.defaultId)=>{e.queue?(i.shift(),a()):(e=>{const t=d(e);-1!==t&&(i.splice(t,1),s({id:e,name:"removeItem"}))})(t)},u=(e,t)=>{const n=r(t);n&&(n.pause=e,n.unpause=!e,s({id:t,name:e?"pause":"unpause"}))},c=()=>{i.length=0,s({id:null,name:"removeAll"})};return{clear:c,count:()=>i.length,getInitialState:(e,t)=>({current:o=t(null),redrawOnUpdate:t.merge([o])}),hide:(t={})=>{const n=t.id||e.defaultId,o=e.queue&&i.length?i[0]:r(n);return o&&(o.hide=!0),s({id:n,name:"hide"}),o?o.hidePromise:Promise.resolve(n)},pause:(t=e.defaultId)=>u(!0,t),remove:l,show:(t={},n={})=>{const o=n.id||e.defaultId,u=((t,n,i)=>{let o,d;const r=m(t),a=new Promise(e=>o=e),u=new Promise(e=>d=e);return Object.assign({},e,{instanceId:n,spawn:i,attrs:t,show:!e.queue,showPromise:a,hidePromise:u,didShow:()=>(r.didShow&&r.didShow(n),s({id:n,name:"didShow"}),o(n)),didHide:()=>(r.didHide&&r.didHide(n),s({id:n,name:"didHide"}),l(n),d(n))})})(t,o,n.spawn||e.defaultId);s({id:o,name:"show"}),e.queue?(i.push(u),1===i.length&&a()):r(o)?((e,t)=>{const n=d(e);-1!==n&&(i[n]=t)})(o,u):i.push(u);return u.showPromise},unpause:(t=e.defaultId)=>u(!1,t),view:({attrs:o})=>{const s=o.spawn||e.defaultId,d=i.filter(e=>e.show&&e.spawn===s);return e.htmlShowClass&&t&&document.documentElement&&document.documentElement.classList[d.length?"add":"remove"](e.htmlShowClass),d.length?n(e.holderSelector,{className:"container"===o.position?"pe-multiple--container":"pe-multiple--screen"},d.map(t=>n(e.instance,Object.assign({},{fromMultipleClassName:e.className,fromMultipleClear:c,fromMultipleDidHide:t.didHide,fromMultipleDidShow:t.didShow,hide:t.hide,holderSelector:e.holderSelector,instanceId:t.instanceId,key:t.key,pause:t.pause,show:t.show,spawnId:s,transitions:e.transitions,unpause:t.unpause},m(t.attrs))))):n(e.placeholder)}}};b.displayName="Multi";const C=({element:e,selector:t,pseudoSelector:n,prop:i,equals:o,contains:s})=>{const d=t?e.querySelector(t):e;return!!d&&(void 0!==o?o===document.defaultView.getComputedStyle(d,n).getPropertyValue(i):void 0!==s?-1!==document.defaultView.getComputedStyle(d,n).getPropertyValue(i).indexOf(s):void 0)},D=e=>{const t=parseFloat(e)*(-1===e.indexOf("ms")?1e3:1);return isNaN(t)?0:t},E=e=>M(e,"show"),I=e=>M(e,"hide"),M=(e,n)=>{const i=e.el;return i?new Promise(o=>{const s=i.style,d=t?window.getComputedStyle(i):{},r=e.hasDuration?1e3*e.duration:D(d.transitionDuration),a=e.hasDelay?1e3*e.delay:D(d.transitionDelay),l=e.timingFunction||d.transitionTimingFunction;if(e.transitionClass){(e.transitionClassElement||i).classList.add(e.transitionClass)}const u=()=>{s.transitionDuration="0ms",s.transitionDelay="0ms",e.before()},m=e.before&&"show"===n?u:e.before&&"hide"===n?u:null,c=e.after?()=>e.after():null,p=()=>{(()=>{s.transitionDuration=r+"ms",s.transitionDelay=a+"ms",l&&(s.transitionTimingFunction=l),e.showClass&&(e.showClassElement||i).classList["show"===n?"add":"remove"](e.showClass);e.transition&&e.transition()})(),setTimeout(()=>{if(c&&c(),e.transitionClass){(e.transitionClassElement||i).classList.remove(e.transitionClass),i.offsetHeight}o()},r+a)},h=()=>{0===r?p():setTimeout(p,0)};m?(m(),i.offsetHeight,setTimeout(()=>{h()},0)):h()}):Promise.resolve()};e.getAnimationEndEvent=(()=>{if(t){const e=document.createElement("fakeelement");for(let t in i)if(void 0!==e.style[t])return i[t]}}),e.Conditional=a,e.filterSupportedAttributes=((e,{add:t=[],remove:n=[]}={})=>{const i=n.reduce(l,{}),o=u.concat(t).filter(e=>!i[e]).reduce(l,{});return Object.keys(e).reduce((t,n)=>(o[n]&&(t[n]=e[n]),t),{})}),e.unpackAttrs=m,e.classForSize=((e,t="regular")=>(e=>({small:e.small,regular:e.regular,medium:e.medium,large:e.large,fab:e.fab}))(e)[t]),e.isClient=t,e.isServer=n,e.isTouch=c,e.pointerStartEvent=p,e.pointerEndEvent=h,e.pointerStartMoveEvent=w,e.pointerMoveEvent=f,e.pointerEndMoveEvent=g,e.Multi=b,e.show=E,e.hide=I,e.transitionComponent=(({isShow:e,state:t,attrs:n,domElements:i,beforeTransition:o,afterTransition:s,showClass:d,transitionClass:r})=>{if(t.transitioning())return Promise.resolve();t.transitioning(!0),t.visible(!!e),o&&o();const a=n[e?"showDuration":"hideDuration"],l=n[e?"showDelay":"hideDelay"],u=n[e?"showTimingFunction":"hideTimingFunction"],m=n.transitions,c=e?E:I,p=Object.assign({},n,i,{showClass:d,transitionClass:r,duration:a,delay:l,timingFunction:u}),h=Object.assign({},p,m&&m[e?"show":"hide"](p));return c(Object.assign({},h,{duration:void 0!==h.duration?h.duration:.24,hasDuration:void 0!==h.duration,delay:void 0!==h.delay?h.delay:0,hasDelay:void 0!==h.delay})).then(()=>{const i=t.instanceId;n[e?"fromMultipleDidShow":"fromMultipleDidHide"]?n[e?"fromMultipleDidShow":"fromMultipleDidHide"](i):n[e?"didShow":"didHide"]&&n[e?"didShow":"didHide"](i),s&&s(),t.transitioning(!1)})}),e.throttle=y,e.subscribe=((e,t,n)=>{v[e]=v[e]||[],v[e].push(n?y(t,n):t)}),e.unsubscribe=((e,t)=>{if(!v[e])return;const n=v[e].indexOf(t);n>-1&&v[e].splice(n,1)}),e.emit=S,e.getStyle=(({element:e,selector:t,pseudoSelector:n,prop:i})=>{const o=t?e.querySelector(t):e;if(o)return o.currentStyle?o.currentStyle[i]:window.getComputedStyle?document.defaultView.getComputedStyle(o,n).getPropertyValue(i):null}),e.stylePropCompare=C,e.isRTL=(({element:e=document,selector:t})=>C({element:e,selector:t,prop:"direction",equals:"rtl"})),e.styleDurationToMs=D,e.deprecation=((e,{option:t,newOption:n,newComponent:i})=>(t&&console.warn(`${e}: option '${t}' is deprecated and will be removed in later versions. Use '${n}' instead.`),i&&!n&&console.warn(`${e}: this component is deprecated and will be removed in later versions. Use '${i}' instead.`),i&&n&&console.warn(`${e}: this component is deprecated and will be removed in later versions. Use '${i}' with option '${n}' instead.`))),e.iconDropdownUp='<svg xmlns="http://www.w3.org/2000/svg" id="dd-up-svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 14l5-5 5 5z"/></svg>',e.iconDropdownDown='<svg xmlns="http://www.w3.org/2000/svg" id="dd-down-svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 10l5 5 5-5z"/></svg>',Object.defineProperty(e,"__esModule",{value:!0})}); | ||
//# sourceMappingURL=polythene-core.js.map |
{ | ||
"name": "polythene-core", | ||
"version": "1.3.3", | ||
"version": "1.4.0", | ||
"description": "", | ||
@@ -9,3 +9,3 @@ "main": "dist/polythene-core", | ||
"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", | ||
"rollup": "../../node_modules/rollup/bin/rollup -c ../../scripts/bundling/rollup.umd.js && ../../node_modules/rollup/bin/rollup -c ../../scripts/bundling/rollup.es.js", | ||
"build": "npm run clean && npm run rollup" | ||
@@ -12,0 +12,0 @@ }, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
63450
595