waapi-timing-properties
Version:
Timing properties for animation effects used in Web Animations API.
4 lines (3 loc) • 3.82 kB
JavaScript
//waapi-timing-properties v1.4.9 https://github.com/webanimate/waapi-timing-properties#readme
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).WTProperties={})}(this,(function(e){"use strict";function t(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var r,n;var u,i,a=t(n?r:(n=1,r=function(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}));var s,o,f=t(function(){if(i)return u;i=1;var e=Object.prototype.toString,t=Array.isArray;return u=function(r){return"string"==typeof r||!t(r)&&function(e){return!!e&&"object"==typeof e}(r)&&"[object String]"==e.call(r)}}());var l=t(function(){if(o)return s;o=1;var e=Object.prototype.toString;return s=function(t){return"number"==typeof t||function(e){return!!e&&"object"==typeof e}(t)&&"[object Number]"==e.call(t)}}());const c={id:{type:"String"},delay:{type:"Number",min:0,max:Number.MAX_VALUE,default:0},direction:{type:"String",values:["normal","reverse","alternate","alternate-reverse"],default:"normal"},duration:{type:"Number",min:0,max:Number.MAX_VALUE,default:0},easing:{type:"String",values:["linear","cubic-bezier(","ease","ease-in","ease-out","ease-in-out","steps(","step-start","step-end"],valuesCubicBezier:{linear:"0.25, 0.25, 0.75, 0.75",ease:"0.25, 0.1, 0.25, 1","ease-in":"0.42, 0, 1, 1","ease-out":"0, 0, 0.58, 1","ease-in-out":"0.42, 0, 0.58, 1"},valuesSteps:{"step-start":"1, jump-start","step-end":"1, jump-end"},default:"linear"},endDelay:{type:"Number",min:0,max:Number.MAX_VALUE,default:0},fill:{type:"String",values:["none","forwards","backwards","both","auto"],default:"auto"},iterationStart:{type:"Number",min:0,max:Number.MAX_VALUE,default:0},iterations:{type:"Number",min:0,max:1/0,default:1},composite:{type:"String",values:["add","accumulate","replace","auto"],default:"replace"},iterationComposite:{type:"String",values:["accumulate","replace"],default:"replace"}},p=[];Object.keys(c).forEach((e=>{p.push(e)}));const d=e=>{const t=e.substring(6,e.length-1).split(",");return!(t.length>2)&&(r=t[0],!!(/^[+]?\d+?$/.test(r.trim())&&Number(r)>0)&&!(t[1]&&!["end","start","jump-both","jump-none","jump-end","jump-start"].includes(t[1].trim())));var r},b=(e,t)=>{if(!l(t)&&!f(t))return!1;const r=c[e];if("Number"!==r.type){if(r.values){const n=(t=t.toString()).indexOf("(");if(n>0){if("easing"===e)return")"===t.substring(t.length-1)&&("cubic-bezier("===t.substring(0,13)?(e=>{const t=e.substring(13,e.length-1).split(",");if(4===t.length){for(const e of t.keys()){if(r=t[e],!/^[-+]?\d*\.?\d+([eE]?[-+]?\d+)?$/.test(r.trim()))return!1;if([0,2].includes(e)&&(Number(t[e])<0||Number(t[e])>1))return!1}return!0}var r;return!1})(t):"steps("===t.substring(0,6)&&d(t));t=t.substring(0,n+1)}for(const e of r.values)if(t===e)return!0;return!1}return!0}return t>=r.min&&t<=r.max},m=e=>(f(e)&&(e=e.trim().replace(/\s+/g," ").replace(/\( /,"(").replace(/ \)/,")").replace(" ,",",")),e),y=(e,t=!0,r=!1)=>{if(Object.keys(e).length){if(Array.isArray(e)){for(const t of e)if(!p.includes(t))return!!r&&t;return!0}if(a(e)){for(const n of Object.keys(e)){if(!(n in c))return!!r&&`${n}: ${e[n]}`;if(t&&(e[n]=m(e[n]),!b(n,e[n])))return!!r&&`${n}: ${e[n]}`}return!0}if(f(e)&&p.includes(e))return!0}return!1};e.properties=c,e.propertiesNames=p,e.sanitize=(e,t=!0,r=!0)=>{let n;if(Array.isArray(e)?n=[]:a(e)&&(n={}),Object.keys(e).length)if(Array.isArray(e))for(const t of e)p.includes(t)&&n.push(t);else a(e)?Object.keys(e).forEach((u=>{u in c&&(e[u]=m(e[u]),t?b(u,e[u])?n[u]=e[u]:r&&void 0!==c[u].default&&(n[u]=c[u].default):n[u]=e[u])})):(n="",y(e)&&(n=e));return n},e.validate=y,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=wtproperties.js.map