@native-dom/runtime 0.0.2

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 (51) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +44 -0
  3. package/dist/attributes.d.ts +20 -0
  4. package/dist/attributes.d.ts.map +1 -0
  5. package/dist/attributes.js +145 -0
  6. package/dist/attributes.js.map +1 -0
  7. package/dist/css.d.ts +139 -0
  8. package/dist/css.d.ts.map +1 -0
  9. package/dist/css.js +573 -0
  10. package/dist/css.js.map +1 -0
  11. package/dist/custom-elements.d.ts +22 -0
  12. package/dist/custom-elements.d.ts.map +1 -0
  13. package/dist/custom-elements.js +62 -0
  14. package/dist/custom-elements.js.map +1 -0
  15. package/dist/errors.d.ts +4 -0
  16. package/dist/errors.d.ts.map +1 -0
  17. package/dist/errors.js +7 -0
  18. package/dist/errors.js.map +1 -0
  19. package/dist/event-init.d.ts +93 -0
  20. package/dist/event-init.d.ts.map +1 -0
  21. package/dist/event-init.js +2 -0
  22. package/dist/event-init.js.map +1 -0
  23. package/dist/events.d.ts +164 -0
  24. package/dist/events.d.ts.map +1 -0
  25. package/dist/events.js +470 -0
  26. package/dist/events.js.map +1 -0
  27. package/dist/geometry.d.ts +46 -0
  28. package/dist/geometry.d.ts.map +1 -0
  29. package/dist/geometry.js +73 -0
  30. package/dist/geometry.js.map +1 -0
  31. package/dist/history.d.ts +16 -0
  32. package/dist/history.d.ts.map +1 -0
  33. package/dist/history.js +64 -0
  34. package/dist/history.js.map +1 -0
  35. package/dist/index.d.ts +824 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +3685 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/observers.d.ts +49 -0
  40. package/dist/observers.d.ts.map +1 -0
  41. package/dist/observers.js +59 -0
  42. package/dist/observers.js.map +1 -0
  43. package/dist/platform.d.ts +77 -0
  44. package/dist/platform.d.ts.map +1 -0
  45. package/dist/platform.js +216 -0
  46. package/dist/platform.js.map +1 -0
  47. package/dist/stats.d.ts +33 -0
  48. package/dist/stats.d.ts.map +1 -0
  49. package/dist/stats.js +105 -0
  50. package/dist/stats.js.map +1 -0
  51. package/package.json +51 -0
@@ -0,0 +1,64 @@
1
+ import { PopStateEvent } from "./events.js";
2
+ export class History {
3
+ #index = 0;
4
+ #scrollRestoration = "auto";
5
+ #location;
6
+ #eventTarget;
7
+ #entries;
8
+ constructor(location, eventTarget = null) {
9
+ this.#location = location;
10
+ this.#eventTarget = eventTarget;
11
+ this.#entries = [{ state: null, url: location.href }];
12
+ }
13
+ get length() {
14
+ return this.#entries.length;
15
+ }
16
+ get state() {
17
+ return this.#entries[this.#index]?.state ?? null;
18
+ }
19
+ get scrollRestoration() {
20
+ return this.#scrollRestoration;
21
+ }
22
+ set scrollRestoration(value) {
23
+ if (value === "auto" || value === "manual") {
24
+ this.#scrollRestoration = value;
25
+ }
26
+ }
27
+ pushState(data, _unused, url) {
28
+ const nextUrl = this.#applyUrl(url);
29
+ this.#entries.splice(this.#index + 1);
30
+ this.#entries.push({ state: data, url: nextUrl });
31
+ this.#index = this.#entries.length - 1;
32
+ }
33
+ replaceState(data, _unused, url) {
34
+ const nextUrl = this.#applyUrl(url);
35
+ this.#entries[this.#index] = { state: data, url: nextUrl };
36
+ }
37
+ back() {
38
+ this.go(-1);
39
+ }
40
+ forward() {
41
+ this.go(1);
42
+ }
43
+ go(delta = 0) {
44
+ const numericDelta = Number(delta);
45
+ if (!Number.isFinite(numericDelta) || numericDelta === 0) {
46
+ return;
47
+ }
48
+ const nextIndex = this.#index + Math.trunc(numericDelta);
49
+ if (nextIndex < 0 || nextIndex >= this.#entries.length) {
50
+ return;
51
+ }
52
+ this.#index = nextIndex;
53
+ const entry = this.#entries[this.#index];
54
+ this.#location.href = entry.url;
55
+ this.#eventTarget?.dispatchEvent(new PopStateEvent("popstate", { state: entry.state }));
56
+ }
57
+ #applyUrl(url) {
58
+ if (url !== undefined && url !== null && String(url) !== "") {
59
+ this.#location.href = String(url);
60
+ }
61
+ return this.#location.href;
62
+ }
63
+ }
64
+ //# sourceMappingURL=history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../src/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,aAAa,EAAE,MAAM,aAAa,CAAC;AAQzD,MAAM,OAAO,OAAO;IAClB,MAAM,GAAG,CAAC,CAAC;IACX,kBAAkB,GAAsB,MAAM,CAAC;IACtC,SAAS,CAAW;IACpB,YAAY,CAAqB;IACjC,QAAQ,CAAiB;IAElC,YAAY,QAAkB,EAAE,cAAkC,IAAI;QACpE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC;IACnD,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,IAAI,iBAAiB,CAAC,KAAa;QACjC,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC3C,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAClC,CAAC;IACH,CAAC;IAED,SAAS,CAAC,IAAa,EAAE,OAAe,EAAE,GAAyB;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,YAAY,CAAC,IAAa,EAAE,OAAe,EAAE,GAAyB;QACpE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IAC7D,CAAC;IAED,IAAI;QACF,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACb,CAAC;IAED,EAAE,CAAC,KAAK,GAAG,CAAC;QACV,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACzD,OAAO;QACT,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACvD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;QAChC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,aAAa,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,SAAS,CAAC,GAAoC;QAC5C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;YAC5D,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,CAAC;CACF"}