UNPKG

timered-counter

Version:

Make the value change more vivid and natural

272 lines (254 loc) 68.5 kB
var t,e;t=this,e=function(t){function e(t,e,i,r){var s,n=arguments.length,o=n<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,i,r);else for(var a=t.length-1;a>=0;a--)(s=t[a])&&(o=(n<3?s(o):n>3?s(e,i,o):s(e,i))||o);return n>3&&o&&Object.defineProperty(e,i,o),o}function i(t,e,i,r){if("a"===i&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?r:"a"===i?r.call(t):r?r.value:e.get(t)}"function"==typeof SuppressedError&&SuppressedError; /** * @license * Copyright 2019 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ const r=globalThis,s=r.ShadowRoot&&(void 0===r.ShadyCSS||r.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,n=Symbol(),o=new WeakMap;let a=class{constructor(t,e,i){if(this._$cssResult$=!0,i!==n)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const e=this.t;if(s&&void 0===t){const i=void 0!==e&&1===e.length;i&&(t=o.get(e)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),i&&o.set(e,t))}return t}toString(){return this.cssText}};const l=(t,...e)=>{const i=1===t.length?t[0]:e.reduce(((e,i,r)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(i)+t[r+1]),t[0]);return new a(i,t,n)},c=s?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const i of t.cssRules)e+=i.cssText;return(t=>new a("string"==typeof t?t:t+"",void 0,n))(e)})(t):t /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */,{is:u,defineProperty:h,getOwnPropertyDescriptor:p,getOwnPropertyNames:d,getOwnPropertySymbols:f,getPrototypeOf:m}=Object,y=globalThis,_=y.trustedTypes,g=_?_.emptyScript:"",A=y.reactiveElementPolyfillSupport,b=(t,e)=>t,$={toAttribute(t,e){switch(e){case Boolean:t=t?g:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let i=t;switch(e){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},v=(t,e)=>!u(t,e),S={attribute:!0,type:String,converter:$,reflect:!1,hasChanged:v};Symbol.metadata??=Symbol("metadata"),y.litPropertyMetadata??=new WeakMap;class P extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,e=S){if(e.state&&(e.attribute=!1),this._$Ei(),this.elementProperties.set(t,e),!e.noAccessor){const i=Symbol(),r=this.getPropertyDescriptor(t,i,e);void 0!==r&&h(this.prototype,t,r)}}static getPropertyDescriptor(t,e,i){const{get:r,set:s}=p(this.prototype,t)??{get(){return this[e]},set(t){this[e]=t}};return{get(){return r?.call(this)},set(e){const n=r?.call(this);s.call(this,e),this.requestUpdate(t,n,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??S}static _$Ei(){if(this.hasOwnProperty(b("elementProperties")))return;const t=m(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(b("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(b("properties"))){const t=this.properties,e=[...d(t),...f(t)];for(const i of e)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const e=litPropertyMetadata.get(t);if(void 0!==e)for(const[t,i]of e)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,e]of this.elementProperties){const i=this._$Eu(t,e);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const i=new Set(t.flat(1/0).reverse());for(const t of i)e.unshift(c(t))}else void 0!==t&&e.push(c(t));return e}static _$Eu(t,e){const i=e.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,e=this.constructor.elementProperties;for(const i of e.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return((t,e)=>{if(s)t.adoptedStyleSheets=e.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const i of e){const e=document.createElement("style"),s=r.litNonce;void 0!==s&&e.setAttribute("nonce",s),e.textContent=i.cssText,t.appendChild(e)}})(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,e,i){this._$AK(t,i)}_$EC(t,e){const i=this.constructor.elementProperties.get(t),r=this.constructor._$Eu(t,i);if(void 0!==r&&!0===i.reflect){const s=(void 0!==i.converter?.toAttribute?i.converter:$).toAttribute(e,i.type);this._$Em=t,null==s?this.removeAttribute(r):this.setAttribute(r,s),this._$Em=null}}_$AK(t,e){const i=this.constructor,r=i._$Eh.get(t);if(void 0!==r&&this._$Em!==r){const t=i.getPropertyOptions(r),s="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:$;this._$Em=r,this[r]=s.fromAttribute(e,t.type),this._$Em=null}}requestUpdate(t,e,i){if(void 0!==t){if(i??=this.constructor.getPropertyOptions(t),!(i.hasChanged??v)(this[t],e))return;this.P(t,e,i)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(t,e,i){this._$AL.has(t)||this._$AL.set(t,e),!0===i.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,e]of this._$Ep)this[t]=e;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[e,i]of t)!0!==i.wrapped||this._$AL.has(e)||void 0===this[e]||this.P(e,this[e],i)}let t=!1;const e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(e)):this._$EU()}catch(e){throw t=!1,this._$EU(),e}t&&this._$AE(e)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EC(t,this[t]))),this._$EU()}updated(t){}firstUpdated(t){}}P.elementStyles=[],P.shadowRootOptions={mode:"open"},P[b("elementProperties")]=new Map,P[b("finalized")]=new Map,A?.({ReactiveElement:P}),(y.reactiveElementVersions??=[]).push("2.0.4"); /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ const x=globalThis,w=x.trustedTypes,T=w?w.createPolicy("lit-html",{createHTML:t=>t}):void 0,D="$lit$",O=`lit$${Math.random().toFixed(9).slice(2)}$`,E="?"+O,C=`<${E}>`,M=document,N=()=>M.createComment(""),k=t=>null===t||"object"!=typeof t&&"function"!=typeof t,I=Array.isArray,R="[ \t\n\f\r]",U=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,L=/-->/g,V=/>/g,j=RegExp(`>|${R}(?:([^\\s"'>=/]+)(${R}*=${R}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),B=/'/g,H=/"/g,z=/^(?:script|style|textarea|title)$/i,F=(t=>(e,...i)=>({_$litType$:t,strings:e,values:i}))(1),Y=Symbol.for("lit-noChange"),W=Symbol.for("lit-nothing"),Q=new WeakMap,q=M.createTreeWalker(M,129);function K(t,e){if(!I(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==T?T.createHTML(e):e}class G{constructor({strings:t,_$litType$:e},i){let r;this.parts=[];let s=0,n=0;const o=t.length-1,a=this.parts,[l,c]=((t,e)=>{const i=t.length-1,r=[];let s,n=2===e?"<svg>":3===e?"<math>":"",o=U;for(let e=0;e<i;e++){const i=t[e];let a,l,c=-1,u=0;for(;u<i.length&&(o.lastIndex=u,l=o.exec(i),null!==l);)u=o.lastIndex,o===U?"!--"===l[1]?o=L:void 0!==l[1]?o=V:void 0!==l[2]?(z.test(l[2])&&(s=RegExp("</"+l[2],"g")),o=j):void 0!==l[3]&&(o=j):o===j?">"===l[0]?(o=s??U,c=-1):void 0===l[1]?c=-2:(c=o.lastIndex-l[2].length,a=l[1],o=void 0===l[3]?j:'"'===l[3]?H:B):o===H||o===B?o=j:o===L||o===V?o=U:(o=j,s=void 0);const h=o===j&&t[e+1].startsWith("/>")?" ":"";n+=o===U?i+C:c>=0?(r.push(a),i.slice(0,c)+D+i.slice(c)+O+h):i+O+(-2===c?e:h)}return[K(t,n+(t[i]||"<?>")+(2===e?"</svg>":3===e?"</math>":"")),r]})(t,e);if(this.el=G.createElement(l,i),q.currentNode=this.el.content,2===e||3===e){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=q.nextNode())&&a.length<o;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(D)){const e=c[n++],i=r.getAttribute(t).split(O),o=/([.?@])?(.*)/.exec(e);a.push({type:1,index:s,name:o[2],strings:i,ctor:"."===o[1]?et:"?"===o[1]?it:"@"===o[1]?rt:tt}),r.removeAttribute(t)}else t.startsWith(O)&&(a.push({type:6,index:s}),r.removeAttribute(t));if(z.test(r.tagName)){const t=r.textContent.split(O),e=t.length-1;if(e>0){r.textContent=w?w.emptyScript:"";for(let i=0;i<e;i++)r.append(t[i],N()),q.nextNode(),a.push({type:2,index:++s});r.append(t[e],N())}}}else if(8===r.nodeType)if(r.data===E)a.push({type:2,index:s});else{let t=-1;for(;-1!==(t=r.data.indexOf(O,t+1));)a.push({type:7,index:s}),t+=O.length-1}s++}}static createElement(t,e){const i=M.createElement("template");return i.innerHTML=t,i}}function J(t,e,i=t,r){if(e===Y)return e;let s=void 0!==r?i._$Co?.[r]:i._$Cl;const n=k(e)?void 0:e._$litDirective$;return s?.constructor!==n&&(s?._$AO?.(!1),void 0===n?s=void 0:(s=new n(t),s._$AT(t,i,r)),void 0!==r?(i._$Co??=[])[r]=s:i._$Cl=s),void 0!==s&&(e=J(t,s._$AS(t,e.values),s,r)),e}let Z=class{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:e},parts:i}=this._$AD,r=(t?.creationScope??M).importNode(e,!0);q.currentNode=r;let s=q.nextNode(),n=0,o=0,a=i[0];for(;void 0!==a;){if(n===a.index){let e;2===a.type?e=new X(s,s.nextSibling,this,t):1===a.type?e=new a.ctor(s,a.name,a.strings,this,t):6===a.type&&(e=new st(s,this,t)),this._$AV.push(e),a=i[++o]}n!==a?.index&&(s=q.nextNode(),n++)}return q.currentNode=M,r}p(t){let e=0;for(const i of this._$AV)void 0!==i&&(void 0!==i.strings?(i._$AI(t,i,e),e+=i.strings.length-2):i._$AI(t[e])),e++}};class X{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,i,r){this.type=2,this._$AH=W,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=i,this.options=r,this._$Cv=r?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return void 0!==e&&11===t?.nodeType&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=J(this,t,e),k(t)?t===W||null==t||""===t?(this._$AH!==W&&this._$AR(),this._$AH=W):t!==this._$AH&&t!==Y&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):(t=>I(t)||"function"==typeof t?.[Symbol.iterator])(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==W&&k(this._$AH)?this._$AA.nextSibling.data=t:this.T(M.createTextNode(t)),this._$AH=t}$(t){const{values:e,_$litType$:i}=t,r="number"==typeof i?this._$AC(t):(void 0===i.el&&(i.el=G.createElement(K(i.h,i.h[0]),this.options)),i);if(this._$AH?._$AD===r)this._$AH.p(e);else{const t=new Z(r,this),i=t.u(this.options);t.p(e),this.T(i),this._$AH=t}}_$AC(t){let e=Q.get(t.strings);return void 0===e&&Q.set(t.strings,e=new G(t)),e}k(t){I(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let i,r=0;for(const s of t)r===e.length?e.push(i=new X(this.O(N()),this.O(N()),this,this.options)):i=e[r],i._$AI(s),r++;r<e.length&&(this._$AR(i&&i._$AB.nextSibling,r),e.length=r)}_$AR(t=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);t&&t!==this._$AB;){const e=t.nextSibling;t.remove(),t=e}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}let tt=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,i,r,s){this.type=1,this._$AH=W,this._$AN=void 0,this.element=t,this.name=e,this._$AM=r,this.options=s,i.length>2||""!==i[0]||""!==i[1]?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=W}_$AI(t,e=this,i,r){const s=this.strings;let n=!1;if(void 0===s)t=J(this,t,e,0),n=!k(t)||t!==this._$AH&&t!==Y,n&&(this._$AH=t);else{const r=t;let o,a;for(t=s[0],o=0;o<s.length-1;o++)a=J(this,r[i+o],e,o),a===Y&&(a=this._$AH[o]),n||=!k(a)||a!==this._$AH[o],a===W?t=W:t!==W&&(t+=(a??"")+s[o+1]),this._$AH[o]=a}n&&!r&&this.j(t)}j(t){t===W?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}};class et extends tt{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===W?void 0:t}}class it extends tt{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==W)}}class rt extends tt{constructor(t,e,i,r,s){super(t,e,i,r,s),this.type=5}_$AI(t,e=this){if((t=J(this,t,e,0)??W)===Y)return;const i=this._$AH,r=t===W&&i!==W||t.capture!==i.capture||t.once!==i.once||t.passive!==i.passive,s=t!==W&&(i===W||r);r&&this.element.removeEventListener(this.name,this,i),s&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class st{constructor(t,e,i){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=i}get _$AU(){return this._$AM._$AU}_$AI(t){J(this,t)}}const nt={I:X},ot=x.litHtmlPolyfillSupport;ot?.(G,X),(x.litHtmlVersions??=[]).push("3.2.1"); /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ let at=class extends P{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=((t,e,i)=>{const r=i?.renderBefore??e;let s=r._$litPart$;if(void 0===s){const t=i?.renderBefore??null;r._$litPart$=s=new X(e.insertBefore(N(),t),t,void 0,i??{})}return s._$AI(t),s})(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return Y}};at._$litElement$=!0,at.finalized=!0,globalThis.litElementHydrateSupport?.({LitElement:at});const lt=globalThis.litElementPolyfillSupport;lt?.({LitElement:at}),(globalThis.litElementVersions??=[]).push("4.1.1"); /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ const ct={attribute:!0,type:String,converter:$,reflect:!1,hasChanged:v},ut=(t=ct,e,i)=>{const{kind:r,metadata:s}=i;let n=globalThis.litPropertyMetadata.get(s);if(void 0===n&&globalThis.litPropertyMetadata.set(s,n=new Map),n.set(i.name,t),"accessor"===r){const{name:r}=i;return{set(i){const s=e.get.call(this);e.set.call(this,i),this.requestUpdate(r,s,t)},init(e){return void 0!==e&&this.P(r,void 0,t),e}}}if("setter"===r){const{name:r}=i;return function(i){const s=this[r];e.call(this,i),this.requestUpdate(r,s,t)}}throw Error("Unsupported decorator location: "+r)};function ht(t){return(e,i)=>"object"==typeof i?ut(t,e,i):((t,e,i)=>{const r=e.hasOwnProperty(i);return e.constructor.createProperty(i,r?{...t,wrapped:!0}:t),r?Object.getOwnPropertyDescriptor(e,i):void 0})(t,e,i) /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */}function pt(t){return ht({...t,state:!0,attribute:!1})} /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ function dt(t,e){return(e,i,r)=>((t,e,i)=>(i.configurable=!0,i.enumerable=!0,Reflect.decorate&&"object"!=typeof e&&Object.defineProperty(t,e,i),i))(e,i,{get(){return(e=>e.renderRoot?.querySelector(t)??null)(this)}})} /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */const ft=1,mt=2,yt=t=>(...e)=>({_$litDirective$:t,values:e});let _t=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}; /** * @license * Copyright 2020 Google LLC * SPDX-License-Identifier: BSD-3-Clause */const{I:gt}=nt,At=()=>document.createComment(""),bt=(t,e,i)=>{const r=t._$AA.parentNode,s=void 0===e?t._$AB:e._$AA;if(void 0===i){const e=r.insertBefore(At(),s),n=r.insertBefore(At(),s);i=new gt(e,n,t,t.options)}else{const e=i._$AB.nextSibling,n=i._$AM,o=n!==t;if(o){let e;i._$AQ?.(t),i._$AM=t,void 0!==i._$AP&&(e=t._$AU)!==n._$AU&&i._$AP(e)}if(e!==s||o){let t=i._$AA;for(;t!==e;){const e=t.nextSibling;r.insertBefore(t,s),t=e}}}return i},$t=(t,e,i=t)=>(t._$AI(e,i),t),vt={},St=t=>{t._$AP?.(!1,!0);let e=t._$AA;const i=t._$AB.nextSibling;for(;e!==i;){const t=e.nextSibling;e.remove(),e=t}},Pt=(t,e,i)=>{const r=new Map;for(let s=e;s<=i;s++)r.set(t[s],s);return r},xt=yt(class extends _t{constructor(t){if(super(t),t.type!==mt)throw Error("repeat() can only be used in text expressions")}dt(t,e,i){let r;void 0===i?i=e:void 0!==e&&(r=e);const s=[],n=[];let o=0;for(const e of t)s[o]=r?r(e,o):o,n[o]=i(e,o),o++;return{values:n,keys:s}}render(t,e,i){return this.dt(t,e,i).values}update(t,[e,i,r]){const s=(t=>t._$AH)(t),{values:n,keys:o}=this.dt(e,i,r);if(!Array.isArray(s))return this.ut=o,n;const a=this.ut??=[],l=[];let c,u,h=0,p=s.length-1,d=0,f=n.length-1;for(;h<=p&&d<=f;)if(null===s[h])h++;else if(null===s[p])p--;else if(a[h]===o[d])l[d]=$t(s[h],n[d]),h++,d++;else if(a[p]===o[f])l[f]=$t(s[p],n[f]),p--,f--;else if(a[h]===o[f])l[f]=$t(s[h],n[f]),bt(t,l[f+1],s[h]),h++,f--;else if(a[p]===o[d])l[d]=$t(s[p],n[d]),bt(t,s[h],s[p]),p--,d++;else if(void 0===c&&(c=Pt(o,d,f),u=Pt(a,h,p)),c.has(a[h]))if(c.has(a[p])){const e=u.get(o[d]),i=void 0!==e?s[e]:null;if(null===i){const e=bt(t,s[h]);$t(e,n[d]),l[d]=e}else l[d]=$t(i,n[d]),bt(t,s[h],i),s[e]=null;d++}else St(s[p]),p--;else St(s[h]),h++;for(;d<=f;){const e=bt(t,l[f+1]);$t(e,n[d]),l[d++]=e}for(;h<=p;){const t=s[h++];null!==t&&St(t)}return this.ut=o,((t,e=vt)=>{t._$AH=e})(t,l),Y}}); /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */var wt={done:!0,hasNext:!1},Tt={done:!1,hasNext:!1},Dt=()=>wt;function Ot(t,...e){let i=t,r=e.map((t=>"lazy"in t?function(t){let{lazy:e,lazyArgs:i}=t,r=e(...i);return Object.assign(r,{isSingle:e.single??!1,index:0,items:[]})}(t):void 0)),s=0;for(;s<e.length;){if(void 0===r[s]||!Ct(i)){i=(0,e[s])(i),s+=1;continue}let t=[];for(let i=s;i<e.length;i++){let e=r[i];if(void 0===e||(t.push(e),e.isSingle))break}let n=[];for(let e of i)if(Et(e,n,t))break;let{isSingle:o}=t.at(-1);i=o?n[0]:n,s+=t.length}return i}function Et(t,e,i){if(0===i.length)return e.push(t),!1;let r=t,s=Tt,n=!1;for(let[t,o]of i.entries()){let{index:a,items:l}=o;if(l.push(r),s=o(r,a,l),o.index+=1,s.hasNext){if(s.hasMany){for(let r of s.next)if(Et(r,e,i.slice(t+1)))return!0;return n}r=s.next}if(!s.hasNext)break;s.done&&(n=!0)}return s.hasNext&&e.push(r),n}function Ct(t){return"string"==typeof t||"object"==typeof t&&null!==t&&Symbol.iterator in t}function Mt(t,e,i){let r=t.length-e.length;if(0===r)return t(...e);if(1===r)return function(t,e,i){let r=i=>t(i,...e);return void 0===i?r:Object.assign(r,{lazy:i,lazyArgs:e})}(t,e,i);throw new Error("Wrong number of arguments")}function Nt(...t){return Mt(kt,t)}var kt=(t,e)=>t.length>=e;function It(t,e){let i=[];for(let r=t;r<e;r++)i.push(r);return i}function Rt(t,e){if(!Nt(e,1))return{...t};if(!Nt(e,2)){let{[e[0]]:i,...r}=t;return r}let i={...t};for(let t of e)delete i[t];return i}function Ut(...t){return Mt(Lt,t)}var Lt=(t,e)=>({...t,...e});function Vt(...t){return Mt(jt,t,Bt)}var jt=(t,e)=>t.map(e),Bt=t=>(e,i,r)=>({done:!1,hasNext:!0,next:t(e,i,r)});function Ht(t){return"number"==typeof t&&!Number.isNaN(t)}function zt(t){return"string"==typeof t}function Ft(t){return void 0===t||("string"==typeof t||Array.isArray(t)?0===t.length:0===Object.keys(t).length)}function Yt(t){return null==t}function Wt(t){return Array.isArray(t)}function Qt(t){return"boolean"==typeof t}function qt(t){return t instanceof Date}function Kt(...t){return Mt(Gt,t)}function Gt(t,e){if(t===e||Object.is(t,e))return!0;if("object"!=typeof t||"object"!=typeof e||null===t||null===e||Object.getPrototypeOf(t)!==Object.getPrototypeOf(e))return!1;if(Array.isArray(t))return function(t,e){if(t.length!==e.length)return!1;for(let[i,r]of t.entries())if(!Gt(r,e[i]))return!1;return!0}(t,e);if(t instanceof Map)return function(t,e){if(t.size!==e.size)return!1;for(let[i,r]of t.entries())if(!e.has(i)||!Gt(r,e.get(i)))return!1;return!0}(t,e);if(t instanceof Set)return function(t,e){if(t.size!==e.size)return!1;let i=[...e];for(let e of t){let t=!1;for(let[r,s]of i.entries())if(Gt(e,s)){t=!0,i.splice(r,1);break}if(!t)return!1}return!0}(t,e);if(t instanceof Date)return t.getTime()===e.getTime();if(t instanceof RegExp)return t.toString()===e.toString();if(Object.keys(t).length!==Object.keys(e).length)return!1;for(let[i,r]of Object.entries(t))if(!(i in e)||!Gt(r,e[i]))return!1;return!0}function Jt(...t){return function(t,e){let i=e.length-t.length;if(1===i){let[i,...r]=e;return Ot(i,{lazy:t,lazyArgs:r})}if(0===i){let i={lazy:t,lazyArgs:e};return Object.assign((t=>Ot(t,i)),i)}throw new Error("Wrong number of arguments")}(Zt,t)}function Zt(t){if(0===t.length)return Dt;let e=new Map;for(let i of t)e.set(i,(e.get(i)??0)+1);return t=>{let i=e.get(t);return void 0===i||0===i?Tt:(1===i?e.delete(t):e.set(t,i-1),{hasNext:!0,next:t,done:0===e.size})}}function Xt(t,e){const i=function(t,e){return function(t){return"function"==typeof t}(t)?t(e):t}(t,e),{data:r}=e,s=[];for(let t=0;t<r.length;t+=1){const e=Wt(i)?i[t]:i;s.push(e)}return s}function te(t,e){const i=Xt(t,e),{data:r}=e,s=[];for(let t=0;t<r.length;t+=1){const{digits:e}=r[t],n=i[t];s.push([]);for(let i=0;i<e.length;i+=1){const e=Wt(n)?n[i]:n;s[t].push(e)}}return s}function ee(t,e){const i=te(t,e),{data:r}=e,s=[];for(let t=0;t<r.length;t+=1){const{digits:e}=r[t],n=i[t];s.push([]);for(let i=0;i<e.length;i+=1){const{data:r}=e[i],o=n[i];s[t].push([]);for(let e=0;e<r.length;e+=1){const r=Wt(o)?o[e]:o;s[t][i].push(r)}}}return s}function ie(t,e){return Ut(t??{},e??{})}function re(t=[],e=[]){const i=Array.from(new Set(Object.keys(t).concat(Object.keys(e))));for(const r of i){const i=Number.parseInt(r,10);t[i]=ie(t[i],e[i])}return t}function se(t=[],e=[]){const i=Array.from(new Set(Object.keys(t).concat(Object.keys(e))));for(const r of i){const i=Number.parseInt(r,10);t[i]=re(t[i],e[i])}return t}const ne=t=>{class i extends t{constructor(){super(...arguments),this.cellStyles={},this.cachedCellStyles=[],this.digitStyles={},this.cachedDigitStyles=[],this.partStyles={},this.cachedPartStyles=[],this.color="inherit"}extractCellStyles(){const t={preprocessData:this.partPreprocessDataList,data:this.parts,direction:this.direction,value:[this.value,this.oldValue]},e=function(t=[],e=[]){const i=Array.from(new Set(Object.keys(t).concat(Object.keys(e))));for(const r of i){const i=Number.parseInt(r,10);t[i]=se(t[i],e[i])}return t}(ee(this.cellStyles??{},t),ee(this.cellStylesDynamic??{},t));return Kt(this.cachedCellStyles,e)||(this.cachedCellStyles=e),this.cachedCellStyles}extractDigitStyles(){const t={preprocessData:this.partPreprocessDataList,data:this.parts,direction:this.direction,value:[this.value,this.oldValue]},e=se(te(this.digitStyles??{},t),te(this.digitStylesDynamic??{},t));return Kt(this.cachedDigitStyles,e)||(this.cachedDigitStyles=e),this.cachedDigitStyles}extractPartStyles(){const t={preprocessData:this.partPreprocessDataList,data:this.parts,direction:this.direction,value:[this.value,this.oldValue]},e=re(Xt(this.partStyles??{},t),Xt(this.partStylesDynamic??{},t));return Kt(this.cachedPartStyles,e)||(this.cachedPartStyles=e),this.cachedPartStyles}}return e([ht({type:Object,attribute:"cell-styles",reflect:!0})],i.prototype,"cellStyles",void 0),e([ht({type:Object,attribute:"digit-styles",reflect:!0})],i.prototype,"digitStyles",void 0),e([ht({type:Object,attribute:"part-styles",reflect:!0})],i.prototype,"partStyles",void 0),e([ht({type:String,reflect:!0})],i.prototype,"color",void 0),i};function oe(t){return t.length}function ae(){return function(t){if(!(s=t.length))return[];for(var e=-1,i=function(t,e){let i;if(void 0===e)for(const e of t)null!=e&&(i>e||void 0===i&&e>=e)&&(i=e);else{let r=-1;for(let s of t)null!=(s=e(s,++r,t))&&(i>s||void 0===i&&s>=s)&&(i=s)}return i}(t,oe),r=new Array(i);++e<i;)for(var s,n=-1,o=r[e]=new Array(s);++n<s;)o[n]=t[n][e];return r}(arguments)}function le(t,e){const[i,r]=t,[s,n]=e,o={animate:!0,cancelPrevAnimation:!1};let a="";return 1===s.data.length&&(o.animate=!1,o.cancelPrevAnimation=!0,a="only one digit"),i!==r||(s.data[0]===s.data[s.data.length-1]&&(o.animate=!1,o.cancelPrevAnimation=!0,a="same head and tail"),Kt(s,n)&&(o.animate=!1,a="same digits"),a&&(o.earlyReturn=a)),o}function ce(t){try{return JSON.parse(t)}catch(e){return t}}function ue(t){const e={};return Wt(t.digitToChar)?t.digitToChar.forEach(((t,i)=>{var r;e[(r=i,String.fromCodePoint(r+48))]=t})):function(t){return"object"==typeof t&&null!==t}(t.digitToChar)&&Object.entries(t.digitToChar).forEach((([t,i])=>{e[t]=i})),{...t,digitToChar:e}}const he=t=>{var r,s;class n extends t{constructor(){super(...arguments),s.set(this,{...r.DEFAULT_PARTS_OPTIONS}),this.parts=[],this.oldParts=[],this.partPreprocessDataList=[]}get partsOptions(){return i(this,s,"f")}set partsOptions(t){const e=i(this,s,"f");!function(t,e,i,r,s){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!s)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!s:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===r?s.call(t,i):s?s.value=i:e.set(t,i)}(this,s,ue({...r.DEFAULT_PARTS_OPTIONS,...t}),"f"),this.requestUpdate("partsOptions",e)}sampling(t,e){return function(t,e,i,r){let s=r;const n=t.isInteger(e)&&t.isInteger(i)?function(t,e,i){return function(r){return t.round(t.add(t.mul(e,t.sub(t.create(1),r)),t.mul(i,r)))}}(t,e,i):function(t,e,i){return function(r){return t.add(t.mul(e,t.sub(t.create(1),r)),t.mul(i,r))}}(t,e,i);t.eq(e,i)&&(s=1);const o=[];for(let e=0;e<s;e++){const i=t.div(t.create(e),t.create(Math.max(s-1,1)));o.push(n(i))}return o}(this.numberAdapter,this.numberAdapter.max(t,e),this.numberAdapter.min(t,e),this.partsOptions.sampleCount)}sampleSplit(t){return[t.slice()]}sampleToString(t){return this.numberAdapter.toString(t)}shouldRebuildParts(t){return t.has("value")||t.has("partsOptions")}willUpdate(t){super.willUpdate(t),t.has("value")&&(this.oldParts=this.parts),this.shouldRebuildParts(t)&&(this.parts=this.processPartData()),t.has("value")&&(this.partPreprocessDataList=function(t,e,i,r){const s=[];let n=0;for(let o=0;o<e.length;o++){const a=e[o],l=r?.[o],c=[];for(let e=0;e<a.digits.length;e++){const r=a.digits[e],s=l?.digits.find((t=>t.place===r.place));c.push({...le([t,i],[r,s]),index:n++,partIndex:o,digitIndex:e})}s.push(c)}return s}(this.direction,this.parts,this.oldDirection,this.oldParts))}processPartData(){const{decimalSeparator:t,digitToChar:e,minPlaces:i,fillChar:r,type:s}=this.partsOptions,n=this.value,o=this.oldValue;let a=e=>this.sampleToString(e).split(t);"string"===s&&(a=t=>[this.sampleToString(t),""]);const l=[],c=this.sampleSplit(this.sampling(n,o));{const s=this.numberAdapter.gt(n,o)?"down":"up";for(let n=0;n<c.length;n++){const o=c[n],u=o["down"===s?0:o.length-1],[h=1,p=0]=i,d=a(u),f=Math.max(this.stringAdapter.stringToChars(d[0]).length,h),m=Math.max(this.stringAdapter.stringToChars(d[1]??"").length,p),y=ae(...o.map((e=>{const[i="",s=""]=a(e),n=this.stringAdapter.stringToChars(i),o=this.stringAdapter.stringToChars(s),l=Math.max(f-n.length,0),c=Math.max(m-o.length,0);let u=[].concat(new Array(l).fill(r),n);return m>0&&(u=u.concat([t],o,new Array(c).fill(r))),u}))).map(((t,i,r)=>({data:t.filter(((t,e,i)=>0===e||t!==i[e-1])).map((t=>e[t]??t)),place:r.length-i})));l.push({digits:y})}}return l}}return r=n,s=new WeakMap,n.DEFAULT_PARTS_OPTIONS={sampleCount:16,decimalSeparator:".",fillChar:"0",minPlaces:[1,0],digitToChar:{},type:"number"},e([ht({type:Object,attribute:"parts-options",converter:t=>ce(t??"")??{},noAccessor:!0})],n.prototype,"partsOptions",null),n},pe=()=>({create(t){const e=Number(t);return Number.isFinite(e)?e:0},add:(t,e)=>t+e,sub:(t,e)=>t-e,mul:(t,e)=>t*e,div:(t,e)=>t/e,compare:(t,e)=>t>e?1:t<e?-1:0,eq:(t,e)=>t===e,gt:(t,e)=>t>e,gte:(t,e)=>t>=e,lt:(t,e)=>t<e,lte:(t,e)=>t<=e,isInteger:t=>Number.isInteger(t),isNegative:t=>t<0,isPositive:t=>t>0,isZero:t=>0===t,isNaN:t=>Number.isNaN(t),isFinite:t=>Number.isFinite(t),abs:t=>Math.abs(t),ceil:t=>Math.ceil(t),floor:t=>Math.floor(t),round:t=>Math.round(t),max:(t,e)=>Math.max(t,e),min:(t,e)=>Math.min(t,e),toNumber:t=>Number(t),toString:t=>String(t)}),de=()=>({stringToChars:t=>Array.from(t)});class fe{static setNumberAdapter(t){let e=pe();if(zt(t)){for(const[i,r]of fe.AVAILABLE_NUMBER_ADAPTERS)if(i.includes(t)){e=r();break}}else e=t;fe.NUMBER_ADAPTER=e}static setStringAdapter(t){let e=de();if(zt(t)){for(const[i,r]of fe.AVAILABLE_STRING_ADAPTERS)if(i.includes(t)){e=r();break}}else e=t;fe.STRING_ADAPTER=e}static registerNumberAdapter(t,e){fe.AVAILABLE_NUMBER_ADAPTERS.set(t,e)}static registerStringAdapter(t,e){fe.AVAILABLE_STRING_ADAPTERS.set(t,e)}static registerAdapter(t){t.register(this)}}fe.AVAILABLE_NUMBER_ADAPTERS=new Map([[["number"],pe]]),fe.AVAILABLE_STRING_ADAPTERS=new Map([[["string"],de],[["intl-segmenter"],t=>{const e=new Intl.Segmenter(t,{granularity:"grapheme"});return{stringToChars:t=>Array.from(e.segment(t)).map((t=>t.segment))}}]]),fe.NUMBER_ADAPTER=pe(),fe.STRING_ADAPTER=de(),fe.VALUE_CONVERTER={fromAttribute:t=>t,toAttribute:t=>Yt(t)?t:fe.NUMBER_ADAPTER.toString(t)};const me=t=>{class i extends t{get value(){return this.numberAdapter.create(this.__value)}set value(t){t=fe.NUMBER_ADAPTER.create(Yt(t)||zt(t)&&""===t.trim()?0:t);const e=this.__value;this.__value=t,this.numberAdapter.eq(this.__value,e)||this.requestUpdate("value",e)}get oldValue(){return this.numberAdapter.create(this.__oldValue)}set oldValue(t){const e=this.__oldValue;this.__oldValue=t,this.requestUpdate("oldValue",e)}get initialValue(){return Yt(this.__initialValue)?this.__initialValue:this.numberAdapter.create(this.__initialValue)}set initialValue(t){const e=this.__initialValue;this.__initialValue=t,this.requestUpdate("initialValue",e)}get locale(){return this.__locale}set locale(t){const e=this.__locale;this.__locale=t,this.requestUpdate("locale",e),this.localeInstance=zt(this.__locale)?new Intl.Locale(this.__locale):new Intl.Locale(...this.__locale)}constructor(...t){super(...t),this.__value=fe.NUMBER_ADAPTER.create(0),this.__oldValue=fe.NUMBER_ADAPTER.create(0),this.__initialValue=null,this.__locale="en-US",this.localeInstance=zt(this.locale)?new Intl.Locale(this.locale):new Intl.Locale(...this.locale),this.direction="up",this.oldDirection=this.direction,this.numberAdapter=fe.NUMBER_ADAPTER,this.stringAdapter=fe.STRING_ADAPTER}willUpdate(t){super.willUpdate(t),t.has("value")&&!t.has("oldValue")&&(this.oldValue=t.get("value")??this.value),this.oldDirection=this.direction,this.numberAdapter.eq(this.value,this.oldValue)||(this.direction=this.numberAdapter.gt(this.value,this.oldValue)?"down":"up")}connectedCallback(){super.connectedCallback(),this.oldValue=function(t){return null!=t}(this.initialValue)?this.initialValue:this.value}}return e([ht({attribute:"value",reflect:!0,converter:{toAttribute:fe.VALUE_CONVERTER.toAttribute},noAccessor:!0})],i.prototype,"value",null),e([ht({attribute:"old-value",reflect:!0,converter:fe.VALUE_CONVERTER,noAccessor:!0})],i.prototype,"oldValue",null),e([ht({attribute:"initial-value",reflect:!0,converter:fe.VALUE_CONVERTER,noAccessor:!0})],i.prototype,"initialValue",null),e([ht({converter:t=>{if(Yt(t))return t;try{return JSON.parse(t)}catch(e){return t}},reflect:!0,noAccessor:!0})],i.prototype,"locale",null),e([pt()],i.prototype,"direction",void 0),e([pt()],i.prototype,"oldDirection",void 0),i},ye=l` :host { position: relative; white-space: nowrap; display: inline-block; } //.timered-counter { // position: relative; // display: inline-flex; // overflow: hidden; // // /** // inline-block 和 overflow-hidden 同时存在会使得基线为下边缘. 手动设置 align-bottom 以修正这个问题. // @see https://stackoverflow.com/questions/22421782/css-overflow-hidden-increases-height-of-container // @see https://www.w3.org/TR/CSS2/visudet.html#propdef-vertical-align // */ // vertical-align: bottom; //} .timered-counter.debug { overflow: visible; } //.timered-counter-datetime-duration .duration-unit { // font-size: 0.4em; // line-height: 1; //} `,_e=t=>{class i extends t{constructor(){super(...arguments),this.animationOptions={},this.cachedAnimationOptions=[],this.keyframes={},this.cachedKeyframes=[]}extractAnimationOptions(){const t={preprocessData:this.partPreprocessDataList,data:this.parts,direction:this.direction,value:[this.value,this.oldValue]},e=se(te(this.animationOptions??{},t),te(this.animationOptionsDynamic??{},t));return Kt(this.cachedAnimationOptions,e)||(this.cachedAnimationOptions=e),this.cachedAnimationOptions}extractKeyframes(){const t={preprocessData:this.partPreprocessDataList,data:this.parts,direction:this.direction,value:[this.value,this.oldValue]},e=se(te(this.keyframes??{},t),te(this.keyframesDynamic??{},t));return Kt(this.cachedKeyframes,e)||(this.cachedKeyframes=e),this.cachedKeyframes}}return e([ht({type:Object,attribute:"animation-options",reflect:!0})],i.prototype,"animationOptions",void 0),e([ht({type:Object,attribute:"keyframes",reflect:!0})],i.prototype,"keyframes",void 0),i},ge="important",Ae=" !"+ge,be=yt(class extends _t{constructor(t){if(super(t),t.type!==ft||"style"!==t.name||t.strings?.length>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(t){return Object.keys(t).reduce(((e,i)=>{const r=t[i];return null==r?e:e+`${i=i.includes("-")?i:i.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${r};`}),"")}update(t,[e]){const{style:i}=t.element;if(void 0===this.ft)return this.ft=new Set(Object.keys(e)),this.render(e);for(const t of this.ft)null==e[t]&&(this.ft.delete(t),t.includes("-")?i.removeProperty(t):i[t]=null);for(const t in e){const r=e[t];if(null!=r){this.ft.add(t);const e="string"==typeof r&&r.endsWith(Ae);t.includes("-")||e?i.setProperty(t,e?r.slice(0,-11):r,e?ge:""):i[t]=r}}return Y}}),$e=yt(class extends _t{constructor(t){if(super(t),t.type!==ft||"class"!==t.name||t.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return" "+Object.keys(t).filter((e=>t[e])).join(" ")+" "}update(t,[e]){if(void 0===this.st){this.st=new Set,void 0!==t.strings&&(this.nt=new Set(t.strings.join(" ").split(/\s/).filter((t=>""!==t))));for(const t in e)e[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(e)}const i=t.element.classList;for(const t of this.st)t in e||(i.remove(t),this.st.delete(t));for(const t in e){const r=!!e[t];r===this.st.has(t)||this.nt?.has(t)||(r?(i.add(t),this.st.add(t)):(i.remove(t),this.st.delete(t)))}return Y}}),ve=l` :host { display: inline-flex; overflow: hidden; /** inline-block 和 overflow-hidden 同时存在会使得基线为下边缘. 手动设置 align-bottom 以修正这个问题. @see https://stackoverflow.com/questions/22421782/css-overflow-hidden-increases-height-of-container @see https://www.w3.org/TR/CSS2/visudet.html#propdef-vertical-align */ vertical-align: bottom; } .counter-parts { display: inline-flex; flex: 1 1 auto; } .roller-part { display: inline-flex; white-space: nowrap; } .roller__prefix, .roller__suffix { flex: none; } .roller-part .roller-part__wrapper { display: inline-block; text-align: center; } .roller-part .roller-part__suffix { display: inline-block; } `,Se=l` .roller-part-digit { position: relative; display: inline-block; } .placeholder { visibility: hidden; display: inline-block; } .roll-list { position: absolute; left: 0; display: inline-flex; width: 100%; flex-direction: column; align-items: center; } .roll-list.roll-list__up { top: 0; } .roll-list.roll-list__down { bottom: 0; } .roll-list__shadow { visibility: hidden; position: absolute; left: 0; top: 0; z-index: -10; display: inline-flex; flex-direction: column; white-space: nowrap; } .roll-item { display: inline-block; width: 100%; } .roll-item.roll-item__head { position: absolute; top: 100%; } .roll-item.roll-item__tail { position: absolute; bottom: 100%; } `,Pe=t=>t,xe=(t,e,i)=>(((1-3*i+3*e)*t+(3*i-6*e))*t+3*e)*t;function we(t,e,i,r){if(t===e&&i===r)return Pe;const s=e=>function(t,e,i,r,s){let n,o,a=0;do{o=e+(i-e)/2,n=xe(o,r,s)-t,n>0?i=o:e=o}while(Math.abs(n)>1e-7&&++a<12);return o}(e,0,1,t,i);return t=>0===t||1===t?t:xe(s(t),e,r)}const Te=we(.12,0,.39,0),De=we(.61,1,.88,1),Oe=we(.37,0,.63,1),Ee=we(.11,0,.5,0),Ce=we(.5,1,.89,1),Me=we(.45,0,.55,1),Ne=we(.32,0,.67,0),ke=we(.33,1,.68,1),Ie=we(.65,0,.35,1),Re=we(.5,0,.75,0),Ue=we(.25,1,.5,1),Le=we(.76,0,.24,1),Ve=we(.64,0,.78,0),je=we(.22,1,.36,1),Be=we(.83,0,.17,1),He=we(.7,0,.84,0),ze=we(.16,1,.3,1),Fe=we(.87,0,.13,1),Ye=we(.55,0,1,.45),We=we(0,.55,.45,1),Qe=we(.85,0,.15,1),qe=we(.36,0,.66,-.56),Ke=we(.34,1.56,.64,1),Ge=we(.68,-.6,.32,1.6);function Je(t){const e=2*Math.PI/3;return 0===t?0:1===t?1:-(2**(10*t-10))*Math.sin((10*t-10.75)*e)}function Ze(t){const e=2*Math.PI/3;return 0===t?0:1===t?1:2**(-10*t)*Math.sin((10*t-.75)*e)+1}function Xe(t){const e=2*Math.PI/4.5;return 0===t?0:1===t?1:t<.5?-(2**(20*t-10))*Math.sin((20*t-11.125)*e)/2:2**(-20*t+10)*Math.sin((20*t-11.125)*e)/2+1}function ti(t){const e=7.5625,i=2.75;return t<1/i?e*t*t:t<2/i?e*(t-=1.5/i)*t+.75:t<2.5/i?e*(t-=2.25/i)*t+.9375:e*(t-=2.625/i)*t+.984375}function ei(t){return 1-ti(1-t)}function ii(t){return t<.5?(1-ti(1-2*t))/2:(1+ti(2*t-1))/2}var ri=Object.freeze({__proto__:null,easeInBack:qe,easeInBounce:ei,easeInCirc:Ye,easeInCubic:Ne,easeInElastic:Je,easeInExpo:He,easeInOutBack:Ge,easeInOutBounce:ii,easeInOutCirc:Qe,easeInOutCubic:Ie,easeInOutElastic:Xe,easeInOutExpo:Fe,easeInOutQuad:Me,easeInOutQuart:Le,easeInOutQuint:Be,easeInOutSine:Oe,easeInQuad:Ee,easeInQuart:Re,easeInQuint:Ve,easeInSine:Te,easeOutBack:Ke,easeOutBounce:ti,easeOutCirc:We,easeOutCubic:ke,easeOutElastic:Ze,easeOutExpo:ze,easeOutQuad:Ce,easeOutQuart:Ue,easeOutQuint:je,easeOutSine:De});function si(t,e){"undefined"!=typeof customElements&&(customElements.get(t)||customElements.define(t,e))}class ni extends Event{}class oi extends at{constructor(){super(),this.digit={data:[],place:0},this.preprocessData={animate:!0,cancelPrevAnimation:!1,earlyReturn:"",index:0,partIndex:0,digitIndex:0},this.direction="up",this.textStyle={},this.cellStyle=[],this.animationOptions={},this.keyframes={},this.digitWidth=0,this.resizeObserver=new ResizeObserver((()=>{this.digitWidth=this.clonedRollDigitList?this.clonedRollDigitList.offsetWidth:0}))}firstUpdated(t){super.firstUpdated(t),this.clonedRollDigitList&&this.resizeObserver.observe(this.clonedRollDigitList)}disconnectedCallback(){super.disconnectedCallback(),this.resizeObserver.disconnect()}updated(t){super.updated(t),Jt(Array.from(t.keys()),["digit","preprocessData","direction","animationOptions","keyframes"]).length>0&&this.shouldAnimate()&&this.startAnimation().then()}render(){const t=this.cellStyle.map((t=>function(...t){return Mt(Rt,t)}(t,["position"])));return F`<span class="roller-part-digit"> <!-- 占位 --> <span class="placeholder" style=${be({width:`${Math.round(this.digitWidth)}px`})} >0</span > <!-- 一个不可见的滚动列表的复制, 用于计算该列表的最大宽度. --> <span class="roll-list__shadow"> ${xt(this.digit.data,((t,e)=>e),((e,i)=>F`<span style=${be(t[i])} >${e}</span >`))} </span> <span class=${$e({"roll-list__up":"up"===this.direction,"roll-list__down":"down"===this.direction,"roll-list":!0})} > ${this.digit.data.length>1?xt(this.digit.data,((t,e)=>e),((t,e)=>"up"===this.direction&&e===this.digit.data.length-1?F`<span part="cell" class="roll-item roll-item__head" style=${be(this.cellStyle[e])} ><span style=${be(this.textStyle)} >${t}</span ></span >`:"down"===this.direction&&0===e?F` <span part="cell" class="roll-item roll-item__tail" style=${be(this.cellStyle[e])} ><span style=${be(this.textStyle)} >${t}</span ></span > `:F`<span part="cell" class="roll-item" style=${be(this.cellStyle[e])} ><span style=${be(this.textStyle)} >${t}</span ></span >`)):F`<span part="cell" class="roll-item" style=${be(this.cellStyle[0])} ><span style=${be(this.textStyle)} >${this.digit.data[0]}</span ></span >`}</span ></span > `}shouldAnimate(){const{cancelPrevAnimation:t,animate:e}=this.preprocessData;return t&&(this.animation&&this.animation.cancel(),this.rollList&&this.rollList.style&&this.rollList.style.cssText&&(this.rollList.style.cssText="")),!!e}async startAnimation(){if(Yt(this.rollList))return;this.__emitAnimationStart();const t=Ut({duration:1e3,iterations:1,easing:"ease-out",fill:"forwards"},this.animationOptions),e=Ft(this.keyframes)?{up:{transform:["translateY(0)","translateY(-100%)"]},down:{transform:["translateY(0)","translateY(100%)"]}}[this.direction]:this.keyframes;if(zt(t.easing)&&ri[t.easing]){const e=ri[t.easing];t.easing=`linear(${function(...t){return Mt(It,t)}(0,64).map(((t,i)=>e(i/63))).join(",")})`}try{this.clearAnimation(),this.animation=this.rollList.animate(e,t),this.animation.addEventListener("finish",(()=>this.__emitAnimationEnd()),{once:!0})}catch(t){console.error(t)}}clearAnimation(){this.animation?.removeEventListener("finish",this.__emitAnimationEnd),this.animation?.cancel()}__emitAnimationStart(){this.isConnected&&this.dispatchEvent(new ni("roller-digit-animation-start"))}__emitAnimationEnd(){this.isConnected&&this.dispatchEvent(new ni("roller-digit-animation-end"))}}oi.styles=[Se],e([ht({type:Object})],oi.prototype,"digit",void 0),e([ht({type:Object})],oi.prototype,"preprocessData",void 0),e([ht({type:String})],oi.prototype,"direction",void 0),e([ht({type:Object})],oi.prototype,"textStyle",void 0),e([ht({type:Array})],oi.prototype,"cellStyle",void 0),e([ht({type:Object})],oi.prototype,"animationOptions",void 0),e([ht({type:Object})],oi.prototype,"keyframes",void 0),e([dt(".roll-list__shadow")],oi.prototype,"clonedRollDigitList",void 0),e([dt(".roll-list")],oi.prototype,"rollList",void 0),e([pt()],oi.prototype,"digitWidth",void 0),si("timered-counter-roller-digit",oi);class ai extends Event{}class li extends at{constructor(){super(...arguments),this.color="",this.direction="up",this.parts=[],this.partPreprocessDataList=[],this.animationOptions=[],this.keyframes=[],this.cellStyles=[],this.digitStyles=[],this.partStyles=[],this.parentContainerRect={},this.__partDigitsColorStyles=[],this.digitAnimateEndCount=0,this.digitAnimatedCount=0}render(){return F`<span class="roller__prefix" data-part-id="-1" data-digit-id="0" style=${be(this.__partDigitsColorStyles?.[-1]?.[0]??{})} > <slot part="prefix" name="prefix"></slot> </span> <span class="counter-parts"> ${xt(this.parts,((t,e)=>e),((t,e)=>F`<span part="part" class="roller-part" style=${be(this.partStyles?.[e]??{})} >${xt(t.digits,((e,i)=>""+(t.digits.length-i)),((t,i)=>F`<timered-counter-roller-digit exportparts="digit, cell" part="digit" class="roller-part__wrapper" style=${be(this.digitStyles?.[e]?.[i]??{})} data-part-id="${e}" data-digit-id="${i}" .digit=${t} .preprocessData=${this.partPreprocessDataList[e][i]} .direction=${this.direction} .textStyle=${this.__partDigitsColorStyles?.[e]?.[i]??{}} .cellStyle=${this.cellStyles[e][i]} .animationOptions=${this.animationOptions[e][i]} .keyframes=${this.keyframes[e][i]} @roller-digit-animation-end=${this.__handleDigitAnimationEnd} ></timered-counter-roller-digit>`))}${F`<span class="roller-part__suffix" data-part-id="${e}" data-digit-id="-1" style=${be(this.__partDigitsColorStyles?.[e]?.[-1]??{})} ><slot part="part-suffix" name=${`part-suffix-${e}`} ></slot ></span>`}</span > `))}</span ><span class="roller__suffix" data-part-id="-2" data-digit-id="0" style=${be(this.__partDigitsColorStyles?.[-2]?.[0]??{})} ><slot part="suffix" name="suffix"></slot ></span>`}willUpdate(t){super.willUpdate(t),(t.has("direction")||t.has("parts"))&&(this.digitAnimateEndCount=0,this.digitAnimatedCount=this.partPreprocessDataList.flat().filter((({animate:t})=>t)).length,this.digitAnimatedCount>0&&this.__emitAnimationStart()),this.__partDigitsColorStyles=this.__generatePartDigitsColorStyles()}__handleDigitAnimationEnd(){this.digitAnimateEndCount++,this.digitAnimateEndCount<this.digitAnimatedCount||this.__emitAnimationEnd()}__emitAnimationStart(){this.isConnected&&this.dispatchEvent(new ai("roller-animation-start"))}__emitAnimationEnd(){this.isConnected&&this.dispatchEvent(new ai("roller-animation-end"))}__generatePartDigitsColorStyles(){const t=[],e=this.parentContainerRect,{prefixContainer:i,suffixContainer:r,color:s}=this,n=Array.from(this.shadowRoot?.querySelectorAll("[data-part-id]").values()??[]);if(!e)return t;i&&(n[-1]=i),r&&(n[-2]=r);for(const e of function(...t){return Mt(Object.values,t)}(n)){const i=Number.parseInt(e.dataset.partId??"-1",10),r=Number.parseInt(e.dataset.digitId??"-1",10);if(!Ht(i)||!Ht(r))throw new Error("The data-part-id and data-digit-id attributes are required.");t[i]||(t[i]=[]),CSS.supports("color",s)?t[i][r]={color:s}:CSS.supports("background-image",s)?t[i][r]={backgroundImage:s,backgroundClip:"text",backgroundSize:`${this.offsetWidth}px ${this.offsetHeight}px`,backgroundPositionX:-e.offsetLeft+"px",backgroundPositionY:-e.offsetTop+"px",backgroundRepeat:"no-repeat",color:"transparent","-webkit-text-fill-color":"transparent"}:(t[i][r]={},console.warn(new Error("The color property is not supported.")))}return t}}li.styles=[ve],e([ht({type:String})],li.prototype,"color",void 0),e([ht({type:String})],li.prototype,"direction",void 0),e([ht({type:Array})],li.prototype,"parts",void 0),e([ht({type:Array})],li.prototype,"partPreprocessDataList",void 0),e([ht({type:Array})],li.prototype,"animationOptions",void 0),e([ht({type:Array})],li.prototype,"keyframes",void 0),e([ht({type:Array})],li.prototype,"cellStyles",void 0),e([ht({type:Array})],li.prototype,"digitStyles",void 0),e([ht({type:Array})],li.prototype,"partStyles",void 0),e([ht({type:Object})],li.prototype,"parentContainerRect",void 0),e([dt(".roller__prefix")],li.prototype,"prefixContainer",void 0),e([dt(".roller__suffix")],li.prototype,"suffixContainer",void 0),si("timered-counter-roller",li);const ci=t=>{class i extends t{constructor(){super(...arguments),this.ariaLabel="",this.ariaLive="polite"}generateAriaLabel(){let t="";const{direction:e}=this;for(const i of this.parts)for(const r of i.digits)t+=`${r.data["up"===e?r.data.length-1:0]}`;return t}willUpdate(t){super.willUpdate(t),this.ariaLabel=this.generateAriaLabel()}}return e([ht({attribute:"aria-label",reflect:!0})],i.prototype,"ariaLabel",void 0),e([ht({attribute:"aira-live",reflect: