@mantou/gem 1.5.2 → 1.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/lib/utils.ts CHANGED
@@ -50,56 +50,72 @@ interface LinkedListItem<T> {
50
50
  next?: LinkedListItem<T>;
51
51
  }
52
52
  // work on nodejs
53
- export class LinkedList<T extends NonPrimitive> extends (globalThis.EventTarget || Object) {
53
+ export class LinkedList<T = any> extends (globalThis.EventTarget || Object) {
54
54
  addEventListener: <K extends keyof LinkedListEventMap>(
55
55
  type: K,
56
56
  listener: (this: LinkedList<T>, ev: LinkedListEventMap[K]) => any,
57
57
  options?: boolean | AddEventListenerOptions,
58
58
  ) => void;
59
59
 
60
- pool = new Map<T, LinkedListItem<T>>();
61
- firstItem?: LinkedListItem<T>;
62
- lastItem?: LinkedListItem<T>;
60
+ #map = new Map<T, LinkedListItem<T>>();
61
+ #firstItem?: LinkedListItem<T>;
62
+ #lastItem?: LinkedListItem<T>;
63
63
 
64
- // 添加已存在的项目时会删除老的项目
65
- add(value: T) {
66
- const item: LinkedListItem<T> = { value };
67
- if (!this.firstItem) {
68
- this.dispatchEvent(new CustomEvent('start'));
69
- this.firstItem = item;
70
- }
71
- if (this.lastItem) {
72
- this.lastItem.next = item;
73
- item.prev = this.lastItem;
74
- }
75
- this.lastItem = item;
76
-
77
- const existItem = this.pool.get(value);
64
+ #delete(value: T) {
65
+ const existItem = this.#map.get(value);
78
66
  if (existItem) {
79
67
  if (existItem.prev) {
80
68
  existItem.prev.next = existItem.next;
81
69
  } else {
82
- this.firstItem = existItem.next;
70
+ this.#firstItem = existItem.next;
83
71
  }
84
72
  if (existItem.next) {
85
73
  existItem.next.prev = existItem.prev;
74
+ } else {
75
+ this.#lastItem = existItem.prev;
86
76
  }
77
+ this.#map.delete(value);
87
78
  }
88
-
89
- this.pool.set(value, item);
79
+ return existItem;
90
80
  }
91
81
 
92
- get(): T | undefined {
93
- const firstItem = this.firstItem;
94
- if (!firstItem) return;
82
+ get size() {
83
+ return this.#map.size;
84
+ }
95
85
 
96
- this.pool.delete(firstItem.value);
86
+ // 添加到尾部,已存在时会删除老的项目
87
+ // 如果是添加第一个,start 事件会在添加前触发,避免处理事件重复的逻辑
88
+ add(value: T) {
89
+ if (!this.#lastItem) {
90
+ this.dispatchEvent(new CustomEvent('start'));
91
+ }
92
+ const item: LinkedListItem<T> = this.#delete(value) || { value };
93
+ item.prev = this.#lastItem;
94
+ if (item.prev) {
95
+ item.prev.next = item;
96
+ }
97
+ item.next = undefined;
98
+ this.#lastItem = item;
99
+ if (!this.#firstItem) {
100
+ this.#firstItem = item;
101
+ }
102
+ this.#map.set(value, item);
103
+ }
97
104
 
98
- this.firstItem = firstItem.next;
99
- if (!this.firstItem) {
100
- this.lastItem = undefined;
105
+ // 删除这个元素后没有其他元素时立即出发 end 事件
106
+ delete(value: T) {
107
+ const deleteItem = this.#delete(value);
108
+ if (!this.#firstItem) {
101
109
  this.dispatchEvent(new CustomEvent('end'));
102
110
  }
111
+ return deleteItem;
112
+ }
113
+
114
+ // 获取头部元素
115
+ get(): T | undefined {
116
+ const firstItem = this.#firstItem;
117
+ if (!firstItem) return;
118
+ this.#delete(firstItem.value);
103
119
  return firstItem.value;
104
120
  }
105
121
  }
@@ -115,10 +131,6 @@ export class PropProxyMap<T extends NonPrimitive, V = unknown> extends WeakMap<T
115
131
  }
116
132
  }
117
133
 
118
- export function isObject(value: any) {
119
- return typeof value === 'object';
120
- }
121
-
122
134
  declare global {
123
135
  interface URLSearchParams {
124
136
  entries(): Iterable<readonly [string | number | symbol, any]>;
@@ -127,11 +139,9 @@ declare global {
127
139
  export class QueryString extends URLSearchParams {
128
140
  constructor(param?: any) {
129
141
  super(param);
130
- if (param instanceof QueryString) {
131
- return param;
132
- }
133
142
  }
134
143
 
144
+ // support `{ key: ObjectValue }`
135
145
  concat(param: any) {
136
146
  let query: any;
137
147
  if (typeof param === 'string') {
@@ -139,19 +149,20 @@ export class QueryString extends URLSearchParams {
139
149
  } else {
140
150
  query = param;
141
151
  }
142
- Object.keys(query).forEach((key) => {
143
- this.append(key, query[key]);
152
+ Object.entries(query).forEach(([key, value]) => {
153
+ this.append(key, this.#stringify(value));
144
154
  });
145
155
  }
146
156
 
147
- #stringify = (value: any) => (isObject(value) ? JSON.stringify(value) : value);
157
+ #stringify = (value: any) => (typeof value === 'string' ? value : JSON.stringify(value));
148
158
 
149
159
  setAny(key: string, value: any) {
150
160
  if (Array.isArray(value)) {
151
161
  this.delete(key);
152
162
  value.forEach((e) => this.append(key, this.#stringify(e)));
153
163
  } else {
154
- this.set(key, this.#stringify(value));
164
+ const v = this.#stringify(value);
165
+ v ? this.set(key, v) : this.delete(key);
155
166
  }
156
167
  }
157
168
 
@@ -350,7 +361,9 @@ export function removeItems(target: any[], items: any[]) {
350
361
  export function styleMap(obj: Partial<CSSStyleDeclaration>) {
351
362
  let styleString = '';
352
363
  for (const key in obj) {
353
- styleString += `${camelToKebabCase(key)}:${obj[key]};`;
364
+ if (obj[key]) {
365
+ styleString += `${camelToKebabCase(key)}:${obj[key]};`;
366
+ }
354
367
  }
355
368
  return styleString;
356
369
  }
@@ -1,2 +1,2 @@
1
1
  // Do not modify manually
2
- export const version = '1.5.2';
2
+ export const version = '1.5.6';
@@ -25,10 +25,11 @@ customElements.define('async-gem-demo', AsyncGemDemo);
25
25
  describe('异步 gem element 测试', () => {
26
26
  it('异步 gem element 更新', async () => {
27
27
  const el: AsyncGemDemo = await fixture(html`<async-gem-demo></async-gem-demo>`);
28
+ expect(el.renderCount).to.equal(1);
28
29
  updateStore(store, { a: ++store.a });
29
30
  el.setState({ a: ++el.state.a });
30
31
  await nextFrame();
31
- expect(el.renderCount).to.equal(1);
32
+ expect(el.renderCount).to.equal(2);
32
33
  await nextFrame();
33
34
  expect(el.renderCount).to.equal(2);
34
35
  });
@@ -146,11 +147,15 @@ class EffectGemDemo extends GemElement {
146
147
  @attribute attr = 'a';
147
148
  @property prop = {};
148
149
  effectCount = 0;
150
+ compareCount = 0;
149
151
  constructor() {
150
152
  super();
151
153
  this.effect(
152
154
  () => this.effectCount++,
153
- () => [this.attr, this.prop],
155
+ () => {
156
+ this.compareCount++;
157
+ return [this.attr, this.prop];
158
+ },
154
159
  );
155
160
  }
156
161
  mounted() {
@@ -170,6 +175,7 @@ customElements.define('effect-gem-demo', EffectGemDemo);
170
175
  describe('gem element 副作用', () => {
171
176
  it('依赖当前值', async () => {
172
177
  const el: EffectGemDemo = await fixture(html`<effect-gem-demo></effect-gem-demo>`);
178
+ expect(el.compareCount).to.equal(1);
173
179
  expect(el.effectCount).to.equal(3);
174
180
  el.attr = 'b';
175
181
  el.prop = {};
@@ -22,17 +22,20 @@ describe('utils 测试', () => {
22
22
  const linkedList = new LinkedList<() => void>();
23
23
  let countAtStart = 0;
24
24
  let countAtPause = 0;
25
- linkedList.addEventListener('start', () => (countAtStart = linkedList.pool.size));
26
- linkedList.addEventListener('end', () => (countAtPause = linkedList.pool.size));
27
- const fun1 = () => ({});
28
- const fun2 = () => ({});
25
+ linkedList.addEventListener('start', () => (countAtStart = linkedList.size));
26
+ linkedList.addEventListener('end', () => (countAtPause = linkedList.size));
27
+ const fun1 = () => 1;
28
+ const fun2 = () => 2;
29
29
  linkedList.add(fun1);
30
30
  linkedList.add(fun2);
31
+ linkedList.delete(fun2);
32
+ expect(linkedList.size).to.equal(1);
33
+ linkedList.add(fun2);
31
34
  linkedList.add(fun1);
32
- expect(linkedList.pool.size).to.equal(2);
35
+ expect(linkedList.size).to.equal(2);
33
36
  expect(linkedList.get()).to.equal(fun2);
34
37
  expect(linkedList.get()).to.equal(fun1);
35
- expect(linkedList.pool.size).to.equal(0);
38
+ expect(linkedList.size).to.equal(0);
36
39
  expect(linkedList.get()).to.equal(undefined);
37
40
  expect(countAtStart).to.equal(0);
38
41
  expect(countAtPause).to.equal(0);
package/umd.js CHANGED
@@ -1,13 +1,13 @@
1
1
  /*! For license information please see umd.js.LICENSE.txt */
2
- !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Gem=e():t.Gem=e()}(self,(function(){return(()=>{"use strict";var t={d:(e,n)=>{for(var s in n)t.o(n,s)&&!t.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:n[s]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{DialogBaseElement:()=>Nn,GemActiveLinkElement:()=>pn,GemElement:()=>Pe,GemError:()=>O,GemLightRouteElement:()=>hn,GemLinkElement:()=>dn,GemReflectElement:()=>xn,GemRouteElement:()=>ln,GemTitleElement:()=>gn,GemUnsafeElement:()=>Sn,GemUseElement:()=>wn,I18n:()=>qn,LinkedList:()=>d,PropProxyMap:()=>p,QueryString:()=>m,SVGTemplateResult:()=>xt,SheetToken:()=>y,StoreListenerMap:()=>L,TemplateResult:()=>Et,absoluteLocation:()=>u,addMicrotask:()=>a,addMicrotaskToStack:()=>h,adoptedStyle:()=>Fe,attribute:()=>Re,basePathStore:()=>Y,boolattribute:()=>He,camelToKebabCase:()=>_,classMap:()=>M,cleanObject:()=>k,connect:()=>H,connectStore:()=>Ke,createCSSSheet:()=>w,createHistoryParams:()=>cn,createModalClass:()=>Pn,createPath:()=>an,createStore:()=>j,createStoreSet:()=>A,createTheme:()=>Hn,css:()=>v,customElement:()=>Je,defineAttribute:()=>Oe,defineCSSState:()=>Me,defineProperty:()=>Ce,defineRef:()=>$e,del:()=>zn,directive:()=>st,disconnect:()=>W,emitter:()=>Ue,get:()=>Kn,getThemeProp:()=>Rn,getThemeStore:()=>jn,globalemitter:()=>Ge,guard:()=>Zt,history:()=>I,html:()=>Vt,ifDefined:()=>Yt,isArrayChange:()=>T,isObject:()=>f,kebabToCamelCase:()=>P,matchPath:()=>rn,mediaQuery:()=>Zn,nativeDefineElement:()=>Ne,numattribute:()=>We,part:()=>qe,partMap:()=>N,post:()=>Qn,property:()=>Ie,put:()=>Jn,randomStr:()=>b,raw:()=>g,refobject:()=>je,removeItems:()=>C,render:()=>It,repeat:()=>Jt,request:()=>Gn,rootElement:()=>ze,slot:()=>De,state:()=>Ve,styleMap:()=>$,styled:()=>x,svg:()=>Dt,titleStore:()=>tt,updateStore:()=>R,updateTheme:()=>Wn,version:()=>Qe});var n={};t.r(n),t.d(n,{GemElement:()=>Pe,GemError:()=>O,LinkedList:()=>d,PropProxyMap:()=>p,QueryString:()=>m,SVGTemplateResult:()=>xt,SheetToken:()=>y,StoreListenerMap:()=>L,TemplateResult:()=>Et,absoluteLocation:()=>u,addMicrotask:()=>a,addMicrotaskToStack:()=>h,adoptedStyle:()=>Fe,attribute:()=>Re,basePathStore:()=>Y,boolattribute:()=>He,camelToKebabCase:()=>_,classMap:()=>M,cleanObject:()=>k,connect:()=>H,connectStore:()=>Ke,createCSSSheet:()=>w,createStore:()=>j,createStoreSet:()=>A,css:()=>v,customElement:()=>Je,defineAttribute:()=>Oe,defineCSSState:()=>Me,defineProperty:()=>Ce,defineRef:()=>$e,directive:()=>st,disconnect:()=>W,emitter:()=>Ue,globalemitter:()=>Ge,guard:()=>Zt,history:()=>I,html:()=>Vt,ifDefined:()=>Yt,isArrayChange:()=>T,isObject:()=>f,kebabToCamelCase:()=>P,nativeDefineElement:()=>Ne,numattribute:()=>We,part:()=>qe,partMap:()=>N,property:()=>Ie,randomStr:()=>b,raw:()=>g,refobject:()=>je,removeItems:()=>C,render:()=>It,repeat:()=>Jt,rootElement:()=>ze,slot:()=>De,state:()=>Ve,styleMap:()=>$,styled:()=>x,svg:()=>Dt,titleStore:()=>tt,updateStore:()=>R,version:()=>Qe});var s,i,o=function(t,e,n,s){if("a"===n&&!s)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!s:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?s:"a"===n?s.call(t):s?s.value:e.get(t)};const r=new Set;function a(t){"function"==typeof t&&(r.size||globalThis.queueMicrotask((()=>{r.forEach((t=>t())),r.clear()})),r.delete(t),r.add(t))}const c=[];function l(){for(let t=c.length-1;t>=0;t--)c[t]();c.length=0}function h(t){c.length||a(l),c.push(t)}function u(t="",e=""){const{pathname:n,search:s,hash:i}=new URL(e,location.origin+t);return n+s+i}class d extends(globalThis.EventTarget||Object){constructor(){super(...arguments),this.pool=new Map}add(t){const e={value:t};this.firstItem||(this.dispatchEvent(new CustomEvent("start")),this.firstItem=e),this.lastItem&&(this.lastItem.next=e,e.prev=this.lastItem),this.lastItem=e;const n=this.pool.get(t);n&&(n.prev?n.prev.next=n.next:this.firstItem=n.next,n.next&&(n.next.prev=n.prev)),this.pool.set(t,e)}get(){const t=this.firstItem;if(t)return this.pool.delete(t.value),this.firstItem=t.next,this.firstItem||(this.lastItem=void 0,this.dispatchEvent(new CustomEvent("end"))),t.value}}class p extends WeakMap{get(t){let e=super.get(t);return e||(e={},this.set(t,e)),e}}function f(t){return"object"==typeof t}class m extends URLSearchParams{constructor(t){if(super(t),s.set(this,(t=>f(t)?JSON.stringify(t):t)),i.set(this,(t=>{if(!t)return null;try{return JSON.parse(t)}catch(t){return null}})),t instanceof m)return t}concat(t){let e;e="string"==typeof t?Object.fromEntries(new URLSearchParams(t).entries()):t,Object.keys(e).forEach((t=>{this.append(t,e[t])}))}setAny(t,e){Array.isArray(e)?(this.delete(t),e.forEach((e=>this.append(t,o(this,s,"f").call(this,e))))):this.set(t,o(this,s,"f").call(this,e))}getAny(t){return this.getAnyAll(t)[0]}getAnyAll(t){return this.getAll(t).filter((t=>""!==t)).map((t=>o(this,i,"f").call(this,t)))}toString(){const t=super.toString();return t?`?${t}`:""}toJSON(){return this.toString()}}function g(t,...e){return t.reduce(((t,n,s)=>{var i;return t+(null!==(i=e[s-1])&&void 0!==i?i:"")+n}))}function v(t,...e){return g(t,...e)}s=new WeakMap,i=new WeakMap;const y=Symbol("sheet token");function w(t,e=""){const n=new CSSStyleSheet,s={};n.media.mediaText=e;let i="";return"string"==typeof t?i=t:Object.keys(t).forEach((e=>{s[e]=`${e}-${b()}`,i+=t[e].styledContent.replace(/&/g,s[e])})),n.replaceSync(i),s[y]=n,s}function b(t=5,e="0123456789abcdefghijklmnopqrstuvwxyz"){const n=e.length;let s="";for(let i=0;i<t;i++)s+=e[Math.floor(Math.random()*n)];return s}const S=new RegExp("&.*{((.|\n)*)}","g");function E(t,e){const n=[];let s=`& {${t.replace(S,(t=>(n.push(t),"")))}}`+n.join("");return s=s.replace(/&/g,"class"===e?".&":"#&"),{styledContent:s,type:e}}const x={class:(t,...e)=>E(g(t,...e),"class"),id:(t,...e)=>E(g(t,...e),"id"),keyframes:(t,...e)=>({styledContent:`@keyframes & {${g(t,...e)}}`,type:"keyframes"})};function _(t){return t.replace(/[A-Z]/g,(t=>"-"+t.toLowerCase()))}function P(t){return t.replace(/-(.)/g,((t,e)=>e.toUpperCase()))}function k(t){return Object.keys(t).forEach((e=>{delete t[e]})),t}class O extends Error{constructor(t){super(t),this.message=`gem: ${this.message}`}}function T(t,e){const n=t.length;for(let s=0;s<n;s++)if(t[s]!==e[s])return!0;return!1}function C(t,e){const n=new Set(e);return t.filter((t=>!n.has(t)||(n.delete(t),!1)))}function $(t){let e="";for(const n in t)e+=`${_(n)}:${t[n]};`;return e}function M(t){let e=" ";for(const n in t)t[n]&&(e+=`${n} `);return e}const N=M,L=new WeakMap;function j(t){if(L.has(t))throw new O("argument error");return L.set(t,new Set),t}function A(t){return Object.keys(t).forEach((e=>{j(t[e])})),t}function R(t,e){Object.assign(t,e);const n=L.get(t);null==n||n.forEach((t=>{a(t)}))}function H(t,e){const n=L.get(t);null==n||n.add(e)}function W(t,e){const n=L.get(t);null==n||n.delete(e)}const I=window.history,V=window.location,D=I.pushState.bind(I),q=I.replaceState.bind(I);let U=0;const G=()=>`${performance.now()}-${++U}`,B=j({$hasCloseHandle:!1,$hasOpenHandle:!1,$hasShouldCloseHandle:!1,$key:""}),F=new Map;function K({$key:t,$hasCloseHandle:e,$hasOpenHandle:n,$hasShouldCloseHandle:s}={}){if(B.$key!==t){if(t)throw new O("`$key` is not allowed");if(e)throw new O("`$hasCloseHandle` is not allowed");if(n)throw new O("`$hasOpenHandle` is not allowed");if(s)throw new O("`$hasShouldCloseHandle` is not allowed")}}function z(t){return I.basePath?I.basePath+t:t}function J(t){return t===I.basePath?"/":t.replace(new RegExp(`^${I.basePath}/`),"/")}function Q(t){const e=F.get(B.$key)||{},n=t.path?u(e.path,t.path):J(V.pathname),s=new m(t.query||(t.path?"":V.search)),i=t.path&&t.path!==e.path||t.query&&String(t.query)!==String(e.query),o=t.title||"",r=t.close||t.data||t.open||t.shouldClose,a=t.hash||(!i&&r?decodeURIComponent(V.hash):"");return Object.assign(Object.assign({},t),{title:o,path:n,query:s,hash:a})}function Z(t,e){K(e.data);const n=Q(e),{title:s,path:i,query:o,hash:r,close:a,open:c,shouldClose:l,data:h}=n,u=Object.assign({$hasCloseHandle:!!a,$hasOpenHandle:!!c,$hasShouldCloseHandle:!!l,$key:G()},h);F.set(u.$key,n),R(k(B),u);const d=z(i)+new m(o)+r,p=decodeURIComponent(V.hash);("push"===t?D:q)(u,s,d),p!==r&&window.dispatchEvent(new CustomEvent("hashchange"))}function X(t,e,n,s){K(e);const i=Object.assign({$key:G()},e||{}),{pathname:o,search:r,hash:a}=new URL(s,V.origin+V.pathname),c=Q({path:o,query:new m(r),hash:a,title:n,data:e});F.set(i.$key,c),R(k(B),i);const l=z(o)+c.query+a,h=V.hash;("push"===t?D:q)(i,n,l),h!==a&&window.dispatchEvent(new CustomEvent("hashchange"))}const Y=j({basePath:""});if(window.addEventListener("hashchange",(({isTrusted:t})=>{t&&I.replace({hash:decodeURIComponent(V.hash)})})),Object.defineProperties(I,{basePath:{get:()=>Y.basePath,set(t){R(Y,{basePath:t}),Object.assign(F.get(B.$key),{path:J(V.pathname)})}},getParams:{value:function(){return F.get(B.$key)}},updateParams:{value:function(t){Object.assign(F.get(B.$key),t),R(B,{})}},store:{value:B},push:{value:function(t){I.pushState(t,"")}},pushIgnoreCloseHandle:{value:function(t){var e,n;B.$hasCloseHandle?(null===(n=null===(e=F.get(B.$key))||void 0===e?void 0:e.close)||void 0===n||n.call(e),I.replace(t)):I.push(t)}},replace:{value:function(t){Z("replace",t)}}}),I.pushState=function(t,e,n){n?X("push",t,e,n):Z("push",t)},I.replaceState=function(t,e,n){X("replace",t,e,n)},I.state)if(I.state.$hasCloseHandle){R(B,I.state);const t=Q({title:document.title});F.set(B.$key,t),I.back()}else{const t=Q({title:document.title,hash:V.hash});R(B,Object.assign({$key:G()},I.state||{})),F.set(B.$key,t)}else{const{pathname:t,search:e,hash:n}=V;I.replace({path:t,query:e,hash:n})}const tt=j({title:""});H(tt,(()=>{const t=F.get(B.$key);t&&(t.title=tt.title)})),H(B,(()=>{const{title:t}=I.getParams();t!==tt.title&&R(tt,{title:t})}));let et=!1;window.addEventListener("popstate",(t=>{var e,n;const s=t.state;if(!(null==s?void 0:s.$key))return;if(et)return void(et=!1);if(!F.has(s.$key)){const{pathname:t,search:e,hash:n}=V;F.set(s.$key,{path:t,query:new m(e),hash:n,title:document.title,data:s})}const i=B;if(parseFloat(s.$key)>parseFloat(i.$key)&&s.$hasOpenHandle)null===(n=null===(e=F.get(s.$key))||void 0===e?void 0:e.open)||void 0===n||n.call(e);else if(i.$hasCloseHandle){const t=F.get(i.$key),e=null==t?void 0:t.close,n=null==t?void 0:t.shouldClose;if(n&&!n())return et=!0,void I.forward();e?e():s.$hasCloseHandle&&(et=!0,I.back())}R(k(B),s)}));const nt=new WeakMap,st=t=>(...e)=>{const n=t(...e);return nt.set(n,!0),n},it=t=>"function"==typeof t&&nt.has(t),ot="undefined"!=typeof window&&null!=window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,rt=(t,e,n=null,s=null)=>{for(;e!==n;){const n=e.nextSibling;t.insertBefore(e,s),e=n}},at=(t,e,n=null)=>{for(;e!==n;){const n=e.nextSibling;t.removeChild(e),e=n}},ct={},lt={},ht=`{{lit-${String(Math.random()).slice(2)}}}`,ut=`\x3c!--${ht}--\x3e`,dt=new RegExp(`${ht}|${ut}`),pt="$lit$";class ft{constructor(t,e){this.parts=[],this.element=e;const n=[],s=[],i=document.createTreeWalker(e.content,133,null,!1);let o=0,r=-1,a=0;const{strings:c,values:{length:l}}=t;for(;a<l;){const t=i.nextNode();if(null!==t){if(r++,1===t.nodeType){if(t.hasAttributes()){const e=t.attributes,{length:n}=e;let s=0;for(let t=0;t<n;t++)mt(e[t].name,pt)&&s++;for(;s-- >0;){const e=c[a],n=yt.exec(e)[2],s=n.toLowerCase()+pt,i=t.getAttribute(s);t.removeAttribute(s);const o=i.split(dt);this.parts.push({type:"attribute",index:r,name:n,strings:o}),a+=o.length-1}}"TEMPLATE"===t.tagName&&(s.push(t),i.currentNode=t.content)}else if(3===t.nodeType){const e=t.data;if(e.indexOf(ht)>=0){const s=t.parentNode,i=e.split(dt),o=i.length-1;for(let e=0;e<o;e++){let n,o=i[e];if(""===o)n=vt();else{const t=yt.exec(o);null!==t&&mt(t[2],pt)&&(o=o.slice(0,t.index)+t[1]+t[2].slice(0,-pt.length)+t[3]),n=document.createTextNode(o)}s.insertBefore(n,t),this.parts.push({type:"node",index:++r})}""===i[o]?(s.insertBefore(vt(),t),n.push(t)):t.data=i[o],a+=o}}else if(8===t.nodeType)if(t.data===ht){const e=t.parentNode;null!==t.previousSibling&&r!==o||(r++,e.insertBefore(vt(),t)),o=r,this.parts.push({type:"node",index:r}),null===t.nextSibling?t.data="":(n.push(t),r--),a++}else{let e=-1;for(;-1!==(e=t.data.indexOf(ht,e+1));)this.parts.push({type:"node",index:-1}),a++}}else i.currentNode=s.pop()}for(const t of n)t.parentNode.removeChild(t)}}const mt=(t,e)=>{const n=t.length-e.length;return n>=0&&t.slice(n)===e},gt=t=>-1!==t.index,vt=()=>document.createComment(""),yt=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;class wt{constructor(t,e,n){this.__parts=[],this.template=t,this.processor=e,this.options=n}update(t){let e=0;for(const n of this.__parts)void 0!==n&&n.setValue(t[e]),e++;for(const t of this.__parts)void 0!==t&&t.commit()}_clone(){const t=ot?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),e=[],n=this.template.parts,s=document.createTreeWalker(t,133,null,!1);let i,o=0,r=0,a=s.nextNode();for(;o<n.length;)if(i=n[o],gt(i)){for(;r<i.index;)r++,"TEMPLATE"===a.nodeName&&(e.push(a),s.currentNode=a.content),null===(a=s.nextNode())&&(s.currentNode=e.pop(),a=s.nextNode());if("node"===i.type){const t=this.processor.handleTextExpression(this.options);t.insertAfterNode(a.previousSibling),this.__parts.push(t)}else this.__parts.push(...this.processor.handleAttributeExpressions(a,i.name,i.strings,this.options));o++}else this.__parts.push(void 0),o++;return ot&&(document.adoptNode(t),customElements.upgrade(t)),t}}const bt=window.trustedTypes&&trustedTypes.createPolicy("lit-html",{createHTML:t=>t}),St=` ${ht} `;class Et{constructor(t,e,n,s){this.strings=t,this.values=e,this.type=n,this.processor=s}getHTML(){const t=this.strings.length-1;let e="",n=!1;for(let s=0;s<t;s++){const t=this.strings[s],i=t.lastIndexOf("\x3c!--");n=(i>-1||n)&&-1===t.indexOf("--\x3e",i+1);const o=yt.exec(t);e+=null===o?t+(n?St:ut):t.substr(0,o.index)+o[1]+o[2]+pt+o[3]+ht}return e+=this.strings[t],e}getTemplateElement(){const t=document.createElement("template");let e=this.getHTML();return void 0!==bt&&(e=bt.createHTML(e)),t.innerHTML=e,t}}class xt extends Et{getHTML(){return`<svg>${super.getHTML()}</svg>`}getTemplateElement(){const t=super.getTemplateElement(),e=t.content,n=e.firstChild;return e.removeChild(n),rt(e,n.firstChild),t}}const _t=t=>null===t||!("object"==typeof t||"function"==typeof t),Pt=t=>Array.isArray(t)||!(!t||!t[Symbol.iterator]);class kt{constructor(t,e,n){this.dirty=!0,this.element=t,this.name=e,this.strings=n,this.parts=[];for(let t=0;t<n.length-1;t++)this.parts[t]=this._createPart()}_createPart(){return new Ot(this)}_getValue(){const t=this.strings,e=t.length-1,n=this.parts;if(1===e&&""===t[0]&&""===t[1]){const t=n[0].value;if("symbol"==typeof t)return String(t);if("string"==typeof t||!Pt(t))return t}let s="";for(let i=0;i<e;i++){s+=t[i];const e=n[i];if(void 0!==e){const t=e.value;if(_t(t)||!Pt(t))s+="string"==typeof t?t:String(t);else for(const e of t)s+="string"==typeof e?e:String(e)}}return s+=t[e],s}commit(){this.dirty&&(this.dirty=!1,this.element.setAttribute(this.name,this._getValue()))}}class Ot{constructor(t){this.value=void 0,this.committer=t}setValue(t){t===ct||_t(t)&&t===this.value||(this.value=t,it(t)||(this.committer.dirty=!0))}commit(){for(;it(this.value);){const t=this.value;this.value=ct,t(this)}this.value!==ct&&this.committer.commit()}}class Tt{constructor(t){this.value=void 0,this.__pendingValue=void 0,this.options=t}appendInto(t){this.startNode=t.appendChild(vt()),this.endNode=t.appendChild(vt())}insertAfterNode(t){this.startNode=t,this.endNode=t.nextSibling}appendIntoPart(t){t.__insert(this.startNode=vt()),t.__insert(this.endNode=vt())}insertAfterPart(t){t.__insert(this.startNode=vt()),this.endNode=t.endNode,t.endNode=this.startNode}setValue(t){this.__pendingValue=t}commit(){if(null===this.startNode.parentNode)return;for(;it(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=ct,t(this)}const t=this.__pendingValue;t!==ct&&(_t(t)?t!==this.value&&this.__commitText(t):t instanceof Et?this.__commitTemplateResult(t):t instanceof Node?this.__commitNode(t):Pt(t)?this.__commitIterable(t):t===lt?(this.value=lt,this.clear()):this.__commitText(t))}__insert(t){this.endNode.parentNode.insertBefore(t,this.endNode)}__commitNode(t){this.value!==t&&(this.clear(),this.__insert(t),this.value=t)}__commitText(t){const e=this.startNode.nextSibling,n="string"==typeof(t=null==t?"":t)?t:String(t);e===this.endNode.previousSibling&&3===e.nodeType?e.data=n:this.__commitNode(document.createTextNode(n)),this.value=t}__commitTemplateResult(t){const e=this.options.templateFactory(t);if(this.value instanceof wt&&this.value.template===e)this.value.update(t.values);else{const n=new wt(e,t.processor,this.options),s=n._clone();n.update(t.values),this.__commitNode(s),this.value=n}}__commitIterable(t){Array.isArray(this.value)||(this.value=[],this.clear());const e=this.value;let n,s=0;for(const i of t)n=e[s],void 0===n&&(n=new Tt(this.options),e.push(n),0===s?n.appendIntoPart(this):n.insertAfterPart(e[s-1])),n.setValue(i),n.commit(),s++;s<e.length&&(e.length=s,this.clear(n&&n.endNode))}clear(t=this.startNode){at(this.startNode.parentNode,t.nextSibling,this.endNode)}}class Ct{constructor(t,e,n){if(this.value=void 0,this.__pendingValue=void 0,2!==n.length||""!==n[0]||""!==n[1])throw new Error("Boolean attributes can only contain a single expression");this.element=t,this.name=e,this.strings=n}setValue(t){this.__pendingValue=t}commit(){for(;it(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=ct,t(this)}if(this.__pendingValue===ct)return;const t=!!this.__pendingValue;this.value!==t&&(t?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name),this.value=t),this.__pendingValue=ct}}class $t extends kt{constructor(t,e,n){super(t,e,n),this.single=2===n.length&&""===n[0]&&""===n[1]}_createPart(){return new Mt(this)}_getValue(){return this.single?this.parts[0].value:super._getValue()}commit(){this.dirty&&(this.dirty=!1,this.element[this.name]=this._getValue())}}class Mt extends Ot{}let Nt=!1;(()=>{try{const t={get capture(){return Nt=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}})();class Lt{constructor(t,e,n){this.value=void 0,this.__pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=n,this.__boundHandleEvent=t=>this.handleEvent(t)}setValue(t){this.__pendingValue=t}commit(){for(;it(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=ct,t(this)}if(this.__pendingValue===ct)return;const t=this.__pendingValue,e=this.value,n=null==t||null!=e&&(t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive),s=null!=t&&(null==e||n);n&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),s&&(this.__options=jt(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=ct}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const jt=t=>t&&(Nt?{capture:t.capture,passive:t.passive,once:t.once}:t.capture),At=new class{handleAttributeExpressions(t,e,n,s){const i=e[0];return"."===i?new $t(t,e.slice(1),n).parts:"@"===i?[new Lt(t,e.slice(1),s.eventContext)]:"?"===i?[new Ct(t,e.slice(1),n)]:new kt(t,e,n).parts}handleTextExpression(t){return new Tt(t)}};function Rt(t){let e=Ht.get(t.type);void 0===e&&(e={stringsArray:new WeakMap,keyString:new Map},Ht.set(t.type,e));let n=e.stringsArray.get(t.strings);if(void 0!==n)return n;const s=t.strings.join(ht);return n=e.keyString.get(s),void 0===n&&(n=new ft(t,t.getTemplateElement()),e.keyString.set(s,n)),e.stringsArray.set(t.strings,n),n}const Ht=new Map,Wt=new WeakMap,It=(t,e,n)=>{let s=Wt.get(e);void 0===s&&(at(e,e.firstChild),Wt.set(e,s=new Tt(Object.assign({templateFactory:Rt},n))),s.appendInto(e)),s.setValue(t),s.commit()};"undefined"!=typeof window&&(window.litHtmlVersions||(window.litHtmlVersions=[])).push("1.4.1");const Vt=(t,...e)=>new Et(t,e,"html",At),Dt=(t,...e)=>new xt(t,e,"svg",At),qt=(t,e)=>{const n=t.startNode.parentNode,s=void 0===e?t.endNode:e.startNode,i=n.insertBefore(vt(),s);n.insertBefore(vt(),s);const o=new Tt(t.options);return o.insertAfterNode(i),o},Ut=(t,e)=>(t.setValue(e),t.commit(),t),Gt=(t,e,n)=>{const s=t.startNode.parentNode,i=n?n.startNode:t.endNode,o=e.endNode.nextSibling;o!==i&&rt(s,e.startNode,o,i)},Bt=t=>{at(t.startNode.parentNode,t.startNode,t.endNode.nextSibling)},Ft=(t,e,n)=>{const s=new Map;for(let i=e;i<=n;i++)s.set(t[i],i);return s},Kt=new WeakMap,zt=new WeakMap,Jt=st(((t,e,n)=>{let s;return void 0===n?n=e:void 0!==e&&(s=e),e=>{if(!(e instanceof Tt))throw new Error("repeat can only be used in text bindings");const i=Kt.get(e)||[],o=zt.get(e)||[],r=[],a=[],c=[];let l,h,u=0;for(const e of t)c[u]=s?s(e,u):u,a[u]=n(e,u),u++;let d=0,p=i.length-1,f=0,m=a.length-1;for(;d<=p&&f<=m;)if(null===i[d])d++;else if(null===i[p])p--;else if(o[d]===c[f])r[f]=Ut(i[d],a[f]),d++,f++;else if(o[p]===c[m])r[m]=Ut(i[p],a[m]),p--,m--;else if(o[d]===c[m])r[m]=Ut(i[d],a[m]),Gt(e,i[d],r[m+1]),d++,m--;else if(o[p]===c[f])r[f]=Ut(i[p],a[f]),Gt(e,i[p],i[d]),p--,f++;else if(void 0===l&&(l=Ft(c,f,m),h=Ft(o,d,p)),l.has(o[d]))if(l.has(o[p])){const t=h.get(c[f]),n=void 0!==t?i[t]:null;if(null===n){const t=qt(e,i[d]);Ut(t,a[f]),r[f]=t}else r[f]=Ut(n,a[f]),Gt(e,n,i[d]),i[t]=null;f++}else Bt(i[p]),p--;else Bt(i[d]),d++;for(;f<=m;){const t=qt(e,r[m+1]);Ut(t,a[f]),r[f++]=t}for(;d<=p;){const t=i[d++];null!==t&&Bt(t)}Kt.set(e,r),zt.set(e,c)}})),Qt=new WeakMap,Zt=st(((t,e)=>n=>{const s=Qt.get(n);if(Array.isArray(t)){if(Array.isArray(s)&&s.length===t.length&&t.every(((t,e)=>t===s[e])))return}else if(s===t&&(void 0!==t||Qt.has(n)))return;n.setValue(e()),Qt.set(n,Array.isArray(t)?Array.from(t):t)})),Xt=new WeakMap,Yt=st((t=>e=>{const n=Xt.get(e);if(void 0===t&&e instanceof Ot){if(void 0!==n||!Xt.has(e)){const t=e.committer.name;e.committer.element.removeAttribute(t)}}else t!==n&&e.setValue(t);Xt.set(e,t)}));var te,ee,ne,se,ie,oe,re,ae,ce,le,he,ue,de,pe,fe,me,ge,ve=function(t,e,n,s){if("a"===n&&!s)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!s:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?s:"a"===n?s.call(t):s?s.value:e.get(t)},ye=function(t,e,n,s,i){if("m"===s)throw new TypeError("Private method is not writable");if("a"===s&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===s?i.call(t,n):i?i.value=n:e.set(t,n),n};function we(){}function be(t){"function"==typeof t&&t()}const Se=new d,Ee=()=>{window.requestAnimationFrame((function t(e){if(performance.now()>e+16)return void Ee();const n=Se.get();n&&(n(),t(e))}))};Se.addEventListener("start",Ee);const xe=Symbol("init"),_e=Symbol("update");class Pe extends HTMLElement{constructor({isAsync:t,isLight:e,delegatesFocus:n}={}){super(),te.set(this,void 0),ee.set(this,void 0),ne.set(this,void 0),se.set(this,void 0),ie.set(this,void 0),oe.set(this,void 0),re.set(this,void 0),this.setState=t=>{if(!this.state)throw new O("`state` not initialized");Object.assign(this.state,t),a(ve(this,fe,"f"))},ae.set(this,(t=>{null==t||t.forEach((t=>{const{callback:e,getDep:n,values:s,preCallback:i}=t,o=null==n?void 0:n();n&&!T(s,o)||(be(i),t.preCallback=e(o,s),t.values=o)}))})),ce.set(this,(()=>{ve(this,ae,"f").call(this,ve(this,ie,"f"))})),le.set(this,(()=>{ve(this,ae,"f").call(this,ve(this,oe,"f"))})),this.effect=(t,e)=>{ve(this,ie,"f")||ye(this,ie,[],"f");const n=null==e?void 0:e(),s={callback:t,getDep:e,values:n,initialized:!!this.isConnected};this.isConnected&&(s.preCallback=t(n)),ve(this,ie,"f").push(s)},this.memo=(t,e)=>{ve(this,oe,"f")||ye(this,oe,[],"f"),ve(this,oe,"f").push({callback:t,getDep:e,values:[Symbol()],initialized:this.isConnected})},he.set(this,(()=>{var t;null===(t=ve(this,ie,"f"))||void 0===t||t.forEach((t=>{const{callback:e,getDep:n,initialized:s}=t;s||(t.preCallback=e(null==n?void 0:n()),t.initialized=!0)}))})),ue.set(this,(()=>(ve(this,le,"f").call(this),this.render?this.render():ve(this,te,"f")===this?void 0:Vt`<slot></slot>`))),de.set(this,(()=>!this.shouldUpdate||this.shouldUpdate())),pe.set(this,(()=>{if(this.isConnected&&ve(this,de,"f").call(this)){const t=ve(this,ue,"f").call(this);void 0!==t&&It(t,ve(this,te,"f")),a(ve(this,me,"f")),a(ve(this,ce,"f"))}})),fe.set(this,(()=>{ve(this,se,"f")?Se.add(ve(this,pe,"f")):ve(this,pe,"f").call(this)})),this.update=()=>{a(ve(this,fe,"f"))},me.set(this,(()=>{var t;null===(t=this.updated)||void 0===t||t.call(this)})),ge.set(this,(()=>{var t,e,n;if(ve(this,ne,"f"))return void ye(this,ne,!1,"f");null===(t=this.willMount)||void 0===t||t.call(this);const{observedStores:s,rootElement:i}=this.constructor;null==s||s.forEach((t=>{H(t,ve(this,fe,"f"))}));const o=ve(this,ue,"f").call(this);if(void 0!==o&&It(o,ve(this,te,"f")),ye(this,re,null===(e=this.mounted)||void 0===e?void 0:e.call(this),"f"),ve(this,he,"f").call(this),i&&(null===(n=this.getRootNode().host)||void 0===n?void 0:n.tagName)!==i.toUpperCase())throw new O("not allow current root type")})),a((()=>this[xe]=!1)),this[xe]=!0,this[_e]=()=>{this.isConnected&&a(ve(this,fe,"f"))},ye(this,se,t,"f"),ye(this,te,e?this:this.attachShadow({mode:"open",delegatesFocus:n}),"f");const{adoptedStyleSheets:s}=new.target;if(s){const t=s.map((t=>t[y]||t));this.shadowRoot?this.shadowRoot.adoptedStyleSheets=t:this.effect((()=>{const e=this.getRootNode();return e.adoptedStyleSheets=[...e.adoptedStyleSheets,...t],()=>{e.adoptedStyleSheets=C(e.adoptedStyleSheets,t)}}),(()=>[]))}}get internals(){if(!ve(this,ee,"f")){const t=()=>{const{classList:t}=this;return{has:e=>t.contains(e),add:e=>t.add(e),delete:e=>t.remove(e)}};this.attachInternals||(this.attachInternals=()=>({states:t()})),ye(this,ee,this.attachInternals(),"f"),ve(this,ee,"f").states||(ve(this,ee,"f").states=t())}return ve(this,ee,"f")}attributeChangedCallback(){this.isConnected&&a(ve(this,fe,"f"))}closestElement(t){const e="function"==typeof t,n="string"==typeof t&&t.toUpperCase(),s=i=>{const o=i.parentElement||i.getRootNode().host;if(!o)return null;if(e){if(o.constructor===t)return o}else if(o.tagName===n)return o;return s(o)};return s(this)}connectedCallback(){ve(this,se,"f")?Se.add(ve(this,ge,"f")):ve(this,ge,"f").call(this)}disconnectedCallback(){var t,e,n;if(this.isConnected)return void ye(this,ne,!0,"f");const{observedStores:s}=this.constructor;null==s||s.forEach((t=>{W(t,ve(this,fe,"f"))})),be(ve(this,re,"f")),null===(t=this.unmounted)||void 0===t||t.call(this),null===(e=ve(this,ie,"f"))||void 0===e||e.forEach((t=>{be(t.preCallback)})),ye(this,oe,null===(n=ve(this,oe,"f"))||void 0===n?void 0:n.filter((({initialized:t})=>!t)),"f")}}te=new WeakMap,ee=new WeakMap,ne=new WeakMap,se=new WeakMap,ie=new WeakMap,oe=new WeakMap,re=new WeakMap,ae=new WeakMap,ce=new WeakMap,le=new WeakMap,he=new WeakMap,ue=new WeakMap,de=new WeakMap,pe=new WeakMap,fe=new WeakMap,me=new WeakMap,ge=new WeakMap;const ke=new p;function Oe(t,e,n){const{booleanAttributes:s,numberAttributes:i}=t.constructor;Object.defineProperty(t,e,{configurable:!0,get(){if(!(xe in this))return;const t=this.getAttribute(n);return(null==s?void 0:s.has(n))?null!==t:(null==i?void 0:i.has(n))?Number(t):t||""},set(t){const i=this,o=ke.get(this),r=o[e],a=i.getAttribute(n);if(this[xe]&&null!==a&&!r)return;o[e]=!0;const c=null==s?void 0:s.has(n);null==t?i.removeAttribute(n):c?i.toggleAttribute(n,!!t):a!==String(t)&&i.setAttribute(n,String(t))}})}const Te=Symbol("event handle");function Ce(t,e,n,s){Object.defineProperty(t,e,{configurable:!0,get(){const t=ke.get(this)[e];return t||!n?t:(this[e]=we,this[e])},set(t){const i=this,o=ke.get(i);t!==o[e]&&(n?(o[e]=(null==t?void 0:t[Te])?t:(e,o)=>{const r=new CustomEvent(n,Object.assign(Object.assign(Object.assign({},o),s),{detail:e}));i.dispatchEvent(r),t(e,o)},o[e][Te]=!0):(o[e]=t,this[_e]()))}})}function $e(t,e,n){Object.defineProperty(t,e,{configurable:!0,get(){const t=ke.get(this);let s=t[e];if(!s){const i=this,o=i.shadowRoot||i;s={get ref(){return n},get element(){const t=[...o.querySelectorAll("gem-reflect")].map((t=>t.target));for(const e of[o,...t]){const t=e.querySelector(`[ref=${n}]`);if(t)return t}}},t[e]=s}return s}})}function Me(t,e,n){Object.defineProperty(t,e,{configurable:!0,get(){var t;const{states:e}=this.internals;return null===(t=e.has)||void 0===t?void 0:t.call(e,n)},set(t){const{states:e}=this.internals;t?e.add(n):e.delete(n)}})}const Ne=customElements.define.bind(customElements);function Le(t,e,n,s=!1){const i=t.constructor,o=i[e];i.hasOwnProperty(e)||Object.defineProperty(i,e,{value:s?new Set(o):o?Array.from(o):[]}),i[e][s?"add":"push"](n)}function je(t,e){const n=`${_(e)}-${b()}`;Le(t,"defineRefs",n),$e(t,e,n)}function Ae(t,e,n){Le(t,"observedAttributes",n),Oe(t,e,n)}function Re(t,e){Ae(t,e,_(e))}function He(t,e){const n=_(e);Le(t,"booleanAttributes",n,!0),Ae(t,e,n)}function We(t,e){const n=_(e);Le(t,"numberAttributes",n,!0),Ae(t,e,n)}function Ie(t,e){Le(t,"observedPropertys",e),Ce(t,e)}function Ve(t,e){const n=_(e);Le(t,"defineCSSStates",n),Me(t,e,`--${n}`)}function De(t,e){const n=_(t[e]||e);t[e]=n,Le(t instanceof Pe?t:t.prototype,"defineSlots",n)}function qe(t,e){const n=_(t[e]||e);t[e]=n,Le(t instanceof Pe?t:t.prototype,"defineParts",n)}function Ue(t,e){Be(t,e)}function Ge(t,e){Be(t,e,{bubbles:!0,composed:!0})}function Be(t,e,n){const s=_(e);Le(t,"defineEvents",s),Ce(t,e,s,n)}function Fe(t){return function(e){Le(e.prototype,"adoptedStyleSheets",t)}}function Ke(t){return function(e){Le(e.prototype,"observedStores",t)}}function ze(t){return function(e){e.rootElement=t}}function Je(t){return function(e){Ne(t,e)}}customElements.define=(t,e,n)=>{if(e.prototype instanceof Pe){const{observedAttributes:t,observedPropertys:n,defineEvents:s,defineCSSStates:i,defineRefs:o}=e;null==t||t.forEach((t=>Oe(e.prototype,P(t),t))),null==n||n.forEach((t=>Ce(e.prototype,t))),null==s||s.forEach((t=>Ce(e.prototype,P(t),t))),null==i||i.forEach((t=>Me(e.prototype,P(t),`--${t}`))),null==o||o.forEach((t=>$e(e.prototype,P(t),t)))}Ne(t,e,n)};const Qe="1.5.2";window.__GEM_DEVTOOLS__HOOK__&&Object.assign(window.__GEM_DEVTOOLS__HOOK__,Object.assign({},n));var Ze,Xe,Ye,tn,en=function(t,e,n,s){var i,o=arguments.length,r=o<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,s);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(r=(o<3?i(r):o>3?i(e,n,r):i(e,n))||r);return o>3&&r&&Object.defineProperty(e,n,r),r},nn=function(t,e,n,s,i){if("m"===s)throw new TypeError("Private method is not writable");if("a"===s&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===s?i.call(t,n):i?i.value=n:e.set(t,n),n},sn=function(t,e,n,s){if("a"===n&&!s)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!s:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?s:"a"===n?s.call(t):s?s.value:e.get(t)};class on extends RegExp{constructor(t){const e={};let n=0;super(`^${t.replace(/:([^/$]+)/g,((t,s)=>(e[s]=n++,"([^/]+)"))).replace("*",".*")}$`,"i"),this.namePosition=e}}function rn(t,e){const n=new on(t),s=e.match(n)||`${e}/`.match(n);if(!s)return null;const i={};return s&&Object.keys(n.namePosition).forEach((t=>{i[t]=s[n.namePosition[t]+1]})),i}function an(t,e){let n=t.pattern;const s=null==e?void 0:e.params;return s&&Object.keys(s).forEach((t=>{n=n.replace(new RegExp(`:${t}`,"g"),s[t])})),n}function cn(t,e){const n=an(t,e);return Object.assign({path:n},e)}let ln=tn=class extends Pe{constructor({isLight:t,routes:e}={}){super({isLight:t}),this.currentParams={},Ze.set(this,void 0),this.state={content:void 0},Xe.set(this,(()=>{if(this.locationStore){const{path:t,query:e,data:n}=I.getParams();R(this.locationStore,{path:t,params:this.currentParams,query:e,data:n})}})),Ye.set(this,((t,e,n)=>{nn(this,Ze,void 0,"f"),this.currentRoute=t,this.currentParams=e,this.setState({content:n}),this.change(this.currentRoute);const s=null==t?void 0:t.title;s&&R(tt,{title:s}),sn(this,Xe,"f").call(this)})),this.routes=e}mounted(){this.effect((([t,e])=>{const{route:n,params:s={}}=tn.findRoute(this.routes,e),{redirect:i,content:o,getContent:r}=n||{};if(i)return void I.replace({path:i});const a=o||(null==r?void 0:r(s));if(a instanceof Promise){this.loading(n),nn(this,Ze,a,"f");const t=()=>sn(this,Ze,"f")===a;a.then((e=>{t()&&sn(this,Ye,"f").call(this,n,s,e)})).catch((e=>{t()&&this.error(e)}))}else sn(this,Ye,"f").call(this,n,s,a)}),(()=>{const{path:t}=I.getParams();return[this.key,t]})),this.effect(sn(this,Xe,"f"),(()=>[location.search]))}shouldUpdate(){return!this.inert}render(){const{content:t}=this.state;return this.shadowRoot?Vt`
2
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Gem=e():t.Gem=e()}(self,(function(){return(()=>{"use strict";var t={d:(e,n)=>{for(var s in n)t.o(n,s)&&!t.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:n[s]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{DialogBaseElement:()=>Hn,GemActiveLinkElement:()=>yn,GemElement:()=>$e,GemError:()=>N,GemLightRouteElement:()=>mn,GemLinkElement:()=>vn,GemReflectElement:()=>Cn,GemRouteElement:()=>fn,GemTitleElement:()=>Sn,GemUnsafeElement:()=>kn,GemUseElement:()=>Pn,I18n:()=>zn,LinkedList:()=>y,PropProxyMap:()=>w,QueryString:()=>b,SVGTemplateResult:()=>Ct,SheetToken:()=>x,StoreListenerMap:()=>W,TemplateResult:()=>Tt,absoluteLocation:()=>v,addMicrotask:()=>p,addMicrotaskToStack:()=>g,adoptedStyle:()=>Ze,attribute:()=>Ie,basePathStore:()=>it,boolattribute:()=>qe,camelToKebabCase:()=>O,classMap:()=>R,cleanObject:()=>M,connect:()=>q,connectStore:()=>Xe,createCSSSheet:()=>P,createHistoryParams:()=>pn,createModalClass:()=>$n,createPath:()=>dn,createStore:()=>V,createStoreSet:()=>D,createTheme:()=>qn,css:()=>E,customElement:()=>tn,defineAttribute:()=>Ne,defineCSSState:()=>Re,defineProperty:()=>je,defineRef:()=>Ae,del:()=>Yn,directive:()=>ct,disconnect:()=>U,emitter:()=>Ke,get:()=>Xn,getThemeProp:()=>In,getThemeStore:()=>Vn,globalemitter:()=>Je,guard:()=>ne,history:()=>G,html:()=>Bt,ifDefined:()=>ie,isArrayChange:()=>L,kebabToCamelCase:()=>$,matchPath:()=>un,mediaQuery:()=>ns,nativeDefineElement:()=>He,numattribute:()=>Ue,part:()=>ze,partMap:()=>H,post:()=>es,property:()=>Ge,put:()=>ts,randomStr:()=>_,raw:()=>S,refobject:()=>Ve,removeItems:()=>j,render:()=>Gt,repeat:()=>te,request:()=>Jn,rootElement:()=>Ye,slot:()=>Fe,state:()=>Be,styleMap:()=>A,styled:()=>C,svg:()=>Ft,titleStore:()=>ot,updateStore:()=>I,updateTheme:()=>Un,version:()=>en});var n={};t.r(n),t.d(n,{GemElement:()=>$e,GemError:()=>N,LinkedList:()=>y,PropProxyMap:()=>w,QueryString:()=>b,SVGTemplateResult:()=>Ct,SheetToken:()=>x,StoreListenerMap:()=>W,TemplateResult:()=>Tt,absoluteLocation:()=>v,addMicrotask:()=>p,addMicrotaskToStack:()=>g,adoptedStyle:()=>Ze,attribute:()=>Ie,basePathStore:()=>it,boolattribute:()=>qe,camelToKebabCase:()=>O,classMap:()=>R,cleanObject:()=>M,connect:()=>q,connectStore:()=>Xe,createCSSSheet:()=>P,createStore:()=>V,createStoreSet:()=>D,css:()=>E,customElement:()=>tn,defineAttribute:()=>Ne,defineCSSState:()=>Re,defineProperty:()=>je,defineRef:()=>Ae,directive:()=>ct,disconnect:()=>U,emitter:()=>Ke,globalemitter:()=>Je,guard:()=>ne,history:()=>G,html:()=>Bt,ifDefined:()=>ie,isArrayChange:()=>L,kebabToCamelCase:()=>$,nativeDefineElement:()=>He,numattribute:()=>Ue,part:()=>ze,partMap:()=>H,property:()=>Ge,randomStr:()=>_,raw:()=>S,refobject:()=>Ve,removeItems:()=>j,render:()=>Gt,repeat:()=>te,rootElement:()=>Ye,slot:()=>Fe,state:()=>Be,styleMap:()=>A,styled:()=>C,svg:()=>Ft,titleStore:()=>ot,updateStore:()=>I,version:()=>en});var s,i,o,r,a,c,l,h=function(t,e,n,s){if("a"===n&&!s)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!s:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?s:"a"===n?s.call(t):s?s.value:e.get(t)},u=function(t,e,n,s,i){if("m"===s)throw new TypeError("Private method is not writable");if("a"===s&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===s?i.call(t,n):i?i.value=n:e.set(t,n),n};const d=new Set;function p(t){"function"==typeof t&&(d.size||globalThis.queueMicrotask((()=>{d.forEach((t=>t())),d.clear()})),d.delete(t),d.add(t))}const f=[];function m(){for(let t=f.length-1;t>=0;t--)f[t]();f.length=0}function g(t){f.length||p(m),f.push(t)}function v(t="",e=""){const{pathname:n,search:s,hash:i}=new URL(e,location.origin+t);return n+s+i}class y extends(globalThis.EventTarget||Object){constructor(){super(...arguments),s.add(this),i.set(this,new Map),o.set(this,void 0),r.set(this,void 0)}get size(){return h(this,i,"f").size}add(t){h(this,r,"f")||this.dispatchEvent(new CustomEvent("start"));const e=h(this,s,"m",a).call(this,t)||{value:t};e.prev=h(this,r,"f"),e.prev&&(e.prev.next=e),e.next=void 0,u(this,r,e,"f"),h(this,o,"f")||u(this,o,e,"f"),h(this,i,"f").set(t,e)}delete(t){const e=h(this,s,"m",a).call(this,t);return h(this,o,"f")||this.dispatchEvent(new CustomEvent("end")),e}get(){const t=h(this,o,"f");if(t)return h(this,s,"m",a).call(this,t.value),t.value}}i=new WeakMap,o=new WeakMap,r=new WeakMap,s=new WeakSet,a=function(t){const e=h(this,i,"f").get(t);return e&&(e.prev?e.prev.next=e.next:u(this,o,e.next,"f"),e.next?e.next.prev=e.prev:u(this,r,e.prev,"f"),h(this,i,"f").delete(t)),e};class w extends WeakMap{get(t){let e=super.get(t);return e||(e={},this.set(t,e)),e}}class b extends URLSearchParams{constructor(t){super(t),c.set(this,(t=>"string"==typeof t?t:JSON.stringify(t))),l.set(this,(t=>{if(!t)return null;try{return JSON.parse(t)}catch(t){return null}}))}concat(t){let e;e="string"==typeof t?Object.fromEntries(new URLSearchParams(t).entries()):t,Object.entries(e).forEach((([t,e])=>{this.append(t,h(this,c,"f").call(this,e))}))}setAny(t,e){if(Array.isArray(e))this.delete(t),e.forEach((e=>this.append(t,h(this,c,"f").call(this,e))));else{const n=h(this,c,"f").call(this,e);n?this.set(t,n):this.delete(t)}}getAny(t){return this.getAnyAll(t)[0]}getAnyAll(t){return this.getAll(t).filter((t=>""!==t)).map((t=>h(this,l,"f").call(this,t)))}toString(){const t=super.toString();return t?`?${t}`:""}toJSON(){return this.toString()}}function S(t,...e){return t.reduce(((t,n,s)=>{var i;return t+(null!==(i=e[s-1])&&void 0!==i?i:"")+n}))}function E(t,...e){return S(t,...e)}c=new WeakMap,l=new WeakMap;const x=Symbol("sheet token");function P(t,e=""){const n=new CSSStyleSheet,s={};n.media.mediaText=e;let i="";return"string"==typeof t?i=t:Object.keys(t).forEach((e=>{s[e]=`${e}-${_()}`,i+=t[e].styledContent.replace(/&/g,s[e])})),n.replaceSync(i),s[x]=n,s}function _(t=5,e="0123456789abcdefghijklmnopqrstuvwxyz"){const n=e.length;let s="";for(let i=0;i<t;i++)s+=e[Math.floor(Math.random()*n)];return s}const k=new RegExp("&.*{((.|\n)*)}","g");function T(t,e){const n=[];let s=`& {${t.replace(k,(t=>(n.push(t),"")))}}`+n.join("");return s=s.replace(/&/g,"class"===e?".&":"#&"),{styledContent:s,type:e}}const C={class:(t,...e)=>T(S(t,...e),"class"),id:(t,...e)=>T(S(t,...e),"id"),keyframes:(t,...e)=>({styledContent:`@keyframes & {${S(t,...e)}}`,type:"keyframes"})};function O(t){return t.replace(/[A-Z]/g,(t=>"-"+t.toLowerCase()))}function $(t){return t.replace(/-(.)/g,((t,e)=>e.toUpperCase()))}function M(t){return Object.keys(t).forEach((e=>{delete t[e]})),t}class N extends Error{constructor(t){super(t),this.message=`gem: ${this.message}`}}function L(t,e){const n=t.length;for(let s=0;s<n;s++)if(t[s]!==e[s])return!0;return!1}function j(t,e){const n=new Set(e);return t.filter((t=>!n.has(t)||(n.delete(t),!1)))}function A(t){let e="";for(const n in t)t[n]&&(e+=`${O(n)}:${t[n]};`);return e}function R(t){let e=" ";for(const n in t)t[n]&&(e+=`${n} `);return e}const H=R,W=new WeakMap;function V(t){if(W.has(t))throw new N("argument error");return W.set(t,new Set),t}function D(t){return Object.keys(t).forEach((e=>{V(t[e])})),t}function I(t,e){Object.assign(t,e);const n=W.get(t);null==n||n.forEach((t=>{p(t)}))}function q(t,e){const n=W.get(t);null==n||n.add(e)}function U(t,e){const n=W.get(t);null==n||n.delete(e)}const G=window.history,B=window.location,F=G.pushState.bind(G),z=G.replaceState.bind(G);let K=0;const J=()=>`${performance.now()}-${++K}`,Q=V({$hasCloseHandle:!1,$hasOpenHandle:!1,$hasShouldCloseHandle:!1,$key:""}),Z=new Map;function X({$key:t,$hasCloseHandle:e,$hasOpenHandle:n,$hasShouldCloseHandle:s}={}){if(Q.$key!==t){if(t)throw new N("`$key` is not allowed");if(e)throw new N("`$hasCloseHandle` is not allowed");if(n)throw new N("`$hasOpenHandle` is not allowed");if(s)throw new N("`$hasShouldCloseHandle` is not allowed")}}function Y(t){return G.basePath?G.basePath+t:t}function tt(t){return t===G.basePath?"/":t.replace(new RegExp(`^${G.basePath}/`),"/")}function et(t){const e=Z.get(Q.$key)||{},n=t.path?v(e.path,t.path):tt(B.pathname),s=new b(t.query||(t.path?"":B.search)),i=t.path&&t.path!==e.path||t.query&&String(t.query)!==String(e.query),o=t.title||"",r=t.close||t.data||t.open||t.shouldClose,a=t.hash||(!i&&r?decodeURIComponent(B.hash):"");return Object.assign(Object.assign({},t),{title:o,path:n,query:s,hash:a})}function nt(t,e){X(e.data);const n=et(e),{title:s,path:i,query:o,hash:r,close:a,open:c,shouldClose:l,data:h}=n,u=Object.assign({$hasCloseHandle:!!a,$hasOpenHandle:!!c,$hasShouldCloseHandle:!!l,$key:J()},h);Z.set(u.$key,n),I(M(Q),u);const d=Y(i)+new b(o)+r,p=decodeURIComponent(B.hash);("push"===t?F:z)(u,s,d),p!==r&&window.dispatchEvent(new CustomEvent("hashchange"))}function st(t,e,n,s){X(e);const i=Object.assign({$key:J()},e||{}),{pathname:o,search:r,hash:a}=new URL(s,B.origin+B.pathname),c=et({path:o,query:new b(r),hash:a,title:n,data:e});Z.set(i.$key,c),I(M(Q),i);const l=Y(o)+c.query+a,h=B.hash;("push"===t?F:z)(i,n,l),h!==a&&window.dispatchEvent(new CustomEvent("hashchange"))}const it=V({basePath:""});if(window.addEventListener("hashchange",(({isTrusted:t})=>{t&&G.replace({hash:decodeURIComponent(B.hash)})})),Object.defineProperties(G,{basePath:{get:()=>it.basePath,set(t){I(it,{basePath:t}),Object.assign(Z.get(Q.$key),{path:tt(B.pathname)})}},getParams:{value:function(){return Z.get(Q.$key)}},updateParams:{value:function(t){Object.assign(Z.get(Q.$key),t),I(Q,{})}},store:{value:Q},push:{value:function(t){G.pushState(t,"")}},pushIgnoreCloseHandle:{value:function(t){var e,n;Q.$hasCloseHandle?(null===(n=null===(e=Z.get(Q.$key))||void 0===e?void 0:e.close)||void 0===n||n.call(e),G.replace(t)):G.push(t)}},replace:{value:function(t){nt("replace",t)}}}),G.pushState=function(t,e,n){n?st("push",t,e,n):nt("push",t)},G.replaceState=function(t,e,n){st("replace",t,e,n)},G.state)if(G.state.$hasCloseHandle){I(Q,G.state);const t=et({title:document.title});Z.set(Q.$key,t),G.back()}else{const t=et({title:document.title,hash:B.hash});I(Q,Object.assign({$key:J()},G.state||{})),Z.set(Q.$key,t)}else{const{pathname:t,search:e,hash:n}=B;G.replace({path:t,query:e,hash:n})}const ot=V({title:""});q(ot,(()=>{const t=Z.get(Q.$key);t&&(t.title=ot.title)})),q(Q,(()=>{const{title:t}=G.getParams();t!==ot.title&&I(ot,{title:t})}));let rt=!1;window.addEventListener("popstate",(t=>{var e,n;const s=t.state;if(!(null==s?void 0:s.$key))return;if(rt)return void(rt=!1);if(!Z.has(s.$key)){const{pathname:t,search:e,hash:n}=B;Z.set(s.$key,{path:t,query:new b(e),hash:n,title:document.title,data:s})}const i=Q;if(parseFloat(s.$key)>parseFloat(i.$key)&&s.$hasOpenHandle)null===(n=null===(e=Z.get(s.$key))||void 0===e?void 0:e.open)||void 0===n||n.call(e);else if(i.$hasCloseHandle){const t=Z.get(i.$key),e=null==t?void 0:t.close,n=null==t?void 0:t.shouldClose;if(n&&!n())return rt=!0,void G.forward();e?e():s.$hasCloseHandle&&(rt=!0,G.back())}I(M(Q),s)}));const at=new WeakMap,ct=t=>(...e)=>{const n=t(...e);return at.set(n,!0),n},lt=t=>"function"==typeof t&&at.has(t),ht="undefined"!=typeof window&&null!=window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,ut=(t,e,n=null,s=null)=>{for(;e!==n;){const n=e.nextSibling;t.insertBefore(e,s),e=n}},dt=(t,e,n=null)=>{for(;e!==n;){const n=e.nextSibling;t.removeChild(e),e=n}},pt={},ft={},mt=`{{lit-${String(Math.random()).slice(2)}}}`,gt=`\x3c!--${mt}--\x3e`,vt=new RegExp(`${mt}|${gt}`),yt="$lit$";class wt{constructor(t,e){this.parts=[],this.element=e;const n=[],s=[],i=document.createTreeWalker(e.content,133,null,!1);let o=0,r=-1,a=0;const{strings:c,values:{length:l}}=t;for(;a<l;){const t=i.nextNode();if(null!==t){if(r++,1===t.nodeType){if(t.hasAttributes()){const e=t.attributes,{length:n}=e;let s=0;for(let t=0;t<n;t++)bt(e[t].name,yt)&&s++;for(;s-- >0;){const e=c[a],n=xt.exec(e)[2],s=n.toLowerCase()+yt,i=t.getAttribute(s);t.removeAttribute(s);const o=i.split(vt);this.parts.push({type:"attribute",index:r,name:n,strings:o}),a+=o.length-1}}"TEMPLATE"===t.tagName&&(s.push(t),i.currentNode=t.content)}else if(3===t.nodeType){const e=t.data;if(e.indexOf(mt)>=0){const s=t.parentNode,i=e.split(vt),o=i.length-1;for(let e=0;e<o;e++){let n,o=i[e];if(""===o)n=Et();else{const t=xt.exec(o);null!==t&&bt(t[2],yt)&&(o=o.slice(0,t.index)+t[1]+t[2].slice(0,-yt.length)+t[3]),n=document.createTextNode(o)}s.insertBefore(n,t),this.parts.push({type:"node",index:++r})}""===i[o]?(s.insertBefore(Et(),t),n.push(t)):t.data=i[o],a+=o}}else if(8===t.nodeType)if(t.data===mt){const e=t.parentNode;null!==t.previousSibling&&r!==o||(r++,e.insertBefore(Et(),t)),o=r,this.parts.push({type:"node",index:r}),null===t.nextSibling?t.data="":(n.push(t),r--),a++}else{let e=-1;for(;-1!==(e=t.data.indexOf(mt,e+1));)this.parts.push({type:"node",index:-1}),a++}}else i.currentNode=s.pop()}for(const t of n)t.parentNode.removeChild(t)}}const bt=(t,e)=>{const n=t.length-e.length;return n>=0&&t.slice(n)===e},St=t=>-1!==t.index,Et=()=>document.createComment(""),xt=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;class Pt{constructor(t,e,n){this.__parts=[],this.template=t,this.processor=e,this.options=n}update(t){let e=0;for(const n of this.__parts)void 0!==n&&n.setValue(t[e]),e++;for(const t of this.__parts)void 0!==t&&t.commit()}_clone(){const t=ht?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),e=[],n=this.template.parts,s=document.createTreeWalker(t,133,null,!1);let i,o=0,r=0,a=s.nextNode();for(;o<n.length;)if(i=n[o],St(i)){for(;r<i.index;)r++,"TEMPLATE"===a.nodeName&&(e.push(a),s.currentNode=a.content),null===(a=s.nextNode())&&(s.currentNode=e.pop(),a=s.nextNode());if("node"===i.type){const t=this.processor.handleTextExpression(this.options);t.insertAfterNode(a.previousSibling),this.__parts.push(t)}else this.__parts.push(...this.processor.handleAttributeExpressions(a,i.name,i.strings,this.options));o++}else this.__parts.push(void 0),o++;return ht&&(document.adoptNode(t),customElements.upgrade(t)),t}}const _t=window.trustedTypes&&trustedTypes.createPolicy("lit-html",{createHTML:t=>t}),kt=` ${mt} `;class Tt{constructor(t,e,n,s){this.strings=t,this.values=e,this.type=n,this.processor=s}getHTML(){const t=this.strings.length-1;let e="",n=!1;for(let s=0;s<t;s++){const t=this.strings[s],i=t.lastIndexOf("\x3c!--");n=(i>-1||n)&&-1===t.indexOf("--\x3e",i+1);const o=xt.exec(t);e+=null===o?t+(n?kt:gt):t.substr(0,o.index)+o[1]+o[2]+yt+o[3]+mt}return e+=this.strings[t],e}getTemplateElement(){const t=document.createElement("template");let e=this.getHTML();return void 0!==_t&&(e=_t.createHTML(e)),t.innerHTML=e,t}}class Ct extends Tt{getHTML(){return`<svg>${super.getHTML()}</svg>`}getTemplateElement(){const t=super.getTemplateElement(),e=t.content,n=e.firstChild;return e.removeChild(n),ut(e,n.firstChild),t}}const Ot=t=>null===t||!("object"==typeof t||"function"==typeof t),$t=t=>Array.isArray(t)||!(!t||!t[Symbol.iterator]);class Mt{constructor(t,e,n){this.dirty=!0,this.element=t,this.name=e,this.strings=n,this.parts=[];for(let t=0;t<n.length-1;t++)this.parts[t]=this._createPart()}_createPart(){return new Nt(this)}_getValue(){const t=this.strings,e=t.length-1,n=this.parts;if(1===e&&""===t[0]&&""===t[1]){const t=n[0].value;if("symbol"==typeof t)return String(t);if("string"==typeof t||!$t(t))return t}let s="";for(let i=0;i<e;i++){s+=t[i];const e=n[i];if(void 0!==e){const t=e.value;if(Ot(t)||!$t(t))s+="string"==typeof t?t:String(t);else for(const e of t)s+="string"==typeof e?e:String(e)}}return s+=t[e],s}commit(){this.dirty&&(this.dirty=!1,this.element.setAttribute(this.name,this._getValue()))}}class Nt{constructor(t){this.value=void 0,this.committer=t}setValue(t){t===pt||Ot(t)&&t===this.value||(this.value=t,lt(t)||(this.committer.dirty=!0))}commit(){for(;lt(this.value);){const t=this.value;this.value=pt,t(this)}this.value!==pt&&this.committer.commit()}}class Lt{constructor(t){this.value=void 0,this.__pendingValue=void 0,this.options=t}appendInto(t){this.startNode=t.appendChild(Et()),this.endNode=t.appendChild(Et())}insertAfterNode(t){this.startNode=t,this.endNode=t.nextSibling}appendIntoPart(t){t.__insert(this.startNode=Et()),t.__insert(this.endNode=Et())}insertAfterPart(t){t.__insert(this.startNode=Et()),this.endNode=t.endNode,t.endNode=this.startNode}setValue(t){this.__pendingValue=t}commit(){if(null===this.startNode.parentNode)return;for(;lt(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=pt,t(this)}const t=this.__pendingValue;t!==pt&&(Ot(t)?t!==this.value&&this.__commitText(t):t instanceof Tt?this.__commitTemplateResult(t):t instanceof Node?this.__commitNode(t):$t(t)?this.__commitIterable(t):t===ft?(this.value=ft,this.clear()):this.__commitText(t))}__insert(t){this.endNode.parentNode.insertBefore(t,this.endNode)}__commitNode(t){this.value!==t&&(this.clear(),this.__insert(t),this.value=t)}__commitText(t){const e=this.startNode.nextSibling,n="string"==typeof(t=null==t?"":t)?t:String(t);e===this.endNode.previousSibling&&3===e.nodeType?e.data=n:this.__commitNode(document.createTextNode(n)),this.value=t}__commitTemplateResult(t){const e=this.options.templateFactory(t);if(this.value instanceof Pt&&this.value.template===e)this.value.update(t.values);else{const n=new Pt(e,t.processor,this.options),s=n._clone();n.update(t.values),this.__commitNode(s),this.value=n}}__commitIterable(t){Array.isArray(this.value)||(this.value=[],this.clear());const e=this.value;let n,s=0;for(const i of t)n=e[s],void 0===n&&(n=new Lt(this.options),e.push(n),0===s?n.appendIntoPart(this):n.insertAfterPart(e[s-1])),n.setValue(i),n.commit(),s++;s<e.length&&(e.length=s,this.clear(n&&n.endNode))}clear(t=this.startNode){dt(this.startNode.parentNode,t.nextSibling,this.endNode)}}class jt{constructor(t,e,n){if(this.value=void 0,this.__pendingValue=void 0,2!==n.length||""!==n[0]||""!==n[1])throw new Error("Boolean attributes can only contain a single expression");this.element=t,this.name=e,this.strings=n}setValue(t){this.__pendingValue=t}commit(){for(;lt(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=pt,t(this)}if(this.__pendingValue===pt)return;const t=!!this.__pendingValue;this.value!==t&&(t?this.element.setAttribute(this.name,""):this.element.removeAttribute(this.name),this.value=t),this.__pendingValue=pt}}class At extends Mt{constructor(t,e,n){super(t,e,n),this.single=2===n.length&&""===n[0]&&""===n[1]}_createPart(){return new Rt(this)}_getValue(){return this.single?this.parts[0].value:super._getValue()}commit(){this.dirty&&(this.dirty=!1,this.element[this.name]=this._getValue())}}class Rt extends Nt{}let Ht=!1;(()=>{try{const t={get capture(){return Ht=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}})();class Wt{constructor(t,e,n){this.value=void 0,this.__pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=n,this.__boundHandleEvent=t=>this.handleEvent(t)}setValue(t){this.__pendingValue=t}commit(){for(;lt(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=pt,t(this)}if(this.__pendingValue===pt)return;const t=this.__pendingValue,e=this.value,n=null==t||null!=e&&(t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive),s=null!=t&&(null==e||n);n&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),s&&(this.__options=Vt(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=pt}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const Vt=t=>t&&(Ht?{capture:t.capture,passive:t.passive,once:t.once}:t.capture),Dt=new class{handleAttributeExpressions(t,e,n,s){const i=e[0];return"."===i?new At(t,e.slice(1),n).parts:"@"===i?[new Wt(t,e.slice(1),s.eventContext)]:"?"===i?[new jt(t,e.slice(1),n)]:new Mt(t,e,n).parts}handleTextExpression(t){return new Lt(t)}};function It(t){let e=qt.get(t.type);void 0===e&&(e={stringsArray:new WeakMap,keyString:new Map},qt.set(t.type,e));let n=e.stringsArray.get(t.strings);if(void 0!==n)return n;const s=t.strings.join(mt);return n=e.keyString.get(s),void 0===n&&(n=new wt(t,t.getTemplateElement()),e.keyString.set(s,n)),e.stringsArray.set(t.strings,n),n}const qt=new Map,Ut=new WeakMap,Gt=(t,e,n)=>{let s=Ut.get(e);void 0===s&&(dt(e,e.firstChild),Ut.set(e,s=new Lt(Object.assign({templateFactory:It},n))),s.appendInto(e)),s.setValue(t),s.commit()};"undefined"!=typeof window&&(window.litHtmlVersions||(window.litHtmlVersions=[])).push("1.4.1");const Bt=(t,...e)=>new Tt(t,e,"html",Dt),Ft=(t,...e)=>new Ct(t,e,"svg",Dt),zt=(t,e)=>{const n=t.startNode.parentNode,s=void 0===e?t.endNode:e.startNode,i=n.insertBefore(Et(),s);n.insertBefore(Et(),s);const o=new Lt(t.options);return o.insertAfterNode(i),o},Kt=(t,e)=>(t.setValue(e),t.commit(),t),Jt=(t,e,n)=>{const s=t.startNode.parentNode,i=n?n.startNode:t.endNode,o=e.endNode.nextSibling;o!==i&&ut(s,e.startNode,o,i)},Qt=t=>{dt(t.startNode.parentNode,t.startNode,t.endNode.nextSibling)},Zt=(t,e,n)=>{const s=new Map;for(let i=e;i<=n;i++)s.set(t[i],i);return s},Xt=new WeakMap,Yt=new WeakMap,te=ct(((t,e,n)=>{let s;return void 0===n?n=e:void 0!==e&&(s=e),e=>{if(!(e instanceof Lt))throw new Error("repeat can only be used in text bindings");const i=Xt.get(e)||[],o=Yt.get(e)||[],r=[],a=[],c=[];let l,h,u=0;for(const e of t)c[u]=s?s(e,u):u,a[u]=n(e,u),u++;let d=0,p=i.length-1,f=0,m=a.length-1;for(;d<=p&&f<=m;)if(null===i[d])d++;else if(null===i[p])p--;else if(o[d]===c[f])r[f]=Kt(i[d],a[f]),d++,f++;else if(o[p]===c[m])r[m]=Kt(i[p],a[m]),p--,m--;else if(o[d]===c[m])r[m]=Kt(i[d],a[m]),Jt(e,i[d],r[m+1]),d++,m--;else if(o[p]===c[f])r[f]=Kt(i[p],a[f]),Jt(e,i[p],i[d]),p--,f++;else if(void 0===l&&(l=Zt(c,f,m),h=Zt(o,d,p)),l.has(o[d]))if(l.has(o[p])){const t=h.get(c[f]),n=void 0!==t?i[t]:null;if(null===n){const t=zt(e,i[d]);Kt(t,a[f]),r[f]=t}else r[f]=Kt(n,a[f]),Jt(e,n,i[d]),i[t]=null;f++}else Qt(i[p]),p--;else Qt(i[d]),d++;for(;f<=m;){const t=zt(e,r[m+1]);Kt(t,a[f]),r[f++]=t}for(;d<=p;){const t=i[d++];null!==t&&Qt(t)}Xt.set(e,r),Yt.set(e,c)}})),ee=new WeakMap,ne=ct(((t,e)=>n=>{const s=ee.get(n);if(Array.isArray(t)){if(Array.isArray(s)&&s.length===t.length&&t.every(((t,e)=>t===s[e])))return}else if(s===t&&(void 0!==t||ee.has(n)))return;n.setValue(e()),ee.set(n,Array.isArray(t)?Array.from(t):t)})),se=new WeakMap,ie=ct((t=>e=>{const n=se.get(e);if(void 0===t&&e instanceof Nt){if(void 0!==n||!se.has(e)){const t=e.committer.name;e.committer.element.removeAttribute(t)}}else t!==n&&e.setValue(t);se.set(e,t)}));var oe,re,ae,ce,le,he,ue,de,pe,fe,me,ge,ve,ye,we,be,Se,Ee=function(t,e,n,s){if("a"===n&&!s)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!s:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?s:"a"===n?s.call(t):s?s.value:e.get(t)},xe=function(t,e,n,s,i){if("m"===s)throw new TypeError("Private method is not writable");if("a"===s&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===s?i.call(t,n):i?i.value=n:e.set(t,n),n};function Pe(){}function _e(t){"function"==typeof t&&t()}const ke=new y,Te=(t=performance.now())=>{if(performance.now()>t+16)return requestAnimationFrame(Te);const e=ke.get();e&&(e(),Te(t))};ke.addEventListener("start",(()=>p(Te)));const Ce=Symbol("init"),Oe=Symbol("update");class $e extends HTMLElement{constructor({isAsync:t,isLight:e,delegatesFocus:n}={}){super(),oe.set(this,void 0),re.set(this,void 0),ae.set(this,void 0),ce.set(this,void 0),le.set(this,void 0),he.set(this,void 0),ue.set(this,void 0),this.setState=t=>{if(!this.state)throw new N("`state` not initialized");Object.assign(this.state,t),p(Ee(this,we,"f"))},de.set(this,(t=>{null==t||t.forEach((t=>{const{callback:e,getDep:n,values:s,preCallback:i}=t,o=null==n?void 0:n();n&&s&&!L(s,o)||(_e(i),t.preCallback=e(o,s),t.values=o)}))})),pe.set(this,(()=>{Ee(this,de,"f").call(this,Ee(this,le,"f"))})),fe.set(this,(()=>{Ee(this,de,"f").call(this,Ee(this,he,"f"))})),this.effect=(t,e)=>{Ee(this,le,"f")||xe(this,le,[],"f");const n={callback:t,getDep:e,values:void 0,initialized:!!this.isConnected};this.isConnected&&(n.values=null==e?void 0:e(),n.preCallback=t(n.values)),Ee(this,le,"f").push(n)},this.memo=(t,e)=>{Ee(this,he,"f")||xe(this,he,[],"f"),Ee(this,he,"f").push({callback:t,getDep:e,values:[Symbol()],initialized:this.isConnected})},me.set(this,(()=>{var t;null===(t=Ee(this,le,"f"))||void 0===t||t.forEach((t=>{const{callback:e,getDep:n,initialized:s}=t;s||(t.values=null==n?void 0:n(),t.preCallback=e(t.values),t.initialized=!0)}))})),ge.set(this,(()=>(Ee(this,fe,"f").call(this),this.render?this.render():Ee(this,oe,"f")===this?void 0:Bt`<slot></slot>`))),ve.set(this,(()=>!this.shouldUpdate||this.shouldUpdate())),ye.set(this,(()=>{if(this.isConnected&&Ee(this,ve,"f").call(this)){const t=Ee(this,ge,"f").call(this);void 0!==t&&Gt(t,Ee(this,oe,"f")),p(Ee(this,be,"f")),p(Ee(this,pe,"f"))}})),we.set(this,(()=>{Ee(this,ce,"f")?ke.add(Ee(this,ye,"f")):Ee(this,ye,"f").call(this)})),this.update=()=>{p(Ee(this,we,"f"))},be.set(this,(()=>{var t;null===(t=this.updated)||void 0===t||t.call(this)})),Se.set(this,(()=>{var t,e,n;if(Ee(this,ae,"f"))return void xe(this,ae,!1,"f");null===(t=this.willMount)||void 0===t||t.call(this);const{observedStores:s,rootElement:i}=this.constructor;null==s||s.forEach((t=>{q(t,Ee(this,we,"f"))}));const o=Ee(this,ge,"f").call(this);if(void 0!==o&&Gt(o,Ee(this,oe,"f")),xe(this,ue,null===(e=this.mounted)||void 0===e?void 0:e.call(this),"f"),Ee(this,me,"f").call(this),i&&(null===(n=this.getRootNode().host)||void 0===n?void 0:n.tagName)!==i.toUpperCase())throw new N("not allow current root type")})),p((()=>this[Ce]=!1)),this[Ce]=!0,this[Oe]=()=>{this.isConnected&&p(Ee(this,we,"f"))},xe(this,ce,t,"f"),xe(this,oe,e?this:this.attachShadow({mode:"open",delegatesFocus:n}),"f");const{adoptedStyleSheets:s}=new.target;if(s){const t=s.map((t=>t[x]||t));this.shadowRoot?this.shadowRoot.adoptedStyleSheets=t:this.effect((()=>{const e=this.getRootNode();return e.adoptedStyleSheets=[...e.adoptedStyleSheets,...t],()=>{e.adoptedStyleSheets=j(e.adoptedStyleSheets,t)}}),(()=>[]))}}get internals(){if(!Ee(this,re,"f")){const t=()=>{const{classList:t}=this;return{has:e=>t.contains(e),add:e=>t.add(e),delete:e=>t.remove(e)}};this.attachInternals||(this.attachInternals=()=>({states:t()})),xe(this,re,this.attachInternals(),"f"),Ee(this,re,"f").states||(Ee(this,re,"f").states=t())}return Ee(this,re,"f")}attributeChangedCallback(){this.isConnected&&p(Ee(this,we,"f"))}closestElement(t){const e="function"==typeof t,n="string"==typeof t&&t.toUpperCase(),s=i=>{const o=i.parentElement||i.getRootNode().host;if(!o)return null;if(e){if(o.constructor===t)return o}else if(o.tagName===n)return o;return s(o)};return s(this)}connectedCallback(){Ee(this,ce,"f")?ke.add(Ee(this,Se,"f")):Ee(this,Se,"f").call(this)}disconnectedCallback(){var t,e,n;if(this.isConnected)return void xe(this,ae,!0,"f");const{observedStores:s}=this.constructor;null==s||s.forEach((t=>{U(t,Ee(this,we,"f"))})),_e(Ee(this,ue,"f")),null===(t=this.unmounted)||void 0===t||t.call(this),null===(e=Ee(this,le,"f"))||void 0===e||e.forEach((t=>{_e(t.preCallback)})),xe(this,he,null===(n=Ee(this,he,"f"))||void 0===n?void 0:n.filter((({initialized:t})=>!t)),"f")}}oe=new WeakMap,re=new WeakMap,ae=new WeakMap,ce=new WeakMap,le=new WeakMap,he=new WeakMap,ue=new WeakMap,de=new WeakMap,pe=new WeakMap,fe=new WeakMap,me=new WeakMap,ge=new WeakMap,ve=new WeakMap,ye=new WeakMap,we=new WeakMap,be=new WeakMap,Se=new WeakMap;const Me=new w;function Ne(t,e,n){const{booleanAttributes:s,numberAttributes:i}=t.constructor;Object.defineProperty(t,e,{configurable:!0,get(){if(!(Ce in this))return;const t=this.getAttribute(n);return(null==s?void 0:s.has(n))?null!==t:(null==i?void 0:i.has(n))?Number(t):t||""},set(t){const i=this,o=Me.get(this),r=o[e],a=i.getAttribute(n);if(this[Ce]&&null!==a&&!r)return;o[e]=!0;const c=null==s?void 0:s.has(n);null==t?i.removeAttribute(n):c?i.toggleAttribute(n,!!t):a!==String(t)&&i.setAttribute(n,String(t))}})}const Le=Symbol("event handle");function je(t,e,n,s){Object.defineProperty(t,e,{configurable:!0,get(){const t=Me.get(this)[e];return t||!n?t:(this[e]=Pe,this[e])},set(t){const i=this,o=Me.get(i);t!==o[e]&&(n?(o[e]=(null==t?void 0:t[Le])?t:(e,o)=>{const r=new CustomEvent(n,Object.assign(Object.assign(Object.assign({},o),s),{detail:e}));i.dispatchEvent(r),t(e,o)},o[e][Le]=!0):(o[e]=t,this[Oe]()))}})}function Ae(t,e,n){Object.defineProperty(t,e,{configurable:!0,get(){const t=Me.get(this);let s=t[e];if(!s){const i=this,o=i.shadowRoot||i;s={get ref(){return n},get element(){const t=[...o.querySelectorAll("gem-reflect")].map((t=>t.target));for(const e of[o,...t]){const t=e.querySelector(`[ref=${n}]`);if(t)return t}}},t[e]=s}return s}})}function Re(t,e,n){Object.defineProperty(t,e,{configurable:!0,get(){var t;const{states:e}=this.internals;return null===(t=e.has)||void 0===t?void 0:t.call(e,n)},set(t){const{states:e}=this.internals;t?e.add(n):e.delete(n)}})}const He=customElements.define.bind(customElements);function We(t,e,n,s=!1){const i=t.constructor,o=i[e];i.hasOwnProperty(e)||Object.defineProperty(i,e,{value:s?new Set(o):o?Array.from(o):[]}),i[e][s?"add":"push"](n)}function Ve(t,e){const n=`${O(e)}-${_()}`;We(t,"defineRefs",n),Ae(t,e,n)}function De(t,e,n){We(t,"observedAttributes",n),Ne(t,e,n)}function Ie(t,e){De(t,e,O(e))}function qe(t,e){const n=O(e);We(t,"booleanAttributes",n,!0),De(t,e,n)}function Ue(t,e){const n=O(e);We(t,"numberAttributes",n,!0),De(t,e,n)}function Ge(t,e){We(t,"observedPropertys",e),je(t,e)}function Be(t,e){const n=O(e);We(t,"defineCSSStates",n),Re(t,e,`--${n}`)}function Fe(t,e){const n=O(t[e]||e);t[e]=n,We(t instanceof $e?t:t.prototype,"defineSlots",n)}function ze(t,e){const n=O(t[e]||e);t[e]=n,We(t instanceof $e?t:t.prototype,"defineParts",n)}function Ke(t,e){Qe(t,e)}function Je(t,e){Qe(t,e,{bubbles:!0,composed:!0})}function Qe(t,e,n){const s=O(e);We(t,"defineEvents",s),je(t,e,s,n)}function Ze(t){return function(e){We(e.prototype,"adoptedStyleSheets",t)}}function Xe(t){return function(e){We(e.prototype,"observedStores",t)}}function Ye(t){return function(e){e.rootElement=t}}function tn(t){return function(e){He(t,e)}}customElements.define=(t,e,n)=>{if(e.prototype instanceof $e){const{observedAttributes:t,observedPropertys:n,defineEvents:s,defineCSSStates:i,defineRefs:o}=e;null==t||t.forEach((t=>Ne(e.prototype,$(t),t))),null==n||n.forEach((t=>je(e.prototype,t))),null==s||s.forEach((t=>je(e.prototype,$(t),t))),null==i||i.forEach((t=>Re(e.prototype,$(t),`--${t}`))),null==o||o.forEach((t=>Ae(e.prototype,$(t),t)))}He(t,e,n)};const en="1.5.6";window.__GEM_DEVTOOLS__HOOK__&&Object.assign(window.__GEM_DEVTOOLS__HOOK__,Object.assign({},n));var nn,sn,on,rn,an=function(t,e,n,s){var i,o=arguments.length,r=o<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,s);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(r=(o<3?i(r):o>3?i(e,n,r):i(e,n))||r);return o>3&&r&&Object.defineProperty(e,n,r),r},cn=function(t,e,n,s,i){if("m"===s)throw new TypeError("Private method is not writable");if("a"===s&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===s?i.call(t,n):i?i.value=n:e.set(t,n),n},ln=function(t,e,n,s){if("a"===n&&!s)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!s:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?s:"a"===n?s.call(t):s?s.value:e.get(t)};class hn extends RegExp{constructor(t){const e={};let n=0;super(`^${t.replace(/:([^/$]+)/g,((t,s)=>(e[s]=n++,"([^/]+)"))).replace("*",".*")}$`,"i"),this.namePosition=e}}function un(t,e){const n=new hn(t),s=e.match(n)||`${e}/`.match(n);if(!s)return null;const i={};return s&&Object.keys(n.namePosition).forEach((t=>{i[t]=s[n.namePosition[t]+1]})),i}function dn(t,e){let n=t.pattern;const s=null==e?void 0:e.params;return s&&Object.keys(s).forEach((t=>{n=n.replace(new RegExp(`:${t}`,"g"),s[t])})),n}function pn(t,e){const n=dn(t,e);return Object.assign({path:n},e)}let fn=rn=class extends $e{constructor({isLight:t,routes:e}={}){super({isLight:t}),this.currentParams={},nn.set(this,void 0),this.state={content:void 0},sn.set(this,(()=>{if(this.locationStore){const{path:t,query:e,data:n}=G.getParams();I(this.locationStore,{path:t,params:this.currentParams,query:e,data:n})}})),on.set(this,((t,e,n)=>{cn(this,nn,void 0,"f"),this.currentRoute=t,this.currentParams=e,this.setState({content:n}),this.routeChange(this.currentRoute);const s=null==t?void 0:t.title;s&&I(ot,{title:s}),ln(this,sn,"f").call(this)})),this.routes=e}mounted(){this.effect((([t,e],n)=>{if(n&&t===n[0]&&e===n[1])return void ln(this,sn,"f").call(this);const{route:s,params:i={}}=rn.findRoute(this.routes,e),{redirect:o,content:r,getContent:a}=s||{};if(o)return void G.replace({path:o});const c=r||(null==a?void 0:a(i));if(c instanceof Promise){this.loading(s),cn(this,nn,c,"f");const t=()=>ln(this,nn,"f")===c;c.then((e=>{t()&&ln(this,on,"f").call(this,s,i,e)})).catch((e=>{t()&&this.error(e)}))}else ln(this,on,"f").call(this,s,i,c)}),(()=>{const{path:t}=G.getParams();return[this.key,t,location.search]}))}shouldUpdate(){return!this.inert}render(){const{content:t}=this.state;return this.shadowRoot?Bt`
3
3
  <style>
4
4
  :host,
5
5
  :not(:defined) {
6
6
  display: contents;
7
7
  }
8
8
  </style>
9
- ${t}
10
- `:Vt`${t}`}};Ze=new WeakMap,Xe=new WeakMap,Ye=new WeakMap,ln.createLocationStore=()=>{const{path:t,query:e,data:n}=I.getParams();return j({path:t,query:e,data:n,params:{}})},ln.findRoute=(t=[],e)=>{let n,s=null;n=t instanceof Array?t:Object.values(t);for(const t of n)if("*"===t.pattern)s=t;else{const n=rn(t.pattern,e);if(n)return{route:t,params:n}}return{route:s}},en([Ie],ln.prototype,"routes",void 0),en([Ie],ln.prototype,"locationStore",void 0),en([Ie],ln.prototype,"key",void 0),en([Ue],ln.prototype,"change",void 0),en([Ue],ln.prototype,"loading",void 0),en([Ue],ln.prototype,"error",void 0),ln=tn=en([Ke(I.store),Je("gem-route")],ln);let hn=class extends ln{constructor(t={}){super(Object.assign(Object.assign({},t),{isLight:!0}))}};hn=en([Je("gem-light-route")],hn);var un=function(t,e,n,s){var i,o=arguments.length,r=o<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,s);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(r=(o<3?i(r):o>3?i(e,n,r):i(e,n))||r);return o>3&&r&&Object.defineProperty(e,n,r),r};let dn=class extends Pe{constructor(){super(),this.clickHandle=t=>{return e=this,n=void 0,i=function*(){var e;const n=this.getPathInfo();if(!n)return;if(this.isExternal(n))switch(this.target){case"_self":return void(window.location.href=n);case"_parent":return void(window.parent.location.href=n);case"_top":return void(window.top.location.href=n);default:return void window.open(n)}const{path:s,query:i,hash:o}=I.getParams();if(s+i+o!==n)if(t.stopPropagation(),yield null===(e=this.prepare)||void 0===e?void 0:e.call(this),this.route)I.pushIgnoreCloseHandle(Object.assign(Object.assign({},cn(this.route,this.options)),{title:this.route.title||this.docTitle}));else if(this.href){const{pathname:t,search:e,hash:s}=new URL(n,location.origin);I.pushIgnoreCloseHandle({path:t,query:e,hash:decodeURIComponent(s),title:this.docTitle})}else I.pushIgnoreCloseHandle({path:this.path,query:this.query,hash:this.hash,title:this.docTitle})},new((s=void 0)||(s=Promise))((function(t,o){function r(t){try{c(i.next(t))}catch(t){o(t)}}function a(t){try{c(i.throw(t))}catch(t){o(t)}}function c(e){var n;e.done?t(e.value):(n=e.value,n instanceof s?n:new s((function(t){t(n)}))).then(r,a)}c((i=i.apply(e,n||[])).next())}));var e,n,s,i},this.preventDefault=t=>{t.preventDefault()},this.addEventListener("click",this.clickHandle)}getPathInfo(){var t,e;if(this.route){const n=(null===(t=this.options)||void 0===t?void 0:t.query)||"",s=(null===(e=this.options)||void 0===e?void 0:e.hash)||"";return an(this.route,this.options)+n+s}{const t=this.href||this.path+this.query+this.hash,{path:e,query:n}=I.getParams();return t.startsWith("#")?`${e}${n}${t}`:t.startsWith("?")?`${e}${t}`:t.startsWith(".")?u(e,t):t}}isExternal(t){return!t.startsWith("/")}render(t=this.getPathInfo()){return Vt`
9
+ ${null!=t?t:Bt`<slot></slot>`}
10
+ `:Bt`${t}`}};nn=new WeakMap,sn=new WeakMap,on=new WeakMap,fn.createLocationStore=()=>{const{path:t,query:e,data:n}=G.getParams();return V({path:t,query:e,data:n,params:{}})},fn.findRoute=(t=[],e)=>{let n,s=null;n=t instanceof Array?t:Object.values(t);for(const t of n)if("*"===t.pattern)s=t;else{const n=un(t.pattern,e);if(n)return{route:t,params:n}}return{route:s}},an([Ge],fn.prototype,"routes",void 0),an([Ge],fn.prototype,"locationStore",void 0),an([Ge],fn.prototype,"key",void 0),an([Ke],fn.prototype,"routeChange",void 0),an([Ke],fn.prototype,"loading",void 0),an([Ke],fn.prototype,"error",void 0),fn=rn=an([Xe(G.store),tn("gem-route")],fn);let mn=class extends fn{constructor(t={}){super(Object.assign(Object.assign({},t),{isLight:!0}))}};mn=an([tn("gem-light-route")],mn);var gn=function(t,e,n,s){var i,o=arguments.length,r=o<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,s);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(r=(o<3?i(r):o>3?i(e,n,r):i(e,n))||r);return o>3&&r&&Object.defineProperty(e,n,r),r};let vn=class extends $e{constructor(){super(),this.clickHandle=t=>{return e=this,n=void 0,i=function*(){var e;const n=this.getPathInfo();if(!n)return;if(this.isExternal(n))switch(this.target){case"_self":return void(window.location.href=n);case"_parent":return void(window.parent.location.href=n);case"_top":return void(window.top.location.href=n);default:return void window.open(n)}const{path:s,query:i,hash:o}=G.getParams();if(s+i+o!==n)if(t.stopPropagation(),yield null===(e=this.prepare)||void 0===e?void 0:e.call(this),this.route)G.pushIgnoreCloseHandle(Object.assign(Object.assign({},pn(this.route,this.options)),{title:this.route.title||this.docTitle}));else if(this.href){const{pathname:t,search:e,hash:s}=new URL(n,location.origin);G.pushIgnoreCloseHandle({path:t,query:e,hash:decodeURIComponent(s),title:this.docTitle})}else G.pushIgnoreCloseHandle({path:this.path,query:this.query,hash:this.hash,title:this.docTitle})},new((s=void 0)||(s=Promise))((function(t,o){function r(t){try{c(i.next(t))}catch(t){o(t)}}function a(t){try{c(i.throw(t))}catch(t){o(t)}}function c(e){var n;e.done?t(e.value):(n=e.value,n instanceof s?n:new s((function(t){t(n)}))).then(r,a)}c((i=i.apply(e,n||[])).next())}));var e,n,s,i},this.preventDefault=t=>{t.preventDefault()},this.addEventListener("click",this.clickHandle)}getPathInfo(){var t,e;if(this.route){const n=(null===(t=this.options)||void 0===t?void 0:t.query)||"",s=(null===(e=this.options)||void 0===e?void 0:e.hash)||"";return dn(this.route,this.options)+n+s}{const t=this.href||this.path+this.query+this.hash,{path:e,query:n}=G.getParams();return t.startsWith("#")?`${e}${n}${t}`:t.startsWith("?")?`${e}${t}`:t.startsWith(".")?v(e,t):t}}isExternal(t){return!t.startsWith("/")}render(t=this.getPathInfo()){return Bt`
11
11
  <style>
12
12
  :host {
13
13
  /* link default style */
@@ -26,11 +26,11 @@
26
26
  <a
27
27
  part=${this.link}
28
28
  @click=${this.preventDefault}
29
- href=${Yt("off"===this.hint?void 0:this.isExternal(t)?t:new URL(I.basePath+t,location.origin).toString())}
29
+ href=${ie("off"===this.hint?void 0:this.isExternal(t)?t:new URL(G.basePath+t,location.origin).toString())}
30
30
  >
31
31
  <slot></slot>
32
32
  </a>
33
- `}};un([Re],dn.prototype,"href",void 0),un([Re],dn.prototype,"target",void 0),un([Re],dn.prototype,"path",void 0),un([Re],dn.prototype,"query",void 0),un([Re],dn.prototype,"hash",void 0),un([Re],dn.prototype,"docTitle",void 0),un([Re],dn.prototype,"hint",void 0),un([Ie],dn.prototype,"route",void 0),un([Ie],dn.prototype,"options",void 0),un([Ie],dn.prototype,"prepare",void 0),un([qe],dn.prototype,"link",void 0),dn=un([Je("gem-link"),Ke(Y)],dn);let pn=class extends dn{render(){const{path:t,query:e,hash:n}=I.getParams(),s=this.pattern&&rn(this.pattern,t),i=this.getPathInfo();return this.active=!(!s&&t+e+n!==i),super.render(i)}};un([Re],pn.prototype,"pattern",void 0),un([Ve],pn.prototype,"active",void 0),pn=un([Je("gem-active-link"),Ke(I.store)],pn);var fn,mn=function(t,e,n,s){var i,o=arguments.length,r=o<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,s);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(r=(o<3?i(r):o>3?i(e,n,r):i(e,n))||r);return o>3&&r&&Object.defineProperty(e,n,r),r};let gn=fn=class extends Pe{constructor(){super(),new MutationObserver((()=>this.update())).observe(this,{childList:!0,characterData:!0,subtree:!0})}static setTitle(t){R(tt,{title:t})}static updateTitle(t="",e=""){const{title:n}=tt;n&&n!==fn.defaultTitle?(fn.title=n,document.title=fn.title+e):t?(fn.title=t,document.title=fn.title+e):(fn.title=fn.defaultTitle,document.title=fn.title)}render(){return fn.updateTitle(this.textContent||"",this.suffix),this.hidden?Vt``:Vt`${fn.title}`}};gn.title=document.title,gn.defaultTitle=document.title,gn.defaultSuffix=` - ${document.title}`,mn([Re],gn.prototype,"suffix",void 0),gn=fn=mn([Ke(tt),Je("gem-title")],gn),H(tt,gn.updateTitle);var vn=function(t,e,n,s){var i,o=arguments.length,r=o<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,s);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(r=(o<3?i(r):o>3?i(e,n,r):i(e,n))||r);return o>3&&r&&Object.defineProperty(e,n,r),r};const yn=new Map;let wn=class extends Pe{getContent(){const t=this.element||(this.selector?(this.root||document).querySelector(this.selector):null);if("string"==typeof t){let e=yn.get(t);return e||(e=document.createElement("template"),e.innerHTML=t,yn.set(t,e)),e.content.cloneNode(!0)}return t instanceof HTMLTemplateElement?t.content.cloneNode(!0):null==t?void 0:t.cloneNode(!0)}render(){return Vt`
33
+ `}};gn([Ie],vn.prototype,"href",void 0),gn([Ie],vn.prototype,"target",void 0),gn([Ie],vn.prototype,"path",void 0),gn([Ie],vn.prototype,"query",void 0),gn([Ie],vn.prototype,"hash",void 0),gn([Ie],vn.prototype,"docTitle",void 0),gn([Ie],vn.prototype,"hint",void 0),gn([Ge],vn.prototype,"route",void 0),gn([Ge],vn.prototype,"options",void 0),gn([Ge],vn.prototype,"prepare",void 0),gn([ze],vn.prototype,"link",void 0),vn=gn([tn("gem-link"),Xe(it)],vn);let yn=class extends vn{render(){const{path:t,query:e,hash:n}=G.getParams(),s=this.pattern&&un(this.pattern,t),i=this.getPathInfo();return this.active=!(!s&&t+e+n!==i),super.render(i)}};gn([Ie],yn.prototype,"pattern",void 0),gn([Be],yn.prototype,"active",void 0),yn=gn([tn("gem-active-link"),Xe(G.store)],yn);var wn,bn=function(t,e,n,s){var i,o=arguments.length,r=o<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,s);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(r=(o<3?i(r):o>3?i(e,n,r):i(e,n))||r);return o>3&&r&&Object.defineProperty(e,n,r),r};let Sn=wn=class extends $e{constructor(){super(),new MutationObserver((()=>this.update())).observe(this,{childList:!0,characterData:!0,subtree:!0})}static setTitle(t){I(ot,{title:t})}static updateTitle(t="",e=""){const{title:n}=ot;n&&n!==wn.defaultTitle?(wn.title=n,document.title=wn.title+e):t?(wn.title=t,document.title=wn.title+e):(wn.title=wn.defaultTitle,document.title=wn.title)}render(){return wn.updateTitle(this.textContent||"",this.suffix),this.hidden?Bt``:Bt`${wn.title}`}};Sn.title=document.title,Sn.defaultTitle=document.title,Sn.defaultSuffix=` - ${document.title}`,bn([Ie],Sn.prototype,"suffix",void 0),Sn=wn=bn([Xe(ot),tn("gem-title")],Sn),q(ot,Sn.updateTitle);var En=function(t,e,n,s){var i,o=arguments.length,r=o<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,s);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(r=(o<3?i(r):o>3?i(e,n,r):i(e,n))||r);return o>3&&r&&Object.defineProperty(e,n,r),r};const xn=new Map;let Pn=class extends $e{getContent(){const t=this.element||(this.selector?(this.root||document).querySelector(this.selector):null);if("string"==typeof t){let e=xn.get(t);return e||(e=document.createElement("template"),e.innerHTML=t,xn.set(t,e)),e.content.cloneNode(!0)}return t instanceof HTMLTemplateElement?t.content.cloneNode(!0):null==t?void 0:t.cloneNode(!0)}render(){return Bt`
34
34
  <style>
35
35
  :host {
36
36
  position: relative;
@@ -46,5 +46,5 @@
46
46
  </style>
47
47
  ${this.getContent()}
48
48
  <slot></slot>
49
- `}};vn([Re],wn.prototype,"selector",void 0),vn([Ie],wn.prototype,"root",void 0),vn([Ie],wn.prototype,"element",void 0),wn=vn([Je("gem-use")],wn);var bn=function(t,e,n,s){var i,o=arguments.length,r=o<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,s);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(r=(o<3?i(r):o>3?i(e,n,r):i(e,n))||r);return o>3&&r&&Object.defineProperty(e,n,r),r};let Sn=class extends Pe{constructor(){super(),this.effect((()=>{this.shadowRoot&&(this.shadowRoot.innerHTML=`\n <style>\n :host {\n display: contents;\n }\n ${this.contentcss}\n </style>\n ${this.content}\n `)}),(()=>[this.content,this.contentcss]))}render(){}};bn([Re],Sn.prototype,"content",void 0),bn([Re],Sn.prototype,"contentcss",void 0),Sn=bn([Je("gem-unsafe")],Sn);var En=function(t,e,n,s){var i,o=arguments.length,r=o<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,s);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(r=(o<3?i(r):o>3?i(e,n,r):i(e,n))||r);return o>3&&r&&Object.defineProperty(e,n,r),r};document.querySelectorAll("[data-reflect]").forEach((t=>t.remove()));let xn=class extends Pe{constructor(){super({isLight:!0}),this.target=document.head,this.hidden=!0,this.effect((()=>{const t=[...this.childNodes];return t.forEach((t=>{t instanceof HTMLElement&&(t.dataset.reflect=""),this.target.append(t)})),()=>{t.forEach((t=>t.remove()))}}),(()=>[this.target]))}};En([Ie],xn.prototype,"target",void 0),xn=En([Je("gem-reflect")],xn);const _n=Symbol("open mark");function Pn(t){var e;return(e=class extends Pe{constructor(){super(),this.label="",this.internals.role="alertdialog",this.internals.ariaModal=!0}static get isOpen(){return this.store[_n]}static get observedStores(){return[I.store,this.store]}static open(t){const e=new this;this.instance=e,this.inertStore=[...document.body.children].filter((t=>!t.inert)),this.inertStore.forEach((t=>t.inert=!0)),document.body.append(e);const n=()=>R(this.store,Object.assign({[_n]:!0},t));setTimeout((()=>{n(),I.push({title:e.label,open:n,close:this.closeHandle.bind(this),shouldClose:this.shouldClose.bind(this)})}),100)}static close(){I.back()}static closeHandle(){var e;this.inertStore.forEach((t=>t.inert=!1)),null===(e=this.instance)||void 0===e||e.remove(),R(this.store,Object.assign({[_n]:!1},t))}static shouldClose(){return!0}}).inertStore=[],e.instance=null,e.store=j(Object.assign({[_n]:!1},t)),e}var kn,On,Tn,Cn=function(t,e,n,s){var i,o=arguments.length,r=o<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,s);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(r=(o<3?i(r):o>3?i(e,n,r):i(e,n))||r);return o>3&&r&&Object.defineProperty(e,n,r),r},$n=function(t,e,n,s){if("a"===n&&!s)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!s:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?s:"a"===n?s.call(t):s?s.value:e.get(t)},Mn=function(t,e,n,s,i){if("m"===s)throw new TypeError("Private method is not writable");if("a"===s&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===s?i.call(t,n):i?i.value=n:e.set(t,n),n};let Nn=class extends Pe{constructor(){super(),this.opened=!1,this.inert=!0,kn.set(this,void 0),On.set(this,void 0),Tn.set(this,[]),this.label="",this.closeHandle=()=>{var t;this.inert=!0,$n(this,Tn,"f").forEach((t=>t.inert=!1)),$n(this,kn,"f")?$n(this,kn,"f").before(this):$n(this,On,"f")&&(null===(t=$n(this,On,"f"))||void 0===t||t.appendChild(this)),this.dispatchEvent(new CustomEvent("close")),this.opened=!1},this.openHandle=()=>{this.hidden=!1,this.inert=!1,Mn(this,kn,this.nextSibling,"f"),Mn(this,On,this.parentElement||this.getRootNode(),"f"),Mn(this,Tn,[...document.body.children].filter((t=>!t.inert)),"f"),$n(this,Tn,"f").forEach((t=>t.inert=!0)),document.body.append(this),this.dispatchEvent(new CustomEvent("open")),this.opened=!0},this.open=()=>{this.opened||(this.openHandle(),I.push({title:this.label,open:this.openHandle,close:this.closeHandle,shouldClose:this.shouldClose}))},this.close=()=>{I.back()},this.forceClose=()=>{this.opened=!1,setTimeout(this.close,100)},this.internals.role="dialog",this.internals.ariaModal=!0}shouldClose(){return!0}};kn=new WeakMap,On=new WeakMap,Tn=new WeakMap,Cn([Ve],Nn.prototype,"opened",void 0),Cn([Re],Nn.prototype,"label",void 0),Nn=Cn([Ke(I.store)],Nn);const Ln=new WeakMap;function jn(t){return Ln.get(t)}const An=new WeakMap;function Rn(t){return An.get(t)}function Hn(t){const e=b(),n=document.createElement("style"),s=j(t),i={},o={};An.set(i,o),Ln.set(i,s),Object.keys(s).forEach((t=>{o[t]=`--${_(t)}-${e}`,i[t]=`var(${o[t]})`}));const r=()=>function(t,e){const n=Ln.get(e),s=An.get(e),i=Object.keys(n).reduce(((t,e)=>n[e]?t+`${s[e]}:${n[e]};`:t),"");t.textContent=`:root, :host {${i}}`}(n,i);return H(s,r),r(),(document.head||document.documentElement).append(n),i}function Wn(t,e){R(jn(t),e)}var In=function(t,e,n,s){return new(n||(n=Promise))((function(i,o){function r(t){try{c(s.next(t))}catch(t){o(t)}}function a(t){try{c(s.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(r,a)}c((s=s.apply(t,e||[])).next())}))};const Vn=/\$\d(?:<[^>]*>)?/,Dn=/\$(\d)(<([^>]*)>)?/g;class qn{constructor(t){if(this.cachePrefix="gem-i18n",!t.resources[t.fallbackLanguage])throw new O("i18n: fallbackLanguage invalid");this.store=j(this),Object.assign(this,t);let e=this.urlParamsLang||this.currentLanguage||this.cacheLang;const n=document.querySelector(`[type*=${this.cachePrefix}]`);if(n)try{const t=JSON.parse(n.textContent||"");e=t.currentLanguage,this.resources[t.currentLanguage]=t.currentLanguagePack}catch(t){}e?(this.lang=e,this.setLanguage(e)):this.resetLanguage()}get cacheCurrentKey(){return`${this.cachePrefix}:current`}get urlParamsLang(){const{hostname:t,pathname:e,search:n}=location,s=t.split(".");switch(this.urlParamsType){case"ccTLD":return s.pop();case"gTLD":return s.shift();case"path":return e.split("/")[1];default:const t=this.urlParamsName&&new URLSearchParams(n).get(this.urlParamsName)||"";return t in this.resources?t:""}}get cacheLang(){return this.cache&&localStorage.getItem(this.cacheCurrentKey)||""}set lang(t){var e;this.currentLanguage=t,document.documentElement.lang=t,null===(e=this.onChange)||void 0===e||e.call(this,t)}get(t,...e){const n=this.resources[this.currentLanguage],s=this.resources[this.fallbackLanguage],i=n[t]||s[t],o=(null==i?void 0:i.message)||i||`[${t}]`;if(!e.length)return o;const r=o.split(Vn),a=[];let c;for(;c=Dn.exec(o);){const t=c[3],n=e[Number(c[1])-1];a.push("string"==typeof n?n:n(t))}return Vt(r,...a)}detectLanguage(){const t=Object.keys(this.resources),e=navigator.languages.map((t=>t.replace(/-(.*)/,(t=>t.toUpperCase()))));for(const n of e){const e=t.find((t=>t===n||n.startsWith(`${t}-`)));if(e)return e}return this.fallbackLanguage}setLanguage(t){return In(this,void 0,void 0,(function*(){let e;const n=this.resources[t];if(!n)return console.warn(`i18n: not found \`${t}\``),this.resetLanguage();if("string"==typeof n){const t=`${this.cachePrefix}:`,s=`${t}${n}`,i=localStorage.getItem(s),o=()=>In(this,void 0,void 0,(function*(){const e=yield(yield fetch(n)).json();if(this.cache){for(let e=0;e<localStorage.length;e++){const n=localStorage.key(e);n.startsWith(t)&&localStorage.removeItem(n)}localStorage.setItem(s,JSON.stringify(e))}return e}));if(i)try{e=JSON.parse(i)}catch(t){e=yield o()}else e=yield o()}else e=n;return this.resources[t]=e,R(this.store,{}),t!==this.currentLanguage&&(this.lang=t),!0===this.cache&&this.setCache(),t}))}resetLanguage(){return this.lang=this.fallbackLanguage,this.cache&&localStorage.removeItem(this.cacheCurrentKey),this.setLanguage(this.detectLanguage())}setCache(){localStorage.setItem(this.cacheCurrentKey,this.currentLanguage)}toJSON(){return{currentLanguage:this.currentLanguage,currentLanguagePack:this.resources[this.currentLanguage]}}}const Un={credentials:"include",mode:"cors"};function Gn(t,e={}){return n=this,s=void 0,o=function*(){const n=yield fetch(t,Object.assign(Object.assign({},Un),e));if(0===n.status)throw new Error("Request fail");if(n.status>=500)throw new Error(n.statusText);if(n.status>=400)throw new Error((yield n.text())||n.statusText);return yield n.json()},new((i=void 0)||(i=Promise))((function(t,e){function r(t){try{c(o.next(t))}catch(t){e(t)}}function a(t){try{c(o.throw(t))}catch(t){e(t)}}function c(e){var n;e.done?t(e.value):(n=e.value,n instanceof i?n:new i((function(t){t(n)}))).then(r,a)}c((o=o.apply(n,s||[])).next())}));var n,s,i,o}const Bn=Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array));function Fn(t){return t instanceof FormData||t instanceof Blob||t instanceof Bn||t instanceof URLSearchParams||t instanceof ReadableStream||t instanceof ArrayBuffer?t:"object"==typeof t?JSON.stringify(t):t}function Kn(t,e){const{origin:n,pathname:s,search:i}=new URL(t,location.origin),o=new URLSearchParams(e).toString();return Gn(`${n}${s}${i?`${i}&`:o?"?":""}${o}`,{method:"GET"})}function zn(t){return Gn(t,{method:"DELETE"})}function Jn(t,e){return Gn(t,{method:"PUT",body:Fn(e)})}function Qn(t,e){return Gn(t,{method:"POST",body:Fn(e)})}const Zn={PRINT:"print",get isPrint(){return window.matchMedia(this.PRINT).matches},HOVER:"(hover: hover)",get isHover(){return window.matchMedia(this.HOVER).matches},PHONE:"(min-width: 319px) and (max-width: 480px)",get isPhone(){return window.matchMedia(this.PHONE).matches},LAPTOP:"(min-width: 1023px) and (max-width: 1280px) and (orientation: landscape)",get isLaptop(){return window.matchMedia(this.LAPTOP).matches},DESKTOP:"(min-width: 1279px) and (orientation: landscape)",get isDesktop(){return window.matchMedia(this.DESKTOP).matches},PHONE_LANDSCAPE:"(min-width: 479px) and (max-width: 767px) and (orientation: landscape)",get isPhoneLandscape(){return window.matchMedia(this.PHONE_LANDSCAPE).matches},TABLET:"(min-width: 768px) and (max-width: 1024px)",get isTablet(){return window.matchMedia(this.TABLET).matches},SMALL_PHONE:"(min-width: 319px) and (max-width: 480px) and (max-height: 640px)",get isSmallPhone(){return window.matchMedia(this.SMALL_PHONE).matches},WATCH:"(max-width: 319px)",get isWatch(){return window.matchMedia(this.WATCH).matches},SHORT:"(min-width: 479px) and (max-height: 320px)",get isShort(){return window.matchMedia(this.SHORT).matches},PWA:"(display-mode: standalone)",get isPWA(){return window.matchMedia(this.PWA).matches},MOTION_REDUCE:"(prefers-reduced-motion: reduce)",get isMotionReduce(){return window.matchMedia(this.MOTION_REDUCE).matches},DATA_REDUCE:"(prefers-reduced-data: reduce)",get isDataReduce(){return window.matchMedia(this.DATA_REDUCE).matches}};return e})()}));
49
+ `}};En([Ie],Pn.prototype,"selector",void 0),En([Ge],Pn.prototype,"root",void 0),En([Ge],Pn.prototype,"element",void 0),En([Be],Pn.prototype,"active",void 0),Pn=En([tn("gem-use")],Pn);var _n=function(t,e,n,s){var i,o=arguments.length,r=o<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,s);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(r=(o<3?i(r):o>3?i(e,n,r):i(e,n))||r);return o>3&&r&&Object.defineProperty(e,n,r),r};let kn=class extends $e{constructor(){super(),this.effect((()=>{this.shadowRoot&&(this.shadowRoot.innerHTML=`\n <style>\n :host {\n display: contents;\n }\n ${this.contentcss}\n </style>\n ${this.content}\n `)}),(()=>[this.content,this.contentcss]))}render(){}};_n([Ie],kn.prototype,"content",void 0),_n([Ie],kn.prototype,"contentcss",void 0),kn=_n([tn("gem-unsafe")],kn);var Tn=function(t,e,n,s){var i,o=arguments.length,r=o<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,s);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(r=(o<3?i(r):o>3?i(e,n,r):i(e,n))||r);return o>3&&r&&Object.defineProperty(e,n,r),r};document.querySelectorAll("[data-reflect]").forEach((t=>t.remove()));let Cn=class extends $e{constructor(){super({isLight:!0}),this.target=document.head,this.hidden=!0,this.effect((()=>{const t=[...this.childNodes];return t.forEach((t=>{t instanceof HTMLElement&&(t.dataset.reflect=""),this.target.append(t)})),()=>{t.forEach((t=>t.remove()))}}),(()=>[this.target]))}};Tn([Ge],Cn.prototype,"target",void 0),Cn=Tn([tn("gem-reflect")],Cn);const On=Symbol("open mark");function $n(t){var e;return(e=class extends $e{constructor(){super(),this.label="",this.internals.role="alertdialog",this.internals.ariaModal="true"}static get isOpen(){return this.store[On]}static get observedStores(){return[G.store,this.store]}static open(t){const e=new this;this.instance=e,this.inertStore=[...document.body.children].filter((t=>!t.inert)),this.inertStore.forEach((t=>t.inert=!0)),document.body.append(e);const n=()=>I(this.store,Object.assign({[On]:!0},t));setTimeout((()=>{n(),G.push({title:e.label,open:n,close:this.closeHandle.bind(this),shouldClose:this.shouldClose.bind(this)})}),100)}static close(){G.back()}static closeHandle(){var e;this.inertStore.forEach((t=>t.inert=!1)),null===(e=this.instance)||void 0===e||e.remove(),I(this.store,Object.assign({[On]:!1},t))}static shouldClose(){return!0}}).inertStore=[],e.instance=null,e.store=V(Object.assign({[On]:!1},t)),e}var Mn,Nn,Ln,jn=function(t,e,n,s){var i,o=arguments.length,r=o<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,n):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,n,s);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(r=(o<3?i(r):o>3?i(e,n,r):i(e,n))||r);return o>3&&r&&Object.defineProperty(e,n,r),r},An=function(t,e,n,s){if("a"===n&&!s)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!s:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?s:"a"===n?s.call(t):s?s.value:e.get(t)},Rn=function(t,e,n,s,i){if("m"===s)throw new TypeError("Private method is not writable");if("a"===s&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===s?i.call(t,n):i?i.value=n:e.set(t,n),n};let Hn=class extends $e{constructor(){super(),this.opened=!1,this.inert=!0,Mn.set(this,void 0),Nn.set(this,void 0),Ln.set(this,[]),this.label="",this.closeHandle=()=>{var t;this.inert=!0,An(this,Ln,"f").forEach((t=>t.inert=!1)),An(this,Mn,"f")?An(this,Mn,"f").before(this):An(this,Nn,"f")&&(null===(t=An(this,Nn,"f"))||void 0===t||t.appendChild(this)),this.dispatchEvent(new CustomEvent("close")),this.opened=!1},this.openHandle=()=>{this.hidden=!1,this.inert=!1,Rn(this,Mn,this.nextSibling,"f"),Rn(this,Nn,this.parentElement||this.getRootNode(),"f"),Rn(this,Ln,[...document.body.children].filter((t=>!t.inert)),"f"),An(this,Ln,"f").forEach((t=>t.inert=!0)),document.body.append(this),this.dispatchEvent(new CustomEvent("open")),this.opened=!0},this.open=()=>{this.opened||(this.openHandle(),G.push({title:this.label,open:this.openHandle,close:this.closeHandle,shouldClose:this.shouldClose}))},this.close=()=>{G.back()},this.forceClose=()=>{this.opened=!1,setTimeout(this.close,100)},this.internals.role="dialog",this.internals.ariaModal="true"}shouldClose(){return!0}};Mn=new WeakMap,Nn=new WeakMap,Ln=new WeakMap,jn([Be],Hn.prototype,"opened",void 0),jn([Ie],Hn.prototype,"label",void 0),Hn=jn([Xe(G.store)],Hn);const Wn=new WeakMap;function Vn(t){return Wn.get(t)}const Dn=new WeakMap;function In(t){return Dn.get(t)}function qn(t){const e=_(),n=document.createElement("style"),s=V(t),i={},o={};Dn.set(i,o),Wn.set(i,s),Object.keys(s).forEach((t=>{o[t]=`--${O(t)}-${e}`,i[t]=`var(${o[t]})`}));const r=()=>function(t,e){const n=Wn.get(e),s=Dn.get(e),i=Object.keys(n).reduce(((t,e)=>n[e]?t+`${s[e]}:${n[e]};`:t),"");t.textContent=`:root, :host {${i}}`}(n,i);return q(s,r),r(),(document.head||document.documentElement).append(n),i}function Un(t,e){I(Vn(t),e)}var Gn=function(t,e,n,s){return new(n||(n=Promise))((function(i,o){function r(t){try{c(s.next(t))}catch(t){o(t)}}function a(t){try{c(s.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(r,a)}c((s=s.apply(t,e||[])).next())}))};const Bn=/\$\d(?:<[^>]*>)?/,Fn=/\$(\d)(<([^>]*)>)?/g;class zn{constructor(t){if(this.cachePrefix="gem-i18n",!t.resources[t.fallbackLanguage])throw new N("i18n: fallbackLanguage invalid");this.store=V(this),Object.assign(this,t);let e=this.urlParamsLang||this.currentLanguage||this.cacheLang;const n=document.querySelector(`[type*=${this.cachePrefix}]`);if(n)try{const t=JSON.parse(n.textContent||"");e=t.currentLanguage,this.resources[t.currentLanguage]=t.currentLanguagePack}catch(t){}e?(this.lang=e,this.setLanguage(e)):this.resetLanguage()}get cacheCurrentKey(){return`${this.cachePrefix}:current`}get urlParamsLang(){const{hostname:t,pathname:e,search:n}=location,s=t.split(".");switch(this.urlParamsType){case"ccTLD":return s.pop();case"gTLD":return s.shift();case"path":return e.split("/")[1];default:const t=this.urlParamsName&&new URLSearchParams(n).get(this.urlParamsName)||"";return t in this.resources?t:""}}get cacheLang(){return this.cache&&localStorage.getItem(this.cacheCurrentKey)||""}set lang(t){var e;this.currentLanguage=t,document.documentElement.lang=t,null===(e=this.onChange)||void 0===e||e.call(this,t)}get(t,...e){const n=this.resources[this.currentLanguage],s=this.resources[this.fallbackLanguage],i=n[t]||s[t],o=(null==i?void 0:i.message)||i||`[${t}]`;if(!e.length)return o;const r=o.split(Bn),a=[];let c;for(;c=Fn.exec(o);){const t=c[3],n=e[Number(c[1])-1];a.push("string"==typeof n?n:n(t))}return Bt(r,...a)}detectLanguage(){const t=Object.keys(this.resources),e=navigator.languages.map((t=>t.replace(/-(.*)/,(t=>t.toUpperCase()))));for(const n of e){const e=t.find((t=>t===n||n.startsWith(`${t}-`)));if(e)return e}return this.fallbackLanguage}setLanguage(t){return Gn(this,void 0,void 0,(function*(){let e;const n=this.resources[t];if(!n)return console.warn(`i18n: not found \`${t}\``),this.resetLanguage();if("string"==typeof n){const t=`${this.cachePrefix}:`,s=`${t}${n}`,i=localStorage.getItem(s),o=()=>Gn(this,void 0,void 0,(function*(){const e=yield(yield fetch(n)).json();if(this.cache){for(let e=0;e<localStorage.length;e++){const n=localStorage.key(e);n.startsWith(t)&&localStorage.removeItem(n)}localStorage.setItem(s,JSON.stringify(e))}return e}));if(i)try{e=JSON.parse(i)}catch(t){e=yield o()}else e=yield o()}else e=n;return this.resources[t]=e,I(this.store,{}),t!==this.currentLanguage&&(this.lang=t),!0===this.cache&&this.setCache(),t}))}resetLanguage(){return this.lang=this.fallbackLanguage,this.cache&&localStorage.removeItem(this.cacheCurrentKey),this.setLanguage(this.detectLanguage())}setCache(){localStorage.setItem(this.cacheCurrentKey,this.currentLanguage)}toJSON(){return{currentLanguage:this.currentLanguage,currentLanguagePack:this.resources[this.currentLanguage]}}}const Kn={credentials:"include",mode:"cors"};function Jn(t,e={}){return n=this,s=void 0,o=function*(){const n=yield fetch(t,Object.assign(Object.assign({},Kn),e));if(0===n.status)throw new Error("Request fail");if(n.status>=500)throw new Error(n.statusText);if(n.status>=400)throw new Error((yield n.text())||n.statusText);return yield n.json()},new((i=void 0)||(i=Promise))((function(t,e){function r(t){try{c(o.next(t))}catch(t){e(t)}}function a(t){try{c(o.throw(t))}catch(t){e(t)}}function c(e){var n;e.done?t(e.value):(n=e.value,n instanceof i?n:new i((function(t){t(n)}))).then(r,a)}c((o=o.apply(n,s||[])).next())}));var n,s,i,o}const Qn=Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array));function Zn(t){return t instanceof FormData||t instanceof Blob||t instanceof Qn||t instanceof URLSearchParams||t instanceof ReadableStream||t instanceof ArrayBuffer?t:"object"==typeof t?JSON.stringify(t):t}function Xn(t,e){const{origin:n,pathname:s,search:i}=new URL(t,location.origin),o=new URLSearchParams(e).toString();return Jn(`${n}${s}${i?`${i}&`:o?"?":""}${o}`,{method:"GET"})}function Yn(t){return Jn(t,{method:"DELETE"})}function ts(t,e){return Jn(t,{method:"PUT",body:Zn(e)})}function es(t,e){return Jn(t,{method:"POST",body:Zn(e)})}const ns={PRINT:"print",get isPrint(){return window.matchMedia(this.PRINT).matches},HOVER:"(hover: hover)",get isHover(){return window.matchMedia(this.HOVER).matches},PHONE:"(min-width: 319px) and (max-width: 480px)",get isPhone(){return window.matchMedia(this.PHONE).matches},LAPTOP:"(min-width: 1023px) and (max-width: 1280px) and (orientation: landscape)",get isLaptop(){return window.matchMedia(this.LAPTOP).matches},DESKTOP:"(min-width: 1279px) and (orientation: landscape)",get isDesktop(){return window.matchMedia(this.DESKTOP).matches},PHONE_LANDSCAPE:"(min-width: 479px) and (max-width: 767px) and (orientation: landscape)",get isPhoneLandscape(){return window.matchMedia(this.PHONE_LANDSCAPE).matches},TABLET:"(min-width: 768px) and (max-width: 1024px)",get isTablet(){return window.matchMedia(this.TABLET).matches},SMALL_PHONE:"(min-width: 319px) and (max-width: 480px) and (max-height: 640px)",get isSmallPhone(){return window.matchMedia(this.SMALL_PHONE).matches},WATCH:"(max-width: 319px)",get isWatch(){return window.matchMedia(this.WATCH).matches},SHORT:"(min-width: 479px) and (max-height: 320px)",get isShort(){return window.matchMedia(this.SHORT).matches},PWA:"(display-mode: standalone)",get isPWA(){return window.matchMedia(this.PWA).matches},MOTION_REDUCE:"(prefers-reduced-motion: reduce)",get isMotionReduce(){return window.matchMedia(this.MOTION_REDUCE).matches},DATA_REDUCE:"(prefers-reduced-data: reduce)",get isDataReduce(){return window.matchMedia(this.DATA_REDUCE).matches}};return e})()}));
50
50
  //# sourceMappingURL=umd.js.map