godown 2.7.0 → 2.7.1

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.
Files changed (58) hide show
  1. package/lib/templates.d.ts +2 -0
  2. package/lib/templates.d.ts.map +1 -1
  3. package/lib/templates.js +4 -0
  4. package/lib/templates.js.map +1 -1
  5. package/naming.d.ts +1 -1
  6. package/naming.js +1 -1
  7. package/naming.js.map +1 -1
  8. package/package.json +1 -1
  9. package/supers/anchor.d.ts +6 -1
  10. package/supers/anchor.d.ts.map +1 -1
  11. package/supers/anchor.js +17 -2
  12. package/supers/anchor.js.map +1 -1
  13. package/web-components/button/button.d.ts +0 -4
  14. package/web-components/button/button.d.ts.map +1 -1
  15. package/web-components/button/button.js +2 -27
  16. package/web-components/button/button.js.map +1 -1
  17. package/web-components/card/card.d.ts +1 -1
  18. package/web-components/card/card.js.map +1 -1
  19. package/web-components/carousel/carousel.d.ts +1 -0
  20. package/web-components/carousel/carousel.d.ts.map +1 -1
  21. package/web-components/carousel/carousel.js.map +1 -1
  22. package/web-components/dialog/dialog.d.ts +1 -0
  23. package/web-components/dialog/dialog.d.ts.map +1 -1
  24. package/web-components/dialog/dialog.js.map +1 -1
  25. package/web-components/layout/divider.d.ts +1 -0
  26. package/web-components/layout/divider.d.ts.map +1 -1
  27. package/web-components/layout/divider.js.map +1 -1
  28. package/web-components/progress/progress.d.ts +1 -0
  29. package/web-components/progress/progress.d.ts.map +1 -1
  30. package/web-components/progress/progress.js.map +1 -1
  31. package/web-components/router/router-a.d.ts +2 -11
  32. package/web-components/router/router-a.d.ts.map +1 -1
  33. package/web-components/router/router-a.js +15 -26
  34. package/web-components/router/router-a.js.map +1 -1
  35. package/web-components/router/router.d.ts +1 -1
  36. package/web-components/router/router.d.ts.map +1 -1
  37. package/web-components/router/router.js.map +1 -1
  38. package/web-components/text/clip.d.ts +1 -0
  39. package/web-components/text/clip.d.ts.map +1 -1
  40. package/web-components/text/clip.js.map +1 -1
  41. package/web-components/text/overbreath.d.ts +2 -1
  42. package/web-components/text/overbreath.d.ts.map +1 -1
  43. package/web-components/text/overbreath.js +1 -1
  44. package/web-components/text/overbreath.js.map +1 -1
  45. package/web-components/text/time.d.ts +17 -11
  46. package/web-components/text/time.d.ts.map +1 -1
  47. package/web-components/text/time.js +35 -19
  48. package/web-components/text/time.js.map +1 -1
  49. package/web-components/text/typewriter.d.ts +2 -1
  50. package/web-components/text/typewriter.d.ts.map +1 -1
  51. package/web-components/text/typewriter.js +1 -1
  52. package/web-components/text/typewriter.js.map +1 -1
  53. package/web-components/tooltip/tooltip.d.ts +2 -1
  54. package/web-components/tooltip/tooltip.d.ts.map +1 -1
  55. package/web-components/tooltip/tooltip.js.map +1 -1
  56. package/web-components/wrapper/wrapper.d.ts +1 -0
  57. package/web-components/wrapper/wrapper.d.ts.map +1 -1
  58. package/web-components/wrapper/wrapper.js.map +1 -1
@@ -31,6 +31,7 @@ export default Progress;
31
31
  declare global {
32
32
  interface HTMLElementTagNameMap {
33
33
  "loading-progress": Progress;
34
+ "load-track": Progress;
34
35
  "g-progress": Progress;
35
36
  }
36
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/progress/progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,cAAc,EAAkB,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAgB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAInE;;GAEG;AACH,qBACa,QAAS,SAAQ,aAAa;IACzC;;OAEG;IACyB,GAAG,SAAK;IACpC;;OAEG;IACyB,GAAG,SAAK;IACpC;;OAEG;IACwC,KAAK,MAAQ;IAExD,MAAM,CAAC,MAAM,iBAuCO;IAEpB,SAAS,CAAC,MAAM,IAAI,YAAY;IAYhC;;;;;OAKG;IACH,YAAY,CAAC,CAAC,GAAE,MAAM,GAAG,MAAY,GAAG,MAAM;CAM/C;AAED,eAAe,QAAQ,CAAC;AAExB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,QAAQ,CAAC;QAC7B,YAAY,EAAE,QAAQ,CAAC;KACxB;CACF"}
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/progress/progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,cAAc,EAAkB,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAgB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAInE;;GAEG;AACH,qBACa,QAAS,SAAQ,aAAa;IACzC;;OAEG;IACyB,GAAG,SAAK;IACpC;;OAEG;IACyB,GAAG,SAAK;IACpC;;OAEG;IACwC,KAAK,MAAQ;IAExD,MAAM,CAAC,MAAM,iBAuCO;IAEpB,SAAS,CAAC,MAAM,IAAI,YAAY;IAYhC;;;;;OAKG;IACH,YAAY,CAAC,CAAC,GAAE,MAAM,GAAG,MAAY,GAAG,MAAM;CAM/C;AAED,eAAe,QAAQ,CAAC;AAExB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,QAAQ,CAAC;QAC7B,YAAY,EAAE,QAAQ,CAAC;QACvB,YAAY,EAAE,QAAQ,CAAC;KACxB;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"progress.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/progress/progress.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAuB,IAAI,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEnE,MAAM,UAAU,GAAG,UAAU,CAAC;AAE9B;;GAEG;AAEI,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,aAAa;IAApC;;QACL;;WAEG;QACyB,QAAG,GAAG,CAAC,CAAC;QACpC;;WAEG;QACyB,QAAG,GAAG,CAAC,CAAC;QACpC;;WAEG;QACwC,UAAK,GAAG,IAAI,CAAC;IAmE1D,CAAC;IAxBW,MAAM;QACd,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,SAAiB,CAAC;QACtB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACxB,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtC,SAAS,GAAG,GAAG,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAA,eAAe,SAAS;wBACf,KAAK;WAClB,CAAC;IACV,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,IAAqB,GAAG;QACnC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAC/D,CAAC;;AAhEM,eAAM,GAAG;IACd,aAAa,CAAC,MAAM;IACpB,GAAG,CAAA;;;;;;;;0BAQmB,YAAY,CAAC,KAAK;;;;;;;;;;0BAUlB,YAAY,CAAC,MAAM;;;;;;;;;;;;;;;;;;KAkBxC;CACgB,AAvCN,CAuCO;AAjDQ;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qCAAS;AAIR;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qCAAS;AAIO;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uCAAc;AAZ7C,QAAQ;IADpB,MAAM,CAAC,UAAU,CAAC;GACN,QAAQ,CA+EpB;;AAED,eAAe,QAAQ,CAAC","sourcesContent":["import { css, type CSSResultGroup, html, property } from \"../../.deps.js\";\nimport { define } from \"../../decorators/define.js\";\nimport { type HTMLTemplate } from \"../../lib/templates.js\";\nimport { cssvarValues, GodownElement } from \"../../supers/root.js\";\n\nconst defineName = \"progress\";\n\n/**\n * {@linkcode Progress} similar to progress.\n */\n@define(defineName)\nexport class Progress extends GodownElement {\n /**\n * Maximum.\n */\n @property({ type: Number }) max = 1;\n /**\n * Minimum.\n */\n @property({ type: Number }) min = 0;\n /**\n * Input value.\n */\n @property({ type: Number, reflect: true }) value = null;\n\n static styles = [\n GodownElement.styles,\n css`\n :host,\n div {\n display: inline-flex;\n position: relative;\n width: 10em;\n height: 0.5em;\n border-radius: 0.25em;\n background: var(${cssvarValues.input}--false);\n z-index: 1;\n }\n\n div i {\n position: absolute;\n border-radius: inherit;\n top: 0;\n left: 0;\n height: 100%;\n background: var(${cssvarValues.cssvar}--accept);\n z-index: 2;\n transition: all 0.3s;\n animation: progress 1.5s ease-in-out infinite alternate;\n }\n\n @keyframes progress {\n from {\n left: 0;\n }\n to {\n left: 80%;\n }\n }\n\n div.v i {\n animation: none;\n }\n `,\n ] as CSSResultGroup;\n\n protected render(): HTMLTemplate {\n let width = 20;\n let className: string;\n if (this.value !== null) {\n width = this.parsePercent(this.value);\n className = \"v\";\n }\n return html`<div class=\"${className}\">\n <i style=\"width:${width}%;\"></i>\n </div>`;\n }\n\n /**\n * Convert s to a percentage without a percent sign.\n *\n * @param s String or number to convert.\n * @returns Percentage without a percent sign.\n */\n parsePercent(s: string | number = \"0\"): number {\n if (String(s).includes(\"%\")) {\n return parseFloat(String(s));\n }\n return (parseFloat(String(s)) / (this.max - this.min)) * 100;\n }\n}\n\nexport default Progress;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"loading-progress\": Progress;\n \"g-progress\": Progress;\n }\n}\n"]}
1
+ {"version":3,"file":"progress.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/progress/progress.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAuB,IAAI,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEnE,MAAM,UAAU,GAAG,UAAU,CAAC;AAE9B;;GAEG;AAEI,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,aAAa;IAApC;;QACL;;WAEG;QACyB,QAAG,GAAG,CAAC,CAAC;QACpC;;WAEG;QACyB,QAAG,GAAG,CAAC,CAAC;QACpC;;WAEG;QACwC,UAAK,GAAG,IAAI,CAAC;IAmE1D,CAAC;IAxBW,MAAM;QACd,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,SAAiB,CAAC;QACtB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACxB,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtC,SAAS,GAAG,GAAG,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAA,eAAe,SAAS;wBACf,KAAK;WAClB,CAAC;IACV,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,IAAqB,GAAG;QACnC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAC/D,CAAC;;AAhEM,eAAM,GAAG;IACd,aAAa,CAAC,MAAM;IACpB,GAAG,CAAA;;;;;;;;0BAQmB,YAAY,CAAC,KAAK;;;;;;;;;;0BAUlB,YAAY,CAAC,MAAM;;;;;;;;;;;;;;;;;;KAkBxC;CACgB,AAvCN,CAuCO;AAjDQ;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qCAAS;AAIR;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qCAAS;AAIO;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uCAAc;AAZ7C,QAAQ;IADpB,MAAM,CAAC,UAAU,CAAC;GACN,QAAQ,CA+EpB;;AAED,eAAe,QAAQ,CAAC","sourcesContent":["import { css, type CSSResultGroup, html, property } from \"../../.deps.js\";\nimport { define } from \"../../decorators/define.js\";\nimport { type HTMLTemplate } from \"../../lib/templates.js\";\nimport { cssvarValues, GodownElement } from \"../../supers/root.js\";\n\nconst defineName = \"progress\";\n\n/**\n * {@linkcode Progress} similar to progress.\n */\n@define(defineName)\nexport class Progress extends GodownElement {\n /**\n * Maximum.\n */\n @property({ type: Number }) max = 1;\n /**\n * Minimum.\n */\n @property({ type: Number }) min = 0;\n /**\n * Input value.\n */\n @property({ type: Number, reflect: true }) value = null;\n\n static styles = [\n GodownElement.styles,\n css`\n :host,\n div {\n display: inline-flex;\n position: relative;\n width: 10em;\n height: 0.5em;\n border-radius: 0.25em;\n background: var(${cssvarValues.input}--false);\n z-index: 1;\n }\n\n div i {\n position: absolute;\n border-radius: inherit;\n top: 0;\n left: 0;\n height: 100%;\n background: var(${cssvarValues.cssvar}--accept);\n z-index: 2;\n transition: all 0.3s;\n animation: progress 1.5s ease-in-out infinite alternate;\n }\n\n @keyframes progress {\n from {\n left: 0;\n }\n to {\n left: 80%;\n }\n }\n\n div.v i {\n animation: none;\n }\n `,\n ] as CSSResultGroup;\n\n protected render(): HTMLTemplate {\n let width = 20;\n let className: string;\n if (this.value !== null) {\n width = this.parsePercent(this.value);\n className = \"v\";\n }\n return html`<div class=\"${className}\">\n <i style=\"width:${width}%;\"></i>\n </div>`;\n }\n\n /**\n * Convert s to a percentage without a percent sign.\n *\n * @param s String or number to convert.\n * @returns Percentage without a percent sign.\n */\n parsePercent(s: string | number = \"0\"): number {\n if (String(s).includes(\"%\")) {\n return parseFloat(String(s));\n }\n return (parseFloat(String(s)) / (this.max - this.min)) * 100;\n }\n}\n\nexport default Progress;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"loading-progress\": Progress;\n \"load-track\": Progress;\n \"g-progress\": Progress;\n }\n}\n"]}
@@ -5,30 +5,21 @@ import GodownAnchor from "../../supers/anchor.js";
5
5
  * @extends A
6
6
  */
7
7
  export declare class RouterA extends GodownAnchor {
8
- /**
9
- * True when the href is in the same pathname as the location.
10
- */
11
- active: boolean;
12
8
  /**
13
9
  * If true, replaceState, or pushState.
14
10
  */
15
11
  replace: boolean;
16
12
  connectedCallback(): void;
17
- /**
18
- * Set active to true when the {@linkcode RouterA.href} is in the same pathname as the location.
19
- */
20
- useActive(): void;
21
13
  protected _handleClick(e: MouseEvent): void;
22
14
  pushState(url?: string, data?: any): void;
23
15
  replaceState(url?: string, data?: any): void;
24
- static pushState(data: any, unused: string, url?: string): void;
25
- static replaceState(data: any, unused: string, url?: string): void;
16
+ updateRouter(): void;
26
17
  }
27
18
  export default RouterA;
28
19
  declare global {
29
20
  interface HTMLElementTagNameMap {
30
21
  "link-a": RouterA;
31
- "router-a": RouterA;
22
+ "g-router-a": RouterA;
32
23
  }
33
24
  }
34
25
  //# sourceMappingURL=router-a.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"router-a.d.ts","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/router/router-a.ts"],"names":[],"mappings":"AAEA,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAKlD;;;;GAIG;AACH,qBACa,OAAQ,SAAQ,YAAY;IACvC;;OAEG;IACyC,MAAM,UAAS;IAC3D;;OAEG;IAC0B,OAAO,UAAS;IAE7C,iBAAiB;IAOjB;;OAEG;IACH,SAAS;IAOT,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU;IAapC,SAAS,CAAC,GAAG,SAAY,EAAE,IAAI,MAAO;IAKtC,YAAY,CAAC,GAAG,SAAY,EAAE,IAAI,MAAO;IAKzC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;IAKxD,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM;CAI5D;AAED,eAAe,OAAO,CAAC;AAEvB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,QAAQ,EAAE,OAAO,CAAC;QAClB,UAAU,EAAE,OAAO,CAAC;KACrB;CACF"}
1
+ {"version":3,"file":"router-a.d.ts","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/router/router-a.ts"],"names":[],"mappings":"AAEA,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAKlD;;;;GAIG;AACH,qBACa,OAAQ,SAAQ,YAAY;IACvC;;OAEG;IAC0B,OAAO,UAAS;IAE7C,iBAAiB;IAOjB,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU;IAapC,SAAS,CAAC,GAAG,SAAY,EAAE,IAAI,MAAO;IAMtC,YAAY,CAAC,GAAG,SAAY,EAAE,IAAI,MAAO;IAMzC,YAAY;CAYb;AAED,eAAe,OAAO,CAAC;AAEvB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,QAAQ,EAAE,OAAO,CAAC;QAClB,YAAY,EAAE,OAAO,CAAC;KACvB;CACF"}
@@ -3,7 +3,6 @@ import { __decorate } from "tslib";
3
3
  import { property } from "../../.deps.js";
4
4
  import { define } from "../../decorators/define.js";
5
5
  import GodownAnchor from "../../supers/anchor.js";
6
- import { Router } from "./router.js";
7
6
  const defineName = "router-a";
8
7
  /**
9
8
  * {@linkcode RouterA} works with {@linkcode Router}.
@@ -13,10 +12,6 @@ const defineName = "router-a";
13
12
  let RouterA = RouterA_1 = class RouterA extends GodownAnchor {
14
13
  constructor() {
15
14
  super(...arguments);
16
- /**
17
- * True when the href is in the same pathname as the location.
18
- */
19
- this.active = false;
20
15
  /**
21
16
  * If true, replaceState, or pushState.
22
17
  */
@@ -28,15 +23,6 @@ let RouterA = RouterA_1 = class RouterA extends GodownAnchor {
28
23
  this.addEvent(window, "popstate", this.useActive.bind(this));
29
24
  this.useActive();
30
25
  }
31
- /**
32
- * Set active to true when the {@linkcode RouterA.href} is in the same pathname as the location.
33
- */
34
- useActive() {
35
- const url = new URL(this.href, location.href);
36
- if (url.origin === location.origin) {
37
- this.active = url.pathname === location.pathname;
38
- }
39
- }
40
26
  _handleClick(e) {
41
27
  const href = this.href ?? this.querySelector("[href]")?.getAttribute("href");
42
28
  const url = new URL(href, location.href);
@@ -51,25 +37,28 @@ let RouterA = RouterA_1 = class RouterA extends GodownAnchor {
51
37
  }
52
38
  }
53
39
  pushState(url = this.href, data = null) {
54
- RouterA_1.pushState(data, "", url);
40
+ history.pushState(data, "", url);
55
41
  this.useActive();
42
+ this.updateRouter();
56
43
  }
57
44
  replaceState(url = this.href, data = null) {
58
- RouterA_1.replaceState(data, "", url);
45
+ history.replaceState(data, "", url);
59
46
  this.useActive();
47
+ this.updateRouter();
60
48
  }
61
- static pushState(data, unused, url) {
62
- history.pushState(data, unused, url);
63
- Router.updateAll();
64
- }
65
- static replaceState(data, unused, url) {
66
- history.replaceState(data, unused, url);
67
- Router.updateAll();
49
+ updateRouter() {
50
+ const tagName = RouterA_1.conf.nameMap.get("route-view");
51
+ if (!tagName) {
52
+ return;
53
+ }
54
+ const routers = this.deepQuerySelectorAll(tagName, document.body);
55
+ routers.forEach((item) => {
56
+ if (!item.override) {
57
+ item.pathname = window.location.pathname;
58
+ }
59
+ });
68
60
  }
69
61
  };
70
- __decorate([
71
- property({ type: Boolean, reflect: true })
72
- ], RouterA.prototype, "active", void 0);
73
62
  __decorate([
74
63
  property({ type: Boolean })
75
64
  ], RouterA.prototype, "replace", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"router-a.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/router/router-a.ts"],"names":[],"mappings":"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","sourcesContent":["import { property } from \"../../.deps.js\";\nimport { define } from \"../../decorators/define.js\";\nimport GodownAnchor from \"../../supers/anchor.js\";\nimport { Router } from \"./router.js\";\n\nconst defineName = \"router-a\";\n\n/**\n * {@linkcode RouterA} works with {@linkcode Router}.\n *\n * @extends A\n */\n@define(defineName)\nexport class RouterA extends GodownAnchor {\n /**\n * True when the href is in the same pathname as the location.\n */\n @property({ type: Boolean, reflect: true }) active = false;\n /**\n * If true, replaceState, or pushState.\n */\n @property({ type: Boolean }) replace = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.addEvent(this, \"click\", this._handleClick);\n this.addEvent(window, \"popstate\", this.useActive.bind(this));\n this.useActive();\n }\n\n /**\n * Set active to true when the {@linkcode RouterA.href} is in the same pathname as the location.\n */\n useActive() {\n const url = new URL(this.href, location.href);\n if (url.origin === location.origin) {\n this.active = url.pathname === location.pathname;\n }\n }\n\n protected _handleClick(e: MouseEvent) {\n const href = this.href ?? this.querySelector(\"[href]\")?.getAttribute(\"href\");\n const url = new URL(href, location.href);\n if (url.origin === location.origin) {\n e.preventDefault();\n if (this.replace) {\n this.replaceState(href);\n } else {\n this.pushState(href);\n }\n }\n }\n\n pushState(url = this.href, data = null) {\n RouterA.pushState(data, \"\", url);\n this.useActive();\n }\n\n replaceState(url = this.href, data = null) {\n RouterA.replaceState(data, \"\", url);\n this.useActive();\n }\n\n static pushState(data: any, unused: string, url?: string) {\n history.pushState(data, unused, url);\n Router.updateAll();\n }\n\n static replaceState(data: any, unused: string, url?: string) {\n history.replaceState(data, unused, url);\n Router.updateAll();\n }\n}\n\nexport default RouterA;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"link-a\": RouterA;\n \"router-a\": RouterA;\n }\n}\n"]}
1
+ {"version":3,"file":"router-a.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/router/router-a.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAGlD,MAAM,UAAU,GAAG,UAAU,CAAC;AAE9B;;;;GAIG;AAEI,IAAM,OAAO,eAAb,MAAM,OAAQ,SAAQ,YAAY;IAAlC;;QACL;;WAEG;QAC0B,YAAO,GAAG,KAAK,CAAC;IA8C/C,CAAC;IA5CC,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAES,YAAY,CAAC,CAAa;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAC7E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;YACnC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;QACpC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,YAAY,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;QACvC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,YAAY;QACV,MAAM,OAAO,GAAG,SAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAS,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1E,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA9C8B;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wCAAiB;AAJlC,OAAO;IADnB,MAAM,CAAC,UAAU,CAAC;GACN,OAAO,CAkDnB;;AAED,eAAe,OAAO,CAAC","sourcesContent":["import { property } from \"../../.deps.js\";\nimport { define } from \"../../decorators/define.js\";\nimport GodownAnchor from \"../../supers/anchor.js\";\nimport { Router } from \"./router.js\";\n\nconst defineName = \"router-a\";\n\n/**\n * {@linkcode RouterA} works with {@linkcode Router}.\n *\n * @extends A\n */\n@define(defineName)\nexport class RouterA extends GodownAnchor {\n /**\n * If true, replaceState, or pushState.\n */\n @property({ type: Boolean }) replace = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.addEvent(this, \"click\", this._handleClick);\n this.addEvent(window, \"popstate\", this.useActive.bind(this));\n this.useActive();\n }\n\n protected _handleClick(e: MouseEvent) {\n const href = this.href ?? this.querySelector(\"[href]\")?.getAttribute(\"href\");\n const url = new URL(href, location.href);\n if (url.origin === location.origin) {\n e.preventDefault();\n if (this.replace) {\n this.replaceState(href);\n } else {\n this.pushState(href);\n }\n }\n }\n\n pushState(url = this.href, data = null) {\n history.pushState(data, \"\", url);\n this.useActive();\n this.updateRouter();\n }\n\n replaceState(url = this.href, data = null) {\n history.replaceState(data, \"\", url);\n this.useActive();\n this.updateRouter();\n }\n\n updateRouter() {\n const tagName = RouterA.conf.nameMap.get(\"route-view\");\n if (!tagName) {\n return;\n }\n const routers = this.deepQuerySelectorAll<Router>(tagName, document.body);\n routers.forEach((item) => {\n if (!item.override) {\n item.pathname = window.location.pathname;\n }\n });\n }\n}\n\nexport default RouterA;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"link-a\": RouterA;\n \"g-router-a\": RouterA;\n }\n}\n"]}
@@ -86,7 +86,7 @@ export default Router;
86
86
  declare global {
87
87
  interface HTMLElementTagNameMap {
88
88
  "route-view": Router;
89
- router: Router;
89
+ "g-router": Router;
90
90
  }
91
91
  }
92
92
  //# sourceMappingURL=router.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/router/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,gBAAgB,EAAS,MAAM,gBAAgB,CAAC;AAG7E,OAAO,SAAS,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAMrD;;GAEG;AACH,qBACa,MAAM,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,aAAa;IACpD,OAAO,CAAC,OAAO,CAAkD;IACjE,OAAO,CAAC,UAAU,CAA8B;IAEhD;;OAEG;IACM,SAAS,EAAE,CAAC,GAAG,YAAY,CAAQ;IAC5C;;OAEG;IACM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAC7C;;OAEG;IACM,IAAI,EAAE,MAAM,CAAQ;IAC7B;;OAEG;IACS,QAAQ,SAAM;IAC1B;;OAEG;IACS,OAAO,SAAM;IACzB;;OAEG;IACM,GAAG,kCAAc;IAC1B;;OAEG;IACS,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAY;IACtE;;OAEG;IACM,QAAQ,UAAQ;IACzB;;OAEG;IAC0B,KAAK,UAAS;IAE3C;;OAEG;IACH,MAAM;;;;;OAAwD;IAE9D,IAAI,MAAM,CAAC,CAAC;;QAAA,EAUX;IAED,IAAI,MAAM;;SAET;IAED,MAAM,CAAC,MAAM,4BAMX;IAEF,KAAK;IAKL,SAAS,CAAC,MAAM,IAAI,CAAC,GAAG,YAAY;IAwBpC,SAAS;;;;;;IAST,iBAAiB;IAsBjB;;;;OAIG;IACH,mBAAmB,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAQ;IAE5F,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAa3D,cAAc,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC;IAgBpD,gBAAgB,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,YAAY;IA6BjE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,SAAe,EAAE,IAAI,GAAE,SAA2B,GAAG,MAAM,GAAG,IAAI;IAIrG,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,SAA2B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIvH,MAAM,CAAC,SAAS;CAYjB;AAED,eAAe,MAAM,CAAC;AAEtB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;KAChB;CACF"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/router/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,gBAAgB,EAAS,MAAM,gBAAgB,CAAC;AAG7E,OAAO,SAAS,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAMrD;;GAEG;AACH,qBACa,MAAM,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,aAAa;IACpD,OAAO,CAAC,OAAO,CAAkD;IACjE,OAAO,CAAC,UAAU,CAA8B;IAEhD;;OAEG;IACM,SAAS,EAAE,CAAC,GAAG,YAAY,CAAQ;IAC5C;;OAEG;IACM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAC7C;;OAEG;IACM,IAAI,EAAE,MAAM,CAAQ;IAC7B;;OAEG;IACS,QAAQ,SAAM;IAC1B;;OAEG;IACS,OAAO,SAAM;IACzB;;OAEG;IACM,GAAG,kCAAc;IAC1B;;OAEG;IACS,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAY;IACtE;;OAEG;IACM,QAAQ,UAAQ;IACzB;;OAEG;IAC0B,KAAK,UAAS;IAE3C;;OAEG;IACH,MAAM;;;;;OAAwD;IAE9D,IAAI,MAAM,CAAC,CAAC;;QAAA,EAUX;IAED,IAAI,MAAM;;SAET;IAED,MAAM,CAAC,MAAM,4BAMX;IAEF,KAAK;IAKL,SAAS,CAAC,MAAM,IAAI,CAAC,GAAG,YAAY;IAwBpC,SAAS;;;;;;IAST,iBAAiB;IAsBjB;;;;OAIG;IACH,mBAAmB,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAQ;IAE5F,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAa3D,cAAc,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC;IAgBpD,gBAAgB,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,YAAY;IA6BjE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,SAAe,EAAE,IAAI,GAAE,SAA2B,GAAG,MAAM,GAAG,IAAI;IAIrG,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,SAA2B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIvH,MAAM,CAAC,SAAS;CAYjB;AAED,eAAe,MAAM,CAAC;AAEtB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;KACpB;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/router/router.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, property, type PropertyValueMap, state } from \"../../.deps.js\";\nimport { conf } from \"../../conf.js\";\nimport { define } from \"../../decorators/define.js\";\nimport RouteTree from \"../../lib/route-tree.js\";\nimport { htmlSlot, type HTMLTemplate } from \"../../lib/templates.js\";\nimport { deepQuerySelectorAll } from \"../../lib/utils.js\";\nimport { GodownElement } from \"../../supers/root.js\";\n\ntype WithRecord<T extends string> = Record<string, any> & Record<T, string>;\n\nconst defineName = \"router\";\n\n/**\n * {@linkcode Router} has basic routing control.\n */\n@define(defineName)\nexport class Router<T = unknown> extends GodownElement {\n private _routes: (WithRecord<\"path\"> & { component?: T })[] = [];\n private _routeTree: RouteTree = new RouteTree();\n\n /**\n * Component will render.\n */\n @state() component: T | HTMLTemplate = null;\n /**\n * Dynamic parameters record.\n */\n @state() params: Record<string, string> = {};\n /**\n * Value of matched path in routes, or null.\n */\n @state() path: string = null;\n /**\n * Current pathname (location.pathname).\n */\n @property() pathname = \"\";\n /**\n * Path prefix.\n */\n @property() baseURL = \"\";\n /**\n * Rendered content when there is no match.\n */\n @state() def = htmlSlot();\n /**\n * The type of routing query.\n */\n @property() type: \"united\" | \"child\" | \"slotted\" | \"field\" = \"united\";\n /**\n * Rewrite history.\n */\n @state() override = true;\n /**\n * Cache accessed.\n */\n @property({ type: Boolean }) cache = false;\n\n /**\n * Cache record.\n */\n record = new Map<string, ReturnType<typeof this.useRouter>>();\n\n set routes(v) {\n if (Object.prototype.toString.call(v) !== \"[object Array]\") {\n return;\n }\n this._routes = v;\n this.reset();\n for (const route of v) {\n this._routeTree.insert(route.path);\n }\n this.requestUpdate();\n }\n\n get routes() {\n return this._routes;\n }\n\n static styles = [\n css`\n :host {\n display: contents;\n }\n `,\n ];\n\n reset() {\n this._routeTree = new RouteTree();\n this.record.clear();\n }\n\n protected render(): T | HTMLTemplate {\n if (this.cache) {\n const cached = this.record.get(this.pathname);\n if (cached) {\n Object.assign(this, cached);\n return this.component;\n }\n }\n this.params = {};\n switch (this.type) {\n case \"field\":\n this.component = this.fieldComponent();\n break;\n case \"child\":\n case \"slotted\":\n this.component = this.slottedComponent();\n break;\n case \"united\":\n this.component = this.fieldComponent() ?? this.slottedComponent();\n break;\n }\n return this.component ?? this.def;\n }\n\n useRouter() {\n return {\n pathname: this.pathname,\n params: this.params,\n path: this.path,\n component: this.component,\n };\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.pathname = window.location.pathname;\n if (!this.override) {\n return;\n }\n this.addEvent(window, \"popstate\", () => {\n this.pathname = window.location.pathname;\n });\n const self = this;\n const pushHistory = history.pushState;\n history.pushState = function () {\n pushHistory.apply(this, arguments);\n self.pathname = window.location.pathname;\n };\n const replaceHistory = history.replaceState;\n history.replaceState = function () {\n replaceHistory.apply(this, arguments);\n self.pathname = window.location.pathname;\n };\n }\n\n /**\n *\n * @param ur value of useRouter()\n * @param first whether this path is loaded for the first time\n */\n routeChangeCallback: (ur: ReturnType<typeof this.useRouter>, first: boolean) => void = null;\n\n protected updated(changedProperties: PropertyValueMap<this>) {\n const shouldDispatch = changedProperties.has(\"pathname\") || changedProperties.has(\"path\");\n if (shouldDispatch) {\n const ur = this.useRouter();\n const noRecord = !this.record.has(this.pathname);\n if (noRecord) {\n this.record.set(this.pathname, ur);\n }\n this.routeChangeCallback?.(ur, noRecord);\n this.dispatchEvent(new CustomEvent(\"change\", { detail: ur }));\n }\n }\n\n fieldComponent(usedRouteTemplate?: string): null | T {\n if (!usedRouteTemplate) {\n usedRouteTemplate = this.useWhichRoute(this.pathname);\n }\n this.path = usedRouteTemplate;\n if (!usedRouteTemplate) {\n return null;\n }\n this.params = this.parseRouterParams(this.path, this.pathname);\n const route = this.routes.find((r) => r.path === usedRouteTemplate);\n if (!route) {\n return null;\n }\n return route.component;\n }\n\n slottedComponent(usedRouteTemplate?: string): null | HTMLTemplate {\n const childNodes = this.querySelectorAll(\":scope > *[slot]\");\n if (!childNodes.length) {\n return null;\n }\n const slottedPaths = Array.from(childNodes).map((node) => {\n const slotname = node.getAttribute(\"slot\");\n return {\n path: slotname,\n };\n });\n const tempRouteTree = new RouteTree();\n for (const withPath of slottedPaths) {\n tempRouteTree.insert(withPath.path);\n }\n if (!usedRouteTemplate) {\n usedRouteTemplate = this.useWhichRoute(this.pathname, undefined, tempRouteTree);\n if (!usedRouteTemplate) {\n return null;\n }\n }\n const slotElement = slottedPaths.find((s) => s.path === usedRouteTemplate);\n if (!slotElement) {\n return null;\n }\n this.params = this.parseRouterParams(usedRouteTemplate, this.pathname);\n return htmlSlot(slotElement.path);\n }\n\n useWhichRoute(path: string, baseURL = this.baseURL, appl: RouteTree = this._routeTree): string | null {\n return appl.useWhich(baseURL + path);\n }\n\n parseRouterParams(routeTemplate: string, originpath: string, appl: RouteTree = this._routeTree): Record<string, string> {\n return appl.parseParams(originpath, routeTemplate);\n }\n\n static updateAll() {\n const routeViewTagName = conf.nameMap.get(\"route-view\");\n if (!routeViewTagName) {\n return;\n }\n const routeViewArray = deepQuerySelectorAll<Router>(routeViewTagName, document.body);\n routeViewArray.forEach((ArrayItem) => {\n if (!ArrayItem.override) {\n ArrayItem.pathname = window.location.pathname;\n }\n });\n }\n}\n\nexport default Router;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"route-view\": Router;\n router: Router;\n }\n}\n"]}
1
+ {"version":3,"file":"router.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/router/router.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, property, type PropertyValueMap, state } from \"../../.deps.js\";\nimport { conf } from \"../../conf.js\";\nimport { define } from \"../../decorators/define.js\";\nimport RouteTree from \"../../lib/route-tree.js\";\nimport { htmlSlot, type HTMLTemplate } from \"../../lib/templates.js\";\nimport { deepQuerySelectorAll } from \"../../lib/utils.js\";\nimport { GodownElement } from \"../../supers/root.js\";\n\ntype WithRecord<T extends string> = Record<string, any> & Record<T, string>;\n\nconst defineName = \"router\";\n\n/**\n * {@linkcode Router} has basic routing control.\n */\n@define(defineName)\nexport class Router<T = unknown> extends GodownElement {\n private _routes: (WithRecord<\"path\"> & { component?: T })[] = [];\n private _routeTree: RouteTree = new RouteTree();\n\n /**\n * Component will render.\n */\n @state() component: T | HTMLTemplate = null;\n /**\n * Dynamic parameters record.\n */\n @state() params: Record<string, string> = {};\n /**\n * Value of matched path in routes, or null.\n */\n @state() path: string = null;\n /**\n * Current pathname (location.pathname).\n */\n @property() pathname = \"\";\n /**\n * Path prefix.\n */\n @property() baseURL = \"\";\n /**\n * Rendered content when there is no match.\n */\n @state() def = htmlSlot();\n /**\n * The type of routing query.\n */\n @property() type: \"united\" | \"child\" | \"slotted\" | \"field\" = \"united\";\n /**\n * Rewrite history.\n */\n @state() override = true;\n /**\n * Cache accessed.\n */\n @property({ type: Boolean }) cache = false;\n\n /**\n * Cache record.\n */\n record = new Map<string, ReturnType<typeof this.useRouter>>();\n\n set routes(v) {\n if (Object.prototype.toString.call(v) !== \"[object Array]\") {\n return;\n }\n this._routes = v;\n this.reset();\n for (const route of v) {\n this._routeTree.insert(route.path);\n }\n this.requestUpdate();\n }\n\n get routes() {\n return this._routes;\n }\n\n static styles = [\n css`\n :host {\n display: contents;\n }\n `,\n ];\n\n reset() {\n this._routeTree = new RouteTree();\n this.record.clear();\n }\n\n protected render(): T | HTMLTemplate {\n if (this.cache) {\n const cached = this.record.get(this.pathname);\n if (cached) {\n Object.assign(this, cached);\n return this.component;\n }\n }\n this.params = {};\n switch (this.type) {\n case \"field\":\n this.component = this.fieldComponent();\n break;\n case \"child\":\n case \"slotted\":\n this.component = this.slottedComponent();\n break;\n case \"united\":\n this.component = this.fieldComponent() ?? this.slottedComponent();\n break;\n }\n return this.component ?? this.def;\n }\n\n useRouter() {\n return {\n pathname: this.pathname,\n params: this.params,\n path: this.path,\n component: this.component,\n };\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.pathname = window.location.pathname;\n if (!this.override) {\n return;\n }\n this.addEvent(window, \"popstate\", () => {\n this.pathname = window.location.pathname;\n });\n const self = this;\n const pushHistory = history.pushState;\n history.pushState = function () {\n pushHistory.apply(this, arguments);\n self.pathname = window.location.pathname;\n };\n const replaceHistory = history.replaceState;\n history.replaceState = function () {\n replaceHistory.apply(this, arguments);\n self.pathname = window.location.pathname;\n };\n }\n\n /**\n *\n * @param ur value of useRouter()\n * @param first whether this path is loaded for the first time\n */\n routeChangeCallback: (ur: ReturnType<typeof this.useRouter>, first: boolean) => void = null;\n\n protected updated(changedProperties: PropertyValueMap<this>) {\n const shouldDispatch = changedProperties.has(\"pathname\") || changedProperties.has(\"path\");\n if (shouldDispatch) {\n const ur = this.useRouter();\n const noRecord = !this.record.has(this.pathname);\n if (noRecord) {\n this.record.set(this.pathname, ur);\n }\n this.routeChangeCallback?.(ur, noRecord);\n this.dispatchEvent(new CustomEvent(\"change\", { detail: ur }));\n }\n }\n\n fieldComponent(usedRouteTemplate?: string): null | T {\n if (!usedRouteTemplate) {\n usedRouteTemplate = this.useWhichRoute(this.pathname);\n }\n this.path = usedRouteTemplate;\n if (!usedRouteTemplate) {\n return null;\n }\n this.params = this.parseRouterParams(this.path, this.pathname);\n const route = this.routes.find((r) => r.path === usedRouteTemplate);\n if (!route) {\n return null;\n }\n return route.component;\n }\n\n slottedComponent(usedRouteTemplate?: string): null | HTMLTemplate {\n const childNodes = this.querySelectorAll(\":scope > *[slot]\");\n if (!childNodes.length) {\n return null;\n }\n const slottedPaths = Array.from(childNodes).map((node) => {\n const slotname = node.getAttribute(\"slot\");\n return {\n path: slotname,\n };\n });\n const tempRouteTree = new RouteTree();\n for (const withPath of slottedPaths) {\n tempRouteTree.insert(withPath.path);\n }\n if (!usedRouteTemplate) {\n usedRouteTemplate = this.useWhichRoute(this.pathname, undefined, tempRouteTree);\n if (!usedRouteTemplate) {\n return null;\n }\n }\n const slotElement = slottedPaths.find((s) => s.path === usedRouteTemplate);\n if (!slotElement) {\n return null;\n }\n this.params = this.parseRouterParams(usedRouteTemplate, this.pathname);\n return htmlSlot(slotElement.path);\n }\n\n useWhichRoute(path: string, baseURL = this.baseURL, appl: RouteTree = this._routeTree): string | null {\n return appl.useWhich(baseURL + path);\n }\n\n parseRouterParams(routeTemplate: string, originpath: string, appl: RouteTree = this._routeTree): Record<string, string> {\n return appl.parseParams(originpath, routeTemplate);\n }\n\n static updateAll() {\n const routeViewTagName = conf.nameMap.get(\"route-view\");\n if (!routeViewTagName) {\n return;\n }\n const routeViewArray = deepQuerySelectorAll<Router>(routeViewTagName, document.body);\n routeViewArray.forEach((ArrayItem) => {\n if (!ArrayItem.override) {\n ArrayItem.pathname = window.location.pathname;\n }\n });\n }\n}\n\nexport default Router;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"route-view\": Router;\n \"g-router\": Router;\n }\n}\n"]}
@@ -16,6 +16,7 @@ export default Clip;
16
16
  declare global {
17
17
  interface HTMLElementTagNameMap {
18
18
  "clip-text": Clip;
19
+ "g-clip": Clip;
19
20
  }
20
21
  }
21
22
  //# sourceMappingURL=clip.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"clip.d.ts","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/text/clip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,cAAc,EAAY,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAuB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAK1E;;GAEG;AACH,qBACa,IAAK,SAAQ,aAAa;IACrC;;OAEG;IACS,IAAI,SAAM;IAEtB,MAAM,CAAC,MAAM,iBAaO;IAEpB,SAAS,CAAC,MAAM,IAAI,YAAY,GAAG,MAAM;CAG1C;AAED,eAAe,IAAI,CAAC;AAEpB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,IAAI,CAAC;KACnB;CACF"}
1
+ {"version":3,"file":"clip.d.ts","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/text/clip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,cAAc,EAAY,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAuB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAK1E;;GAEG;AACH,qBACa,IAAK,SAAQ,aAAa;IACrC;;OAEG;IACS,IAAI,SAAM;IAEtB,MAAM,CAAC,MAAM,iBAaO;IAEpB,SAAS,CAAC,MAAM,IAAI,YAAY,GAAG,MAAM;CAG1C;AAED,eAAe,IAAI,CAAC;AAEpB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,IAAI,CAAC;QAClB,QAAQ,EAAE,IAAI,CAAC;KAChB;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"clip.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/text/clip.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAuB,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAqB,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,UAAU,GAAG,MAAM,CAAC;AAC1B,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;AAE5C;;GAEG;AAEI,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,aAAa;IAAhC;;QACL;;WAEG;QACS,SAAI,GAAG,EAAE,CAAC;IAoBxB,CAAC;IAHW,MAAM;QACd,OAAO,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;IACjC,CAAC;;AAjBM,WAAM,GAAG;IACd,aAAa,CAAC,MAAM;IACpB,GAAG,CAAA;;UAEG,WAAW,0BAA0B,MAAM;0BAC3B,WAAW;;;;;;;KAOhC;CACgB,AAbN,CAaO;AAfR;IAAX,QAAQ,EAAE;kCAAW;AAJX,IAAI;IADhB,MAAM,CAAC,UAAU,CAAC;GACN,IAAI,CAwBhB;;AAED,eAAe,IAAI,CAAC","sourcesContent":["import { css, type CSSResultGroup, property } from \"../../.deps.js\";\nimport { define } from \"../../decorators/define.js\";\nimport { htmlSlot, type HTMLTemplate } from \"../../lib/templates.js\";\nimport { createScope, cssvar, GodownElement } from \"../../supers/root.js\";\n\nconst defineName = \"clip\";\nconst cssvarScope = createScope(defineName);\n\n/**\n * {@linkcode Clip} renders a gradient text.\n */\n@define(defineName)\nexport class Clip extends GodownElement {\n /**\n * The text to be clipped.\n */\n @property() text = \"\";\n\n static styles = [\n GodownElement.styles,\n css`\n :host {\n ${cssvarScope}--clip-background: var(${cssvar}--clip-background);\n background: var(${cssvarScope}--clip-background);\n color: transparent;\n -webkit-text-fill-color: transparent;\n background-clip: text !important;\n -webkit-background-clip: text !important;\n display: inline-flex;\n }\n `,\n ] as CSSResultGroup;\n\n protected render(): HTMLTemplate | string {\n return this.text || htmlSlot();\n }\n}\n\nexport default Clip;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"clip-text\": Clip;\n }\n}\n"]}
1
+ {"version":3,"file":"clip.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/text/clip.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAuB,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAqB,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,UAAU,GAAG,MAAM,CAAC;AAC1B,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;AAE5C;;GAEG;AAEI,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,aAAa;IAAhC;;QACL;;WAEG;QACS,SAAI,GAAG,EAAE,CAAC;IAoBxB,CAAC;IAHW,MAAM;QACd,OAAO,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;IACjC,CAAC;;AAjBM,WAAM,GAAG;IACd,aAAa,CAAC,MAAM;IACpB,GAAG,CAAA;;UAEG,WAAW,0BAA0B,MAAM;0BAC3B,WAAW;;;;;;;KAOhC;CACgB,AAbN,CAaO;AAfR;IAAX,QAAQ,EAAE;kCAAW;AAJX,IAAI;IADhB,MAAM,CAAC,UAAU,CAAC;GACN,IAAI,CAwBhB;;AAED,eAAe,IAAI,CAAC","sourcesContent":["import { css, type CSSResultGroup, property } from \"../../.deps.js\";\nimport { define } from \"../../decorators/define.js\";\nimport { htmlSlot, type HTMLTemplate } from \"../../lib/templates.js\";\nimport { createScope, cssvar, GodownElement } from \"../../supers/root.js\";\n\nconst defineName = \"clip\";\nconst cssvarScope = createScope(defineName);\n\n/**\n * {@linkcode Clip} renders a gradient text.\n */\n@define(defineName)\nexport class Clip extends GodownElement {\n /**\n * The text to be clipped.\n */\n @property() text = \"\";\n\n static styles = [\n GodownElement.styles,\n css`\n :host {\n ${cssvarScope}--clip-background: var(${cssvar}--clip-background);\n background: var(${cssvarScope}--clip-background);\n color: transparent;\n -webkit-text-fill-color: transparent;\n background-clip: text !important;\n -webkit-background-clip: text !important;\n display: inline-flex;\n }\n `,\n ] as CSSResultGroup;\n\n protected render(): HTMLTemplate | string {\n return this.text || htmlSlot();\n }\n}\n\nexport default Clip;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"clip-text\": Clip;\n \"g-clip\": Clip;\n }\n}\n"]}
@@ -2,7 +2,7 @@ import { type CSSResultGroup } from "../../.deps.js";
2
2
  import { type HTMLTemplate } from "../../lib/templates.js";
3
3
  import { GodownElement } from "../../supers/root.js";
4
4
  /**
5
- * OverbreathText renders three animated pieces of text.
5
+ * {@linkcode Overbreath} renders three animated pieces of text.
6
6
  *
7
7
  * Inspired by Vercel homepage (2022? - 2023).
8
8
  */
@@ -21,6 +21,7 @@ export default Overbreath;
21
21
  declare global {
22
22
  interface HTMLElementTagNameMap {
23
23
  "overbreath-text": Overbreath;
24
+ "g-overbreath": Overbreath;
24
25
  }
25
26
  }
26
27
  //# sourceMappingURL=overbreath.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"overbreath.d.ts","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/text/overbreath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,cAAc,EAAkB,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAuB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAK1E;;;;GAIG;AACH,qBACa,UAAW,SAAQ,aAAa;IAC3C;;OAEG;IACS,EAAE,SAAM;IAER,EAAE,SAAM;IAER,EAAE,SAAM;IAEpB,MAAM,CAAC,MAAM,iBAiLO;IAEpB,SAAS,CAAC,MAAM,IAAI,YAAY,EAAE;IAIlC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;CAMjD;AAED,eAAe,UAAU,CAAC;AAE1B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,UAAU,CAAC;KAC/B;CACF"}
1
+ {"version":3,"file":"overbreath.d.ts","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/text/overbreath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,cAAc,EAAkB,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAuB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAK1E;;;;GAIG;AACH,qBACa,UAAW,SAAQ,aAAa;IAC3C;;OAEG;IACS,EAAE,SAAM;IAER,EAAE,SAAM;IAER,EAAE,SAAM;IAEpB,MAAM,CAAC,MAAM,iBAiLO;IAEpB,SAAS,CAAC,MAAM,IAAI,YAAY,EAAE;IAIlC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;CAMjD;AAED,eAAe,UAAU,CAAC;AAE1B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,UAAU,CAAC;QAC9B,cAAc,EAAE,UAAU,CAAC;KAC5B;CACF"}
@@ -5,7 +5,7 @@ import { createScope, cssvar, GodownElement } from "../../supers/root.js";
5
5
  const defineName = "overbreath";
6
6
  const cssvarScope = createScope(defineName);
7
7
  /**
8
- * OverbreathText renders three animated pieces of text.
8
+ * {@linkcode Overbreath} renders three animated pieces of text.
9
9
  *
10
10
  * Inspired by Vercel homepage (2022? - 2023).
11
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"overbreath.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/text/overbreath.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAuB,IAAI,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,UAAU,GAAG,YAAY,CAAC;AAChC,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;AAE5C;;;;GAIG;AAEI,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,aAAa;IAAtC;;QACL;;WAEG;QACS,OAAE,GAAG,EAAE,CAAC;QACpB,SAAS;QACG,OAAE,GAAG,EAAE,CAAC;QACpB,SAAS;QACG,OAAE,GAAG,EAAE,CAAC;IA+LtB,CAAC;IAVW,MAAM;QACd,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC;IAES,UAAU,CAAC,IAAY;QAC/B,OAAO,IAAI,CAAA;yBACU,IAAI;yBACJ,IAAI;YACjB,CAAC;IACX,CAAC;;AA5LM,iBAAM,GAAG;IACd,aAAa,CAAC,MAAM;IACpB,GAAG,CAAA;;UAEG,WAAW;UACX,WAAW;UACX,WAAW;UACX,WAAW;UACX,WAAW;UACX,WAAW;UACX,WAAW;UACX,WAAW,4BAA4B,WAAW,eAAe,WAAW,eAAe,WAAW;UACtG,WAAW,4BAA4B,WAAW,eAAe,WAAW,eAAe,WAAW;UACtG,WAAW,4BAA4B,WAAW,eAAe,WAAW,eAAe,WAAW;;KAE3G;IACD,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA2CyB,WAAW;;;;;gCAKX,WAAW;;;;;gCAKX,WAAW;;;;;;;;;;;;;;KActC;IACD,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+EF;IACD,GAAG,CAAA;;UAEG,WAAW,0BAA0B,MAAM;0BAC3B,WAAW;;;;;;;;;KAShC;CACgB,AAjLN,CAiLO;AAvLR;IAAX,QAAQ,EAAE;sCAAS;AAER;IAAX,QAAQ,EAAE;sCAAS;AAER;IAAX,QAAQ,EAAE;sCAAS;AART,UAAU;IADtB,MAAM,CAAC,UAAU,CAAC;GACN,UAAU,CAuMtB;;AAED,eAAe,UAAU,CAAC","sourcesContent":["import { css, type CSSResultGroup, html, property } from \"../../.deps.js\";\nimport { define } from \"../../decorators/define.js\";\nimport { type HTMLTemplate } from \"../../lib/templates.js\";\nimport { createScope, cssvar, GodownElement } from \"../../supers/root.js\";\n\nconst defineName = \"overbreath\";\nconst cssvarScope = createScope(defineName);\n\n/**\n * OverbreathText renders three animated pieces of text.\n *\n * Inspired by Vercel homepage (2022? - 2023).\n */\n@define(defineName)\nexport class Overbreath extends GodownElement {\n /**\n * One of the texts.\n */\n @property() t1 = \"\";\n // As t1.\n @property() t2 = \"\";\n // As t2.\n @property() t3 = \"\";\n\n static styles = [\n GodownElement.styles,\n css`\n :host {\n ${cssvarScope}--1-1: #ae0ca5;\n ${cssvarScope}--1-2: #ffd802;\n ${cssvarScope}--2-1: #1fe173;\n ${cssvarScope}--2-2: #582bca;\n ${cssvarScope}--3-1: #00b4f0;\n ${cssvarScope}--3-2: #e614e6;\n ${cssvarScope}--deg: 60deg;\n ${cssvarScope}--1: linear-gradient(var(${cssvarScope}--deg), var(${cssvarScope}--1-1), var(${cssvarScope}--1-2));\n ${cssvarScope}--2: linear-gradient(var(${cssvarScope}--deg), var(${cssvarScope}--2-1), var(${cssvarScope}--2-2));\n ${cssvarScope}--3: linear-gradient(var(${cssvarScope}--deg), var(${cssvarScope}--3-1), var(${cssvarScope}--3-2));\n }\n `,\n css`\n :host {\n display: flex;\n margin: auto;\n width: fit-content;\n font-size: clamp(3.5rem, 10vw, 5.5rem);\n align-items: center;\n }\n\n @media (max-width: 1280px) {\n :host {\n flex-direction: column;\n }\n }\n\n *::selection {\n background: none;\n }\n\n .fg,\n .bg {\n padding: 0 0.05em;\n box-sizing: border-box;\n }\n\n .bg {\n position: absolute;\n top: 0;\n }\n\n span {\n display: block;\n }\n\n .rel {\n position: relative;\n font-weight: 800;\n font-size: inherit;\n letter-spacing: -0.05em;\n }\n\n .rel:nth-child(1) .fg {\n animation: lg1 8s infinite;\n background-image: var(${cssvarScope}--1);\n }\n\n .rel:nth-child(2) .fg {\n animation: 8s infinite lg2;\n background-image: var(${cssvarScope}--2);\n }\n\n .rel:nth-child(3) .fg {\n animation: 8s infinite lg3;\n background-image: var(${cssvarScope}--3);\n }\n\n .rel:nth-child(1) .bg {\n animation: text1 8s infinite;\n }\n\n .rel:nth-child(2) .bg {\n animation: text2 8s infinite;\n }\n\n .rel:nth-child(3) .bg {\n animation: text3 8s infinite;\n }\n `,\n css`\n @keyframes lg1 {\n 0%,\n 16.667%,\n to {\n opacity: 1;\n }\n 33.333%,\n 83.333% {\n opacity: 0;\n }\n }\n\n @keyframes lg2 {\n 0%,\n to {\n opacity: 0;\n }\n 33.333%,\n 50% {\n opacity: 1;\n }\n 16.667%,\n 66.667% {\n opacity: 0;\n }\n }\n\n @keyframes lg3 {\n 0%,\n 50%,\n to {\n opacity: 0;\n }\n 66.667%,\n 83.333% {\n opacity: 1;\n }\n }\n\n @keyframes text1 {\n 0%,\n 16.667%,\n to {\n opacity: 0;\n }\n 25%,\n 91.667% {\n opacity: 1;\n }\n }\n\n @keyframes text2 {\n 0%,\n to {\n opacity: 1;\n }\n 33.333%,\n 50% {\n opacity: 0;\n }\n 25%,\n 58.333% {\n opacity: 1;\n }\n }\n\n @keyframes text3 {\n 0%,\n 58.333%,\n 91.667%,\n to {\n opacity: 1;\n }\n 66.667%,\n 83.333% {\n opacity: 0;\n }\n }\n `,\n css`\n span.bg {\n ${cssvarScope}--clip-background: var(${cssvar}--clip-background);\n background: var(${cssvarScope}--clip-background);\n }\n span {\n color: transparent;\n -webkit-text-fill-color: transparent;\n background-clip: text !important;\n -webkit-background-clip: text !important;\n display: inline-flex;\n }\n `,\n ] as CSSResultGroup;\n\n protected render(): HTMLTemplate[] {\n return [this.t1, this.t2, this.t3].map(this.renderText);\n }\n\n protected renderText(text: string): HTMLTemplate {\n return html`<span class=\"rel\">\n <span class=\"bg\">${text}</span>\n <span class=\"fg\">${text}</span>\n </span>`;\n }\n}\n\nexport default Overbreath;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"overbreath-text\": Overbreath;\n }\n}\n"]}
1
+ {"version":3,"file":"overbreath.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/text/overbreath.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAuB,IAAI,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,UAAU,GAAG,YAAY,CAAC;AAChC,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;AAE5C;;;;GAIG;AAEI,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,aAAa;IAAtC;;QACL;;WAEG;QACS,OAAE,GAAG,EAAE,CAAC;QACpB,SAAS;QACG,OAAE,GAAG,EAAE,CAAC;QACpB,SAAS;QACG,OAAE,GAAG,EAAE,CAAC;IA+LtB,CAAC;IAVW,MAAM;QACd,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC;IAES,UAAU,CAAC,IAAY;QAC/B,OAAO,IAAI,CAAA;yBACU,IAAI;yBACJ,IAAI;YACjB,CAAC;IACX,CAAC;;AA5LM,iBAAM,GAAG;IACd,aAAa,CAAC,MAAM;IACpB,GAAG,CAAA;;UAEG,WAAW;UACX,WAAW;UACX,WAAW;UACX,WAAW;UACX,WAAW;UACX,WAAW;UACX,WAAW;UACX,WAAW,4BAA4B,WAAW,eAAe,WAAW,eAAe,WAAW;UACtG,WAAW,4BAA4B,WAAW,eAAe,WAAW,eAAe,WAAW;UACtG,WAAW,4BAA4B,WAAW,eAAe,WAAW,eAAe,WAAW;;KAE3G;IACD,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCA2CyB,WAAW;;;;;gCAKX,WAAW;;;;;gCAKX,WAAW;;;;;;;;;;;;;;KActC;IACD,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+EF;IACD,GAAG,CAAA;;UAEG,WAAW,0BAA0B,MAAM;0BAC3B,WAAW;;;;;;;;;KAShC;CACgB,AAjLN,CAiLO;AAvLR;IAAX,QAAQ,EAAE;sCAAS;AAER;IAAX,QAAQ,EAAE;sCAAS;AAER;IAAX,QAAQ,EAAE;sCAAS;AART,UAAU;IADtB,MAAM,CAAC,UAAU,CAAC;GACN,UAAU,CAuMtB;;AAED,eAAe,UAAU,CAAC","sourcesContent":["import { css, type CSSResultGroup, html, property } from \"../../.deps.js\";\nimport { define } from \"../../decorators/define.js\";\nimport { type HTMLTemplate } from \"../../lib/templates.js\";\nimport { createScope, cssvar, GodownElement } from \"../../supers/root.js\";\n\nconst defineName = \"overbreath\";\nconst cssvarScope = createScope(defineName);\n\n/**\n * {@linkcode Overbreath} renders three animated pieces of text.\n *\n * Inspired by Vercel homepage (2022? - 2023).\n */\n@define(defineName)\nexport class Overbreath extends GodownElement {\n /**\n * One of the texts.\n */\n @property() t1 = \"\";\n // As t1.\n @property() t2 = \"\";\n // As t2.\n @property() t3 = \"\";\n\n static styles = [\n GodownElement.styles,\n css`\n :host {\n ${cssvarScope}--1-1: #ae0ca5;\n ${cssvarScope}--1-2: #ffd802;\n ${cssvarScope}--2-1: #1fe173;\n ${cssvarScope}--2-2: #582bca;\n ${cssvarScope}--3-1: #00b4f0;\n ${cssvarScope}--3-2: #e614e6;\n ${cssvarScope}--deg: 60deg;\n ${cssvarScope}--1: linear-gradient(var(${cssvarScope}--deg), var(${cssvarScope}--1-1), var(${cssvarScope}--1-2));\n ${cssvarScope}--2: linear-gradient(var(${cssvarScope}--deg), var(${cssvarScope}--2-1), var(${cssvarScope}--2-2));\n ${cssvarScope}--3: linear-gradient(var(${cssvarScope}--deg), var(${cssvarScope}--3-1), var(${cssvarScope}--3-2));\n }\n `,\n css`\n :host {\n display: flex;\n margin: auto;\n width: fit-content;\n font-size: clamp(3.5rem, 10vw, 5.5rem);\n align-items: center;\n }\n\n @media (max-width: 1280px) {\n :host {\n flex-direction: column;\n }\n }\n\n *::selection {\n background: none;\n }\n\n .fg,\n .bg {\n padding: 0 0.05em;\n box-sizing: border-box;\n }\n\n .bg {\n position: absolute;\n top: 0;\n }\n\n span {\n display: block;\n }\n\n .rel {\n position: relative;\n font-weight: 800;\n font-size: inherit;\n letter-spacing: -0.05em;\n }\n\n .rel:nth-child(1) .fg {\n animation: lg1 8s infinite;\n background-image: var(${cssvarScope}--1);\n }\n\n .rel:nth-child(2) .fg {\n animation: 8s infinite lg2;\n background-image: var(${cssvarScope}--2);\n }\n\n .rel:nth-child(3) .fg {\n animation: 8s infinite lg3;\n background-image: var(${cssvarScope}--3);\n }\n\n .rel:nth-child(1) .bg {\n animation: text1 8s infinite;\n }\n\n .rel:nth-child(2) .bg {\n animation: text2 8s infinite;\n }\n\n .rel:nth-child(3) .bg {\n animation: text3 8s infinite;\n }\n `,\n css`\n @keyframes lg1 {\n 0%,\n 16.667%,\n to {\n opacity: 1;\n }\n 33.333%,\n 83.333% {\n opacity: 0;\n }\n }\n\n @keyframes lg2 {\n 0%,\n to {\n opacity: 0;\n }\n 33.333%,\n 50% {\n opacity: 1;\n }\n 16.667%,\n 66.667% {\n opacity: 0;\n }\n }\n\n @keyframes lg3 {\n 0%,\n 50%,\n to {\n opacity: 0;\n }\n 66.667%,\n 83.333% {\n opacity: 1;\n }\n }\n\n @keyframes text1 {\n 0%,\n 16.667%,\n to {\n opacity: 0;\n }\n 25%,\n 91.667% {\n opacity: 1;\n }\n }\n\n @keyframes text2 {\n 0%,\n to {\n opacity: 1;\n }\n 33.333%,\n 50% {\n opacity: 0;\n }\n 25%,\n 58.333% {\n opacity: 1;\n }\n }\n\n @keyframes text3 {\n 0%,\n 58.333%,\n 91.667%,\n to {\n opacity: 1;\n }\n 66.667%,\n 83.333% {\n opacity: 0;\n }\n }\n `,\n css`\n span.bg {\n ${cssvarScope}--clip-background: var(${cssvar}--clip-background);\n background: var(${cssvarScope}--clip-background);\n }\n span {\n color: transparent;\n -webkit-text-fill-color: transparent;\n background-clip: text !important;\n -webkit-background-clip: text !important;\n display: inline-flex;\n }\n `,\n ] as CSSResultGroup;\n\n protected render(): HTMLTemplate[] {\n return [this.t1, this.t2, this.t3].map(this.renderText);\n }\n\n protected renderText(text: string): HTMLTemplate {\n return html`<span class=\"rel\">\n <span class=\"bg\">${text}</span>\n <span class=\"fg\">${text}</span>\n </span>`;\n }\n}\n\nexport default Overbreath;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"overbreath-text\": Overbreath;\n \"g-overbreath\": Overbreath;\n }\n}\n"]}
@@ -1,9 +1,13 @@
1
1
  import { type CSSResultGroup } from "../../.deps.js";
2
2
  import { GodownElement } from "../../supers/root.js";
3
3
  /**
4
- * TimeBar renders a formatting time.
4
+ * {@linkcode Time} renders a formatting time.
5
5
  */
6
6
  export declare class Time extends GodownElement {
7
+ /**
8
+ * Cancels the next character formatting.
9
+ */
10
+ escape: string;
7
11
  /**
8
12
  * Format strings.
9
13
  * {@linkcode Time.fmt}
@@ -31,24 +35,26 @@ export declare class Time extends GodownElement {
31
35
  protected firstUpdated(): void;
32
36
  disconnectedCallback(): void;
33
37
  /**
38
+ * Y for year\
39
+ * M for month\
40
+ * D for day\
41
+ * h for hour\
42
+ * m for minute\
43
+ * s for second\
44
+ * S for milli Second\
45
+ * Z for time zone.
46
+ *
34
47
  * @param fm Format string.
35
48
  * @param tm Time.
36
- * @returns F.ormat result\
37
- *
38
- * Y for years\
39
- * M for months\
40
- * D for days\
41
- * h for hours\
42
- * m for minutes\
43
- * s for seconds\
44
- * Z for time zones.
49
+ * @returns Format result
45
50
  */
46
- static fmt(fm: string, tm: Date): string;
51
+ static fmt(fm: string, tm: Date, em: string): string;
47
52
  }
48
53
  export default Time;
49
54
  declare global {
50
55
  interface HTMLElementTagNameMap {
51
56
  "time-bar": Time;
57
+ "g-time": Time;
52
58
  }
53
59
  }
54
60
  //# sourceMappingURL=time.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"time.d.ts","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/text/time.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,cAAc,EAAY,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIrD;;GAEG;AACH,qBACa,IAAK,SAAQ,aAAa;IACrC;;;OAGG;IACS,MAAM,SAA8B;IAChD;;OAEG;IACS,KAAK,SAAM;IACvB;;OAEG;IACyB,IAAI,OAAc;IAC9C;;OAEG;IACyB,OAAO,SAAK;IACxC;;OAEG;IACyB,GAAG,SAAK;IAEpC,UAAU,EAAE,MAAM,CAAC;IAEnB,MAAM,CAAC,MAAM,EAAE,cAAc,CAM3B;IAEF,SAAS,CAAC,MAAM,IAAI,MAAM;IAI1B,SAAS,CAAC,YAAY;IAQtB,oBAAoB;IAIpB;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,GAAG,MAAM;CAmCzC;AAED,eAAe,IAAI,CAAC;AAEpB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,IAAI,CAAC;KAClB;CACF"}
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/text/time.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,cAAc,EAAY,MAAM,gBAAgB,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIrD;;GAEG;AACH,qBACa,IAAK,SAAQ,aAAa;IACrC;;OAEG;IACS,MAAM,SAAO;IACzB;;;OAGG;IACS,MAAM,SAA8B;IAChD;;OAEG;IACS,KAAK,SAAM;IACvB;;OAEG;IACyB,IAAI,OAAc;IAC9C;;OAEG;IACyB,OAAO,SAAK;IACxC;;OAEG;IACyB,GAAG,SAAK;IAEpC,UAAU,EAAE,MAAM,CAAC;IAEnB,MAAM,CAAC,MAAM,EAAE,cAAc,CAM3B;IAEF,SAAS,CAAC,MAAM,IAAI,MAAM;IAI1B,SAAS,CAAC,YAAY;IAQtB,oBAAoB;IAIpB;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;CA6CrD;AAED,eAAe,IAAI,CAAC;AAEpB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,IAAI,CAAC;QACjB,QAAQ,EAAE,IAAI,CAAC;KAChB;CACF"}
@@ -5,11 +5,15 @@ import { define } from "../../decorators/define.js";
5
5
  import { GodownElement } from "../../supers/root.js";
6
6
  const defineName = "time";
7
7
  /**
8
- * TimeBar renders a formatting time.
8
+ * {@linkcode Time} renders a formatting time.
9
9
  */
10
10
  let Time = Time_1 = class Time extends GodownElement {
11
11
  constructor() {
12
12
  super(...arguments);
13
+ /**
14
+ * Cancels the next character formatting.
15
+ */
16
+ this.escape = "%";
13
17
  /**
14
18
  * Format strings.
15
19
  * {@linkcode Time.fmt}
@@ -33,7 +37,7 @@ let Time = Time_1 = class Time extends GodownElement {
33
37
  this.gap = 0;
34
38
  }
35
39
  render() {
36
- return this.value || Time_1.fmt(this.format, this.time);
40
+ return this.value || Time_1.fmt(this.format, this.time, this.escape);
37
41
  }
38
42
  firstUpdated() {
39
43
  if (this.timeout) {
@@ -46,28 +50,35 @@ let Time = Time_1 = class Time extends GodownElement {
46
50
  clearInterval(this.intervalID);
47
51
  }
48
52
  /**
53
+ * Y for year\
54
+ * M for month\
55
+ * D for day\
56
+ * h for hour\
57
+ * m for minute\
58
+ * s for second\
59
+ * S for milli Second\
60
+ * Z for time zone.
61
+ *
49
62
  * @param fm Format string.
50
63
  * @param tm Time.
51
- * @returns F.ormat result\
52
- *
53
- * Y for years\
54
- * M for months\
55
- * D for days\
56
- * h for hours\
57
- * m for minutes\
58
- * s for seconds\
59
- * Z for time zones.
64
+ * @returns Format result
60
65
  */
61
- static fmt(fm, tm) {
62
- if (fm === "") {
66
+ static fmt(fm, tm, em) {
67
+ if (!fm) {
63
68
  return fm;
64
69
  }
70
+ if (isNaN(tm.getTime())) {
71
+ return undefined;
72
+ }
65
73
  const rest = [];
66
- fm = fm.replace(/%([ZYMDhms%])/g, (_, p1) => {
74
+ const replaced = `${em}${em}`;
75
+ fm = fm.replace(new RegExp(`${em}([ZYMDhmsS${em}])`, "g"), (_, p1) => {
67
76
  rest.push(p1);
68
- return "%%";
77
+ return replaced;
69
78
  });
70
- const formatNumber = (date) => date.toString().padStart(2, "0").split("");
79
+ function formatNumber(n, max = 2) {
80
+ return n.toString().padStart(max, "0").split("");
81
+ }
71
82
  const z = tm.getTimezoneOffset() / -60;
72
83
  const switcher = {
73
84
  Z: [z >= 0 ? "+" + z.toString() : z.toString()],
@@ -77,11 +88,13 @@ let Time = Time_1 = class Time extends GodownElement {
77
88
  h: formatNumber(tm.getHours()),
78
89
  m: formatNumber(tm.getMinutes()),
79
90
  s: formatNumber(tm.getSeconds()),
91
+ S: formatNumber(tm.getMilliseconds(), 3),
80
92
  };
81
93
  const result = [];
82
94
  for (const f of fm.split("").reverse()) {
83
- if (switcher[f]) {
84
- result.push(switcher[f]?.pop());
95
+ const s = switcher[f]?.pop();
96
+ if (s) {
97
+ result.push(s);
85
98
  }
86
99
  else {
87
100
  result.push(f);
@@ -90,7 +103,7 @@ let Time = Time_1 = class Time extends GodownElement {
90
103
  return result
91
104
  .reverse()
92
105
  .join("")
93
- .replace(/%%/g, () => {
106
+ .replace(new RegExp(replaced, "g"), () => {
94
107
  return rest.shift();
95
108
  });
96
109
  }
@@ -102,6 +115,9 @@ Time.styles = [
102
115
  }
103
116
  `,
104
117
  ];
118
+ __decorate([
119
+ property()
120
+ ], Time.prototype, "escape", void 0);
105
121
  __decorate([
106
122
  property()
107
123
  ], Time.prototype, "format", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"time.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/text/time.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, type CSSResultGroup, property } from \"../../.deps.js\";\nimport { define } from \"../../decorators/define.js\";\nimport { GodownElement } from \"../../supers/root.js\";\n\nconst defineName = \"time\";\n\n/**\n * TimeBar renders a formatting time.\n */\n@define(defineName)\nexport class Time extends GodownElement {\n /**\n * Format strings.\n * {@linkcode Time.fmt}\n */\n @property() format = \"YYYY-MM-DD hh:mm:ss UTFZ\";\n /**\n * Display content.\n */\n @property() value = \"\";\n /**\n * Time.\n */\n @property({ type: Object }) time = new Date();\n /**\n * If there is a value, update every gap or timeout.\n */\n @property({ type: Number }) timeout = 0;\n /**\n * The number of milliseconds that change with each update.\n */\n @property({ type: Number }) gap = 0;\n\n intervalID: number;\n\n static styles: CSSResultGroup = [\n css`\n :host {\n text-align: center;\n }\n `,\n ];\n\n protected render(): string {\n return this.value || Time.fmt(this.format, this.time);\n }\n\n protected firstUpdated() {\n if (this.timeout) {\n this.intervalID = setInterval(() => {\n this.time = new Date(this.time.getTime() + (this.gap || this.timeout));\n }, Math.abs(this.timeout));\n }\n }\n\n disconnectedCallback() {\n clearInterval(this.intervalID);\n }\n\n /**\n * @param fm Format string.\n * @param tm Time.\n * @returns F.ormat result\\\n *\n * Y for years\\\n * M for months\\\n * D for days\\\n * h for hours\\\n * m for minutes\\\n * s for seconds\\\n * Z for time zones.\n */\n static fmt(fm: string, tm: Date): string {\n if (fm === \"\") {\n return fm;\n }\n const rest = [];\n fm = fm.replace(/%([ZYMDhms%])/g, (_, p1) => {\n rest.push(p1);\n return \"%%\";\n });\n const formatNumber = (date: number) => date.toString().padStart(2, \"0\").split(\"\");\n const z = tm.getTimezoneOffset() / -60;\n const switcher: Record<string, string[]> = {\n Z: [z >= 0 ? \"+\" + z.toString() : z.toString()],\n Y: tm.getFullYear().toString().split(\"\"),\n M: formatNumber(tm.getMonth() + 1),\n D: formatNumber(tm.getDate()),\n h: formatNumber(tm.getHours()),\n m: formatNumber(tm.getMinutes()),\n s: formatNumber(tm.getSeconds()),\n };\n const result: string[] = [];\n for (const f of fm.split(\"\").reverse()) {\n if (switcher[f]) {\n result.push(switcher[f]?.pop());\n } else {\n result.push(f);\n }\n }\n return result\n .reverse()\n .join(\"\")\n .replace(/%%/g, () => {\n return rest.shift();\n });\n }\n}\n\nexport default Time;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"time-bar\": Time;\n }\n}\n"]}
1
+ {"version":3,"file":"time.js","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/text/time.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, type CSSResultGroup, property } from \"../../.deps.js\";\nimport { define } from \"../../decorators/define.js\";\nimport { GodownElement } from \"../../supers/root.js\";\n\nconst defineName = \"time\";\n\n/**\n * {@linkcode Time} renders a formatting time.\n */\n@define(defineName)\nexport class Time extends GodownElement {\n /**\n * Cancels the next character formatting.\n */\n @property() escape = \"%\";\n /**\n * Format strings.\n * {@linkcode Time.fmt}\n */\n @property() format = \"YYYY-MM-DD hh:mm:ss UTFZ\";\n /**\n * Display content.\n */\n @property() value = \"\";\n /**\n * Time.\n */\n @property({ type: Object }) time = new Date();\n /**\n * If there is a value, update every gap or timeout.\n */\n @property({ type: Number }) timeout = 0;\n /**\n * The number of milliseconds that change with each update.\n */\n @property({ type: Number }) gap = 0;\n\n intervalID: number;\n\n static styles: CSSResultGroup = [\n css`\n :host {\n text-align: center;\n }\n `,\n ];\n\n protected render(): string {\n return this.value || Time.fmt(this.format, this.time, this.escape);\n }\n\n protected firstUpdated() {\n if (this.timeout) {\n this.intervalID = setInterval(() => {\n this.time = new Date(this.time.getTime() + (this.gap || this.timeout));\n }, Math.abs(this.timeout));\n }\n }\n\n disconnectedCallback() {\n clearInterval(this.intervalID);\n }\n\n /**\n * Y for year\\\n * M for month\\\n * D for day\\\n * h for hour\\\n * m for minute\\\n * s for second\\\n * S for milli Second\\\n * Z for time zone.\n *\n * @param fm Format string.\n * @param tm Time.\n * @returns Format result\n */\n static fmt(fm: string, tm: Date, em: string): string {\n if (!fm) {\n return fm;\n }\n if (isNaN(tm.getTime())) {\n return undefined;\n }\n const rest = [];\n const replaced = `${em}${em}`;\n fm = fm.replace(new RegExp(`${em}([ZYMDhmsS${em}])`, \"g\"), (_, p1) => {\n rest.push(p1);\n return replaced;\n });\n\n function formatNumber(n: number, max = 2) {\n return n.toString().padStart(max, \"0\").split(\"\");\n }\n\n const z = tm.getTimezoneOffset() / -60;\n const switcher: Record<string, string[]> = {\n Z: [z >= 0 ? \"+\" + z.toString() : z.toString()],\n Y: tm.getFullYear().toString().split(\"\"),\n M: formatNumber(tm.getMonth() + 1),\n D: formatNumber(tm.getDate()),\n h: formatNumber(tm.getHours()),\n m: formatNumber(tm.getMinutes()),\n s: formatNumber(tm.getSeconds()),\n S: formatNumber(tm.getMilliseconds(), 3),\n };\n const result: string[] = [];\n for (const f of fm.split(\"\").reverse()) {\n const s = switcher[f]?.pop();\n if (s) {\n result.push(s);\n } else {\n result.push(f);\n }\n }\n return result\n .reverse()\n .join(\"\")\n .replace(new RegExp(replaced, \"g\"), () => {\n return rest.shift();\n });\n }\n}\n\nexport default Time;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"time-bar\": Time;\n \"g-time\": Time;\n }\n}\n"]}
@@ -2,7 +2,7 @@ import { type PropertyValueMap } from "../../.deps.js";
2
2
  import { type HTMLTemplate } from "../../lib/templates.js";
3
3
  import { GodownElement } from "../../supers/root.js";
4
4
  /**
5
- * TypewriterText renders a typewriter effect to text.
5
+ * {@linkcode Typewriter} renders a typewriter effect to text.
6
6
  */
7
7
  export declare class Typewriter extends GodownElement {
8
8
  /**
@@ -55,6 +55,7 @@ export default Typewriter;
55
55
  declare global {
56
56
  interface HTMLElementTagNameMap {
57
57
  "typewriter-text": Typewriter;
58
+ "g-typewriter": Typewriter;
58
59
  }
59
60
  }
60
61
  //# sourceMappingURL=typewriter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typewriter.d.ts","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/text/typewriter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,gBAAgB,EAAgB,MAAM,gBAAgB,CAAC;AAE1F,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAAe,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAKlE;;GAEG;AACH,qBACa,UAAW,SAAQ,aAAa;IAC3C;;OAEG;IACS,IAAI,SAAM;IACtB;;OAEG;IAC0B,OAAO,UAAS;IAC7C;;OAEG;IAC0B,KAAK,UAAS;IAC3C;;OAEG;IACyB,GAAG,SAAO;IACtC;;OAEG;IACyB,GAAG,SAAM;IACrC;;OAEG;IACyB,KAAK,SAAK;IACtC;;OAEG;IACyB,KAAK,SAAK;IACtC;;OAEG;IACM,OAAO,SAAM;IAEtB,SAAS,EAAE,MAAM,CAAC;IACN,EAAE,EAAE,WAAW,CAAC;IAE5B;;OAEG;IACH,IAAI,GAAG,WAEN;IAED,MAAM,CAAC,MAAM,4BA+BX;IAEF,SAAS,CAAC,MAAM,IAAI,YAAY;IAIhC,SAAS,CAAC,YAAY;IAStB,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAM3D,KAAK,CAAC,EAAE,SAAa;IAYrB,IAAI;IAIJ,GAAG;CAGJ;AAED,eAAe,UAAU,CAAC;AAE1B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,UAAU,CAAC;KAC/B;CACF"}
1
+ {"version":3,"file":"typewriter.d.ts","sourceRoot":"https://github.com/startracex/godown/tree/main/src/","sources":["web-components/text/typewriter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,gBAAgB,EAAgB,MAAM,gBAAgB,CAAC;AAE1F,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAAe,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAKlE;;GAEG;AACH,qBACa,UAAW,SAAQ,aAAa;IAC3C;;OAEG;IACS,IAAI,SAAM;IACtB;;OAEG;IAC0B,OAAO,UAAS;IAC7C;;OAEG;IAC0B,KAAK,UAAS;IAC3C;;OAEG;IACyB,GAAG,SAAO;IACtC;;OAEG;IACyB,GAAG,SAAM;IACrC;;OAEG;IACyB,KAAK,SAAK;IACtC;;OAEG;IACyB,KAAK,SAAK;IACtC;;OAEG;IACM,OAAO,SAAM;IAEtB,SAAS,EAAE,MAAM,CAAC;IACN,EAAE,EAAE,WAAW,CAAC;IAE5B;;OAEG;IACH,IAAI,GAAG,WAEN;IAED,MAAM,CAAC,MAAM,4BA+BX;IAEF,SAAS,CAAC,MAAM,IAAI,YAAY;IAIhC,SAAS,CAAC,YAAY;IAStB,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAM3D,KAAK,CAAC,EAAE,SAAa;IAYrB,IAAI;IAIJ,GAAG;CAGJ;AAED,eAAe,UAAU,CAAC;AAE1B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,UAAU,CAAC;QAC9B,cAAc,EAAE,UAAU,CAAC;KAC5B;CACF"}
@@ -7,7 +7,7 @@ import { createScope, GodownElement } from "../../supers/root.js";
7
7
  const defineName = "typewriter";
8
8
  const cssvarScope = createScope(defineName);
9
9
  /**
10
- * TypewriterText renders a typewriter effect to text.
10
+ * {@linkcode Typewriter} renders a typewriter effect to text.
11
11
  */
12
12
  let Typewriter = class Typewriter extends GodownElement {
13
13
  constructor() {