@react-motion-router/core 2.0.0-beta.sha-7a69b61 → 2.0.0-beta.sha-6a48afe

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.
@@ -11,7 +11,7 @@ interface ScreenTransitionProviderProps {
11
11
  focused: boolean;
12
12
  }
13
13
  interface ScreenTransitionProviderState {
14
- zIndex: React.CSSProperties["zIndex"];
14
+ zIndex: React.CSSProperties['zIndex'];
15
15
  }
16
16
  export declare class ScreenTransitionProvider extends Component<ScreenTransitionProviderProps, ScreenTransitionProviderState> {
17
17
  readonly ref: import('react').RefObject<HTMLElement>;
@@ -25,7 +25,7 @@ export declare class ScreenTransitionProvider extends Component<ScreenTransition
25
25
  componentDidMount(): void;
26
26
  componentWillUnmount(): void;
27
27
  get animationEffect(): AnimationEffect | null;
28
- setZIndex(zIndex: React.CSSProperties["zIndex"]): Promise<void>;
28
+ setZIndex(zIndex: React.CSSProperties['zIndex']): Promise<void>;
29
29
  render(): JSX.Element;
30
30
  }
31
31
  export {};
@@ -6,6 +6,7 @@ export type ScreenChild<E extends ScreenBase = ScreenBase> = E extends ScreenBas
6
6
  export interface AnimationEffectFactoryProps<R extends HTMLElement = HTMLElement> {
7
7
  ref: R | null;
8
8
  index: number;
9
+ screens: string[];
9
10
  exiting: boolean;
10
11
  timeline: AnimationTimeline | null;
11
12
  playbackRate: number;
@@ -24,8 +25,8 @@ export interface LazyExoticComponent<T extends React.ComponentType<any>> extends
24
25
  default: T;
25
26
  };
26
27
  }
27
- export type ScreenState<P extends ScreenBaseProps = ScreenBaseProps> = Map<string, Pick<RoutePropBase<P["config"], PlainObject>, "config" | "params">>;
28
- export interface RoutePropBase<C extends ScreenBaseProps["config"] = {}, P extends PlainObject = PlainObject> {
28
+ export type ScreenState<P extends ScreenBaseProps = ScreenBaseProps> = Map<string, Pick<RoutePropBase<P['config'], PlainObject>, 'config' | 'params'>>;
29
+ export interface RoutePropBase<C extends ScreenBaseProps['config'] = {}, P extends PlainObject = PlainObject> {
29
30
  path: string;
30
31
  resolvedPathname?: string;
31
32
  config: NonNullable<C>;
@@ -39,12 +40,12 @@ export type PlainObject<T = any> = {
39
40
  [key: string]: T;
40
41
  };
41
42
  export interface RouterBaseEventMap extends HTMLElementEventMap {
42
- "transition-start": TransitionStartEvent;
43
- "transition-cancel": TransitionCancelEvent;
44
- "transition-end": TransitionEndEvent;
45
- "motion-progress-start": MotionProgressStartEvent;
46
- "motion-progress": MotionProgressEvent;
47
- "motion-progress-end": MotionProgressEndEvent;
43
+ 'transition-start': TransitionStartEvent;
44
+ 'transition-cancel': TransitionCancelEvent;
45
+ 'transition-end': TransitionEndEvent;
46
+ 'motion-progress-start': MotionProgressStartEvent;
47
+ 'motion-progress': MotionProgressEvent;
48
+ 'motion-progress-end': MotionProgressEndEvent;
48
49
  }
49
50
  export type RouterHTMLElement<E extends RouterBaseEventMap, T extends HTMLElement = HTMLDivElement> = T & {
50
51
  addEventListener<K extends keyof E>(type: K, listener: (this: T, ev: E[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -61,12 +62,12 @@ export interface PathPattern {
61
62
  pattern: string;
62
63
  caseSensitive: boolean;
63
64
  }
64
- export type AnimationDirection = "normal" | "reverse";
65
+ export type AnimationDirection = 'normal' | 'reverse';
65
66
  declare enum SharedElementTransitionTypeEnum {
66
- "morph" = 0,
67
- "fade-through" = 1,
68
- "fade" = 2,
69
- "cross-fade" = 3
67
+ 'morph' = 0,
68
+ 'fade-through' = 1,
69
+ 'fade' = 2,
70
+ 'cross-fade' = 3
70
71
  }
71
72
  export type SharedElementTransitionType = keyof typeof SharedElementTransitionTypeEnum;
72
73
  export interface SharedElementNode {
@@ -81,8 +82,8 @@ export type StylableElement = Element & {
81
82
  style: CSSStyleDeclaration;
82
83
  };
83
84
  export declare function isStylableElement(element: any): element is StylableElement;
84
- export interface LoadNavigationTransition extends Omit<NavigationTransition, "navigationType"> {
85
- navigationType: "load";
85
+ export interface LoadNavigationTransition extends Omit<NavigationTransition, 'navigationType'> {
86
+ navigationType: 'load';
86
87
  }
87
88
  declare global {
88
89
  interface NavigateEvent extends Event {
package/build/index.js CHANGED
@@ -257,10 +257,11 @@ class be extends st {
257
257
  this.props.navigation.removeEventListener("transition-start", this.onAnimationStart), this.props.navigation.removeEventListener("transition-end", this.onAnimationEnd), this.props.navigation.removeEventListener("transition-cancel", this.onAnimationEnd);
258
258
  }
259
259
  get animationEffect() {
260
- const t = this.props.animation, { animation: e, direction: n, hasUAVisualTransition: r } = this.context, { timeline: a, playbackRate: o } = e, { index: l, exiting: m, ref: p } = this;
260
+ const t = this.props.animation, { animation: e, direction: n, hasUAVisualTransition: r } = this.context, { timeline: a, playbackRate: o } = e, { index: l, exiting: m, ref: p } = this, w = this.context.screens.map((R) => R.current?.name);
261
261
  return t?.({
262
262
  ref: p.current,
263
263
  index: l,
264
+ screens: w,
264
265
  exiting: m,
265
266
  timeline: a,
266
267
  direction: n,
@@ -574,8 +575,8 @@ function $t(s) {
574
575
  t = t.to("ms").value;
575
576
  else if (typeof t == "string")
576
577
  throw TypeError("Unknown effect duration keyword.");
577
- const p = t / e, w = p * e / Math.abs(n), k = r + w + a;
578
- t = new CSSUnitValue(p / k * 100, "percent");
578
+ const p = t / e, w = p * e / Math.abs(n), R = r + w + a;
579
+ t = new CSSUnitValue(p / R * 100, "percent");
579
580
  const T = CSS.percent(t.to("percent").value * e / Math.abs(n));
580
581
  return o !== null && (l = h(o, "percent") / m.value), {
581
582
  ...s,
@@ -849,11 +850,11 @@ class $e extends Ot {
849
850
  } = M.getComputedTiming();
850
851
  r.activeDuration = r.activeDuration ? h(r.activeDuration, "ms") + h(Vt, "ms") : Vt, n.duration = n.duration instanceof CSSNumericValue ? n.duration.to("ms").value : n.duration, L = L instanceof CSSNumericValue ? L.to("ms").value : L, typeof L != "string" && (n.duration === "auto" ? n.duration = h(L, "ms") : typeof n.duration != "string" && (n.duration = n.duration ? n.duration + L : L));
851
852
  }
852
- const { timeline: m, startTime: p, currentTime: w } = A.get(this) ?? {}, k = m instanceof E ? "percent" : "ms";
853
+ const { timeline: m, startTime: p, currentTime: w } = A.get(this) ?? {}, R = m instanceof E ? "percent" : "ms";
853
854
  let { duration: T = 0, iterations: X = 1 } = r;
854
855
  if (T === "auto" && (T = 0), typeof T == "string")
855
856
  throw new TypeError("Unknown effect duration keyword.");
856
- return r.duration = T, r.activeDuration = Et(T) * X, r.startTime = p ?? void 0, r.localTime = w, r.currentIteration = ne(r, ee(r, i(this, St, ie))), m instanceof E ? $t(r) : (m instanceof DocumentTimeline && (r.progress = w && h(w, k) / h(l, k)), r);
857
+ return r.duration = T, r.activeDuration = Et(T) * X, r.startTime = p ?? void 0, r.localTime = w, r.currentIteration = ne(r, ee(r, i(this, St, ie))), m instanceof E ? $t(r) : (m instanceof DocumentTimeline && (r.progress = w && h(w, R) / h(l, R)), r);
857
858
  }
858
859
  updateTiming(t) {
859
860
  c(this, J, {
@@ -870,13 +871,13 @@ J = /* @__PURE__ */ new WeakMap(), St = /* @__PURE__ */ new WeakSet(), ie = func
870
871
  const { playbackRate: s = 1 } = A.get(this) ?? {};
871
872
  return s < 0 ? "backwards" : "forwards";
872
873
  };
873
- var d, x, ht, v, S, P, u, y, R, z, O, ot, W, mt, Rt, Q, lt, q, tt, kt, Kt, xt, qt, Ct, zt, B, G, ct, gt, Mt, I, V, D, $, yt, Lt, Pt;
874
+ var d, x, ht, v, S, P, u, y, k, z, O, ot, W, mt, Rt, Q, lt, q, tt, kt, Kt, xt, qt, Ct, zt, B, G, ct, gt, Mt, I, V, D, $, yt, Lt, Pt;
874
875
  const se = class extends EventTarget {
875
876
  constructor(t, e) {
876
877
  super(), g(this, mt), g(this, Q), g(this, q), g(this, kt), g(this, xt), g(this, Ct), g(this, B), g(this, gt), g(this, I), g(this, D), j(this, "id", ""), j(this, "oncancel", null), j(this, "onfinish", null), j(this, "onremove", null), g(this, d, void 0), g(this, x, void 0), g(this, ht, "active"), g(this, v, {
877
878
  task: null,
878
879
  playbackRate: null
879
- }), g(this, S, new nt()), g(this, P, new nt()), g(this, u, null), g(this, y, null), g(this, R, []), g(this, z, null), g(this, O, !1), g(this, ot, 0), g(this, W, 1), g(this, ct, () => {
880
+ }), g(this, S, new nt()), g(this, P, new nt()), g(this, u, null), g(this, y, null), g(this, k, []), g(this, z, null), g(this, O, !1), g(this, ot, 0), g(this, W, 1), g(this, ct, () => {
880
881
  f(this, B, G).call(this);
881
882
  }), g(this, yt, () => {
882
883
  var n;
@@ -941,7 +942,7 @@ const se = class extends EventTarget {
941
942
  this.playState !== "paused" && (this.currentTime === null && c(this, O, !0), i(this, v).task && (i(this, v).task = null), f(this, Q, lt).call(this), i(this, v).task = "pause");
942
943
  }
943
944
  persist() {
944
- i(this, R).forEach((t) => t.persist()), c(this, ht, "persisted");
945
+ i(this, k).forEach((t) => t.persist()), c(this, ht, "persisted");
945
946
  }
946
947
  finish() {
947
948
  var t;
@@ -956,15 +957,15 @@ const se = class extends EventTarget {
956
957
  const o = h(i(this, d).currentTime, a);
957
958
  c(this, u, o - r / n);
958
959
  }
959
- i(this, v).task === "pause" && i(this, u) !== null && (c(this, y, null), f(this, q, tt).call(this), i(this, S).resolve(this)), i(this, v).task === "play" && i(this, u) !== null && (f(this, q, tt).call(this), i(this, S).resolve(this)), f(this, I, V).call(this, !0), i(this, R).forEach((a) => a.finish());
960
+ i(this, v).task === "pause" && i(this, u) !== null && (c(this, y, null), f(this, q, tt).call(this), i(this, S).resolve(this)), i(this, v).task === "play" && i(this, u) !== null && (f(this, q, tt).call(this), i(this, S).resolve(this)), f(this, I, V).call(this, !0), i(this, k).forEach((a) => a.finish());
960
961
  }
961
962
  commitStyles() {
962
- i(this, R).forEach((t) => {
963
+ i(this, k).forEach((t) => {
963
964
  t.effect instanceof pt && (t.effect.target === null || t.effect.pseudoElement !== null) || t.commitStyles();
964
965
  });
965
966
  }
966
967
  cancel() {
967
- this.playState !== "idle" && (f(this, D, $).call(this), i(this, S).reject(new DOMException("The user aborted a request", "AbortError")), f(this, q, tt).call(this), c(this, S, new nt()), i(this, P).state === "pending" && i(this, P).reject(new DOMException("The user aborted a request", "AbortError")), c(this, P, new nt()), i(this, R).forEach((t) => t.cancel())), c(this, u, null), c(this, y, null);
968
+ this.playState !== "idle" && (f(this, D, $).call(this), i(this, S).reject(new DOMException("The user aborted a request", "AbortError")), f(this, q, tt).call(this), c(this, S, new nt()), i(this, P).state === "pending" && i(this, P).reject(new DOMException("The user aborted a request", "AbortError")), c(this, P, new nt()), i(this, k).forEach((t) => t.cancel())), c(this, u, null), c(this, y, null);
968
969
  }
969
970
  updatePlaybackRate(t) {
970
971
  var e;
@@ -998,12 +999,12 @@ const se = class extends EventTarget {
998
999
  super.removeEventListener(t, e, n);
999
1000
  }
1000
1001
  set playbackRate(t) {
1001
- c(this, W, t), i(this, R).forEach((e) => {
1002
+ c(this, W, t), i(this, k).forEach((e) => {
1002
1003
  e.playbackRate *= t;
1003
1004
  });
1004
1005
  }
1005
1006
  set startTime(t) {
1006
- c(this, u, h(t)), i(this, R).forEach((e) => e.startTime = t);
1007
+ c(this, u, h(t)), i(this, k).forEach((e) => e.startTime = t);
1007
1008
  }
1008
1009
  set currentTime(t) {
1009
1010
  var e;
@@ -1018,22 +1019,22 @@ const se = class extends EventTarget {
1018
1019
  if (r === t)
1019
1020
  return;
1020
1021
  i(this, d) instanceof E && i(this, d).removeEventListener("update", i(this, ct));
1021
- const a = this.playState, o = r instanceof E ? "percent" : "ms", l = h(this.currentTime, o), { progress: m = null, endTime: p = 0 } = ((e = i(this, x)) == null ? void 0 : e.getComputedTiming()) ?? {}, w = h(p, o), k = r instanceof E, T = t instanceof E, X = t instanceof DocumentTimeline, C = this.pending;
1022
+ const a = this.playState, o = r instanceof E ? "percent" : "ms", l = h(this.currentTime, o), { progress: m = null, endTime: p = 0 } = ((e = i(this, x)) == null ? void 0 : e.getComputedTiming()) ?? {}, w = h(p, o), R = r instanceof E, T = t instanceof E, X = t instanceof DocumentTimeline, C = this.pending;
1022
1023
  if (T)
1023
- c(this, d, t), t.addEventListener("update", i(this, ct)), f(this, D, $).call(this), c(this, O, !0), c(this, u, null), c(this, y, null), (a === "running" || a === "finished") && ((!i(this, S) || i(this, S).state === "resolved") && f(this, Q, lt).call(this), i(this, v).task = "play", i(this, R).forEach((M) => M.pause())), a === "paused" && m !== null && c(this, y, m * w), C && ((!i(this, S) || i(this, S).state === "resolved") && f(this, Q, lt).call(this), a === "paused" ? i(this, v).task = "pause" : i(this, v).task = "play"), i(this, u) !== null && c(this, y, null), f(this, I, V).call(this, !1);
1024
+ c(this, d, t), t.addEventListener("update", i(this, ct)), f(this, D, $).call(this), c(this, O, !0), c(this, u, null), c(this, y, null), (a === "running" || a === "finished") && ((!i(this, S) || i(this, S).state === "resolved") && f(this, Q, lt).call(this), i(this, v).task = "play", i(this, k).forEach((M) => M.pause())), a === "paused" && m !== null && c(this, y, m * w), C && ((!i(this, S) || i(this, S).state === "resolved") && f(this, Q, lt).call(this), a === "paused" ? i(this, v).task = "pause" : i(this, v).task = "play"), i(this, u) !== null && c(this, y, null), f(this, I, V).call(this, !1);
1024
1025
  else if (X) {
1025
- if (c(this, d, t), k) {
1026
+ if (c(this, d, t), R) {
1026
1027
  if (l !== null && m !== null) {
1027
1028
  const { endTime: M = 0 } = ((n = i(this, x)) == null ? void 0 : n.getComputedTiming()) ?? {}, L = h(M, "ms");
1028
1029
  this.currentTime = m * L;
1029
1030
  }
1030
1031
  switch (a) {
1031
1032
  case "paused":
1032
- i(this, R).forEach((M) => M.pause());
1033
+ i(this, k).forEach((M) => M.pause());
1033
1034
  break;
1034
1035
  case "running":
1035
1036
  case "finished":
1036
- i(this, R).forEach((M) => M.play());
1037
+ i(this, k).forEach((M) => M.play());
1037
1038
  }
1038
1039
  }
1039
1040
  } else
@@ -1100,7 +1101,7 @@ const se = class extends EventTarget {
1100
1101
  return i(this, x);
1101
1102
  }
1102
1103
  };
1103
- d = /* @__PURE__ */ new WeakMap(), x = /* @__PURE__ */ new WeakMap(), ht = /* @__PURE__ */ new WeakMap(), v = /* @__PURE__ */ new WeakMap(), S = /* @__PURE__ */ new WeakMap(), P = /* @__PURE__ */ new WeakMap(), u = /* @__PURE__ */ new WeakMap(), y = /* @__PURE__ */ new WeakMap(), R = /* @__PURE__ */ new WeakMap(), z = /* @__PURE__ */ new WeakMap(), O = /* @__PURE__ */ new WeakMap(), ot = /* @__PURE__ */ new WeakMap(), W = /* @__PURE__ */ new WeakMap(), mt = /* @__PURE__ */ new WeakSet(), Rt = function(s) {
1104
+ d = /* @__PURE__ */ new WeakMap(), x = /* @__PURE__ */ new WeakMap(), ht = /* @__PURE__ */ new WeakMap(), v = /* @__PURE__ */ new WeakMap(), S = /* @__PURE__ */ new WeakMap(), P = /* @__PURE__ */ new WeakMap(), u = /* @__PURE__ */ new WeakMap(), y = /* @__PURE__ */ new WeakMap(), k = /* @__PURE__ */ new WeakMap(), z = /* @__PURE__ */ new WeakMap(), O = /* @__PURE__ */ new WeakMap(), ot = /* @__PURE__ */ new WeakMap(), W = /* @__PURE__ */ new WeakMap(), mt = /* @__PURE__ */ new WeakSet(), Rt = function(s) {
1104
1105
  var t;
1105
1106
  const e = h(((t = i(this, d)) == null ? void 0 : t.currentTime) ?? null);
1106
1107
  if (s === null && e !== null)
@@ -1109,7 +1110,7 @@ d = /* @__PURE__ */ new WeakMap(), x = /* @__PURE__ */ new WeakMap(), ht = /* @_
1109
1110
  }, Q = /* @__PURE__ */ new WeakSet(), lt = function() {
1110
1111
  i(this, S).state !== "pending" && c(this, S, new nt()), cancelAnimationFrame(i(this, ot)), c(this, ot, requestAnimationFrame(() => {
1111
1112
  var s;
1112
- (((s = i(this, d)) == null ? void 0 : s.currentTime) ?? null) !== null && (f(this, Ct, zt).call(this), i(this, v).task === "play" && (i(this, u) !== null || i(this, y) !== null) ? f(this, kt, Kt).call(this) : i(this, v).task === "pause" && f(this, xt, qt).call(this), Promise.all(i(this, R).map((t) => t.finished)).then(i(this, yt)), Promise.all(i(this, R).map((t) => new Promise((e) => t.onremove = e))).then(i(this, Pt)), Promise.all(i(this, R).map((t) => new Promise((e) => t.oncancel = e))).then(i(this, Lt)).then(() => c(this, ht, "removed")));
1113
+ (((s = i(this, d)) == null ? void 0 : s.currentTime) ?? null) !== null && (f(this, Ct, zt).call(this), i(this, v).task === "play" && (i(this, u) !== null || i(this, y) !== null) ? f(this, kt, Kt).call(this) : i(this, v).task === "pause" && f(this, xt, qt).call(this), Promise.all(i(this, k).map((t) => t.finished)).then(i(this, yt)), Promise.all(i(this, k).map((t) => new Promise((e) => t.onremove = e))).then(i(this, Pt)), Promise.all(i(this, k).map((t) => new Promise((e) => t.oncancel = e))).then(i(this, Lt)).then(() => c(this, ht, "removed")));
1113
1114
  }));
1114
1115
  }, q = /* @__PURE__ */ new WeakSet(), tt = function() {
1115
1116
  cancelAnimationFrame(i(this, ot)), i(this, v).task = null;
@@ -1127,14 +1128,14 @@ d = /* @__PURE__ */ new WeakMap(), x = /* @__PURE__ */ new WeakMap(), ht = /* @_
1127
1128
  const r = this.playbackRate;
1128
1129
  r === 0 ? (c(this, y, null), c(this, u, h(t, e))) : c(this, u, h(t, e) - n / r);
1129
1130
  }
1130
- i(this, S).state === "pending" && i(this, S).resolve(this), f(this, I, V).call(this, !1), f(this, B, G).call(this), i(this, v).task = null, this.timeline instanceof DocumentTimeline && i(this, R).forEach((n) => n.play());
1131
+ i(this, S).state === "pending" && i(this, S).resolve(this), f(this, I, V).call(this, !1), f(this, B, G).call(this), i(this, v).task = null, this.timeline instanceof DocumentTimeline && i(this, k).forEach((n) => n.play());
1131
1132
  }, xt = /* @__PURE__ */ new WeakSet(), qt = function() {
1132
1133
  var s;
1133
1134
  const t = ((s = this.timeline) == null ? void 0 : s.currentTime) ?? null;
1134
1135
  if (t === null)
1135
1136
  return;
1136
1137
  const e = i(this, d) instanceof E ? "percent" : "ms", n = t;
1137
- i(this, u) !== null && i(this, y) === null && c(this, y, (h(n, e) - i(this, u)) * this.playbackRate), f(this, D, $).call(this), c(this, u, null), i(this, S).resolve(this), f(this, I, V).call(this, !1), f(this, B, G).call(this), i(this, v).task = null, i(this, R).forEach((r) => r.pause());
1138
+ i(this, u) !== null && i(this, y) === null && c(this, y, (h(n, e) - i(this, u)) * this.playbackRate), f(this, D, $).call(this), c(this, u, null), i(this, S).resolve(this), f(this, I, V).call(this, !1), f(this, B, G).call(this), i(this, v).task = null, i(this, k).forEach((r) => r.pause());
1138
1139
  }, Ct = /* @__PURE__ */ new WeakSet(), zt = function() {
1139
1140
  if (i(this, O) && !(!i(this, d) || !i(this, d).currentTime) && !(this.playState === "idle" || this.playState === "paused" && i(this, y) !== null)) {
1140
1141
  if (i(this, d) instanceof E) {
@@ -1158,7 +1159,7 @@ d = /* @__PURE__ */ new WeakMap(), x = /* @__PURE__ */ new WeakMap(), ht = /* @_
1158
1159
  r = i(this, y);
1159
1160
  else
1160
1161
  return;
1161
- i(this, R).forEach((a) => a.currentTime = r);
1162
+ i(this, k).forEach((a) => a.currentTime = r);
1162
1163
  }, ct = /* @__PURE__ */ new WeakMap(), gt = /* @__PURE__ */ new WeakSet(), Mt = function() {
1163
1164
  var s;
1164
1165
  let t = i(this, x);
@@ -1176,7 +1177,7 @@ d = /* @__PURE__ */ new WeakMap(), x = /* @__PURE__ */ new WeakMap(), ht = /* @_
1176
1177
  const n = i(this, d) instanceof E ? document.timeline : i(this, d);
1177
1178
  e.push(new Me(t, n));
1178
1179
  }
1179
- c(this, R, e);
1180
+ c(this, k, e);
1180
1181
  }, I = /* @__PURE__ */ new WeakSet(), V = function(s) {
1181
1182
  var t, e;
1182
1183
  const n = ((t = i(this, d)) == null ? void 0 : t.currentTime) ?? null, r = i(this, d) instanceof E ? "percent" : "ms";
@@ -1190,9 +1191,9 @@ d = /* @__PURE__ */ new WeakMap(), x = /* @__PURE__ */ new WeakMap(), ht = /* @_
1190
1191
  p = p.to("ms").value;
1191
1192
  else if (typeof p == "string")
1192
1193
  throw new TypeError("Unknown effect duration keyword.");
1193
- const k = o + p * m + l;
1194
+ const R = o + p * m + l;
1194
1195
  let T = h(i(this, z), r);
1195
- w > 0 && a >= k && i(this, z) !== null ? ((T === null || T < k) && (T = k), c(this, y, s ? a : T)) : w < 0 && a <= 0 ? ((T === null || T > 0) && (T = 0), c(this, y, s ? a : T)) : w !== 0 && (s && i(this, y) !== null && (n !== null ? c(this, u, h(n, r) - i(this, y) / w) : c(this, u, null)), c(this, y, null));
1196
+ w > 0 && a >= R && i(this, z) !== null ? ((T === null || T < R) && (T = R), c(this, y, s ? a : T)) : w < 0 && a <= 0 ? ((T === null || T > 0) && (T = 0), c(this, y, s ? a : T)) : w !== 0 && (s && i(this, y) !== null && (n !== null ? c(this, u, h(n, r) - i(this, y) / w) : c(this, u, null)), c(this, y, null));
1196
1197
  }
1197
1198
  f(this, B, G).call(this), c(this, z, this.currentTime), this.playState === "finished" ? i(this, P).state === "pending" && i(this, yt).call(this) : i(this, P).state === "resolved" && c(this, P, new nt());
1198
1199
  }, D = /* @__PURE__ */ new WeakSet(), $ = function() {
@@ -1219,8 +1220,8 @@ class At extends Ot {
1219
1220
  getComputedTiming() {
1220
1221
  const t = this.getTiming(), e = { ...t };
1221
1222
  for (let w = 0; w < this.children.length; w++) {
1222
- const k = this.children.item(w);
1223
- if (!k)
1223
+ const R = this.children.item(w);
1224
+ if (!R)
1224
1225
  continue;
1225
1226
  let {
1226
1227
  delay: T = 0,
@@ -1228,7 +1229,7 @@ class At extends Ot {
1228
1229
  duration: C = "auto",
1229
1230
  activeDuration: M = 0,
1230
1231
  endTime: L = 0
1231
- } = k.getComputedTiming();
1232
+ } = R.getComputedTiming();
1232
1233
  t.delay = t.delay ? Math.min(t.delay, T) : T, t.endDelay = t.endDelay ? Math.max(t.endDelay, X) : X, e.endTime = e.endTime ? Math.max(h(e.endTime, "ms"), h(L, "ms")) : L, e.activeDuration = e.activeDuration ? Math.max(h(e.activeDuration, "ms"), h(M, "ms")) : M, t.duration = t.duration instanceof CSSNumericValue ? t.duration.to("ms").value : t.duration, C = C instanceof CSSNumericValue ? C.to("ms").value : C, typeof C != "string" && (t.duration === "auto" ? t.duration = h(C, "ms") : typeof t.duration != "string" && (t.duration = t.duration ? Math.max(t.duration, C) : C));
1233
1234
  }
1234
1235
  const { timeline: n, startTime: r, currentTime: a } = A.get(this) ?? {}, o = n instanceof E ? "percent" : "ms";
@@ -1401,8 +1402,8 @@ class Ve extends st {
1401
1402
  const m = l.getBoundingClientRect(), p = a.clone(), w = l.clone();
1402
1403
  if (!w || !p)
1403
1404
  continue;
1404
- const k = Array.from(/* @__PURE__ */ new Set([...l.styles, ...a.styles]));
1405
- a.transitionType !== "morph" ? (w.id = `${r}-start`, w.style.position = "absolute", w.style.gridArea = "1 / 1", w.style.margin = "0", this.copyStyles(l.ref.current?.firstElementChild, w, k), this.copyStyles(a.ref.current?.firstElementChild, p, k), w.style.width = `${m.width}px`, w.style.height = `${m.height}px`, p.style.width = `${o.width}px`, p.style.height = `${o.height}px`, this.ref.current?.prepend(w)) : (this.copyStyles(l.ref.current?.firstElementChild, p, k), p.style.width = `${m.width}px`, p.style.height = `${m.height}px`), p.id = `${r}${a.transitionType === "morph" ? "" : "-end"}`, p.style.position = "absolute", p.style.gridArea = "1 / 1", p.style.margin = "0", this.ref.current?.prepend(p), l.hide(), a.hide();
1405
+ const R = Array.from(/* @__PURE__ */ new Set([...l.styles, ...a.styles]));
1406
+ a.transitionType !== "morph" ? (w.id = `${r}-start`, w.style.position = "absolute", w.style.gridArea = "1 / 1", w.style.margin = "0", this.copyStyles(l.ref.current?.firstElementChild, w, R), this.copyStyles(a.ref.current?.firstElementChild, p, R), w.style.width = `${m.width}px`, w.style.height = `${m.height}px`, p.style.width = `${o.width}px`, p.style.height = `${o.height}px`, this.ref.current?.prepend(w)) : (this.copyStyles(l.ref.current?.firstElementChild, p, R), p.style.width = `${m.width}px`, p.style.height = `${m.height}px`), p.id = `${r}${a.transitionType === "morph" ? "" : "-end"}`, p.style.position = "absolute", p.style.gridArea = "1 / 1", p.style.margin = "0", this.ref.current?.prepend(p), l.hide(), a.hide();
1406
1407
  const T = async () => {
1407
1408
  this.props.direction === "forwards" ? a.unhide() : l.unhide(), p.remove(), w.remove();
1408
1409
  };
@@ -1435,7 +1436,7 @@ class je extends st {
1435
1436
  sharedElementTransitionLayer = K();
1436
1437
  animation = new Oe();
1437
1438
  #t = "normal";
1438
- #e = new Array();
1439
+ #e = [];
1439
1440
  state = {
1440
1441
  gestureNavigating: !1,
1441
1442
  progress: 1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/SharedElementSceneContext.ts","../src/SharedElement.tsx","../src/common/utils.ts","../src/common/events.ts","../src/ScreenTransitionLayerContext.tsx","../src/ScreenTransitionProvider.tsx","../src/RouterContext.ts","../src/RoutePropContext.ts","../src/SharedElementScene.ts","../src/ScreenBase.tsx","../src/common/types.ts","../../web-animations-extension/build/index.js","../src/SharedElementTransitionLayer.tsx","../src/MotionContext.ts","../src/ScreenTransitionLayer.tsx","../src/RouterBase.tsx","../src/MetaData.ts","../src/NavigationBase.ts","../src/common/hooks.ts","../src/common/constants.ts"],"sourcesContent":["import { createContext } from \"react\";\nimport { SharedElementScene } from \"./SharedElementScene\";\n\nexport const SharedElementSceneContext = createContext<SharedElementScene>(null!);","import { Component, createRef } from 'react';\nimport { SharedElementTransitionType, StyleKeyList } from './common/types';\nimport { SharedElementSceneContext } from './SharedElementSceneContext';\n\ninterface SharedElementConfig extends OptionalEffectTiming {\n type?: SharedElementTransitionType;\n transformOrigin?: React.CSSProperties[\"transformOrigin\"];\n styles?: StyleKeyList;\n deepClone?: boolean;\n}\n\ninterface SharedElementProps {\n id: string;\n children: React.ReactElement;\n disabled?: boolean;\n config?: SharedElementConfig;\n}\n\ninterface SharedElementState {}\n\nexport class SharedElement extends Component<SharedElementProps, SharedElementState> {\n public readonly ref = createRef<HTMLDivElement>();\n static readonly contextType = SharedElementSceneContext;\n declare context: React.ContextType<typeof SharedElementSceneContext>;\n\n componentDidMount(): void {\n this.scene.addNode(this);\n }\n\n componentDidUpdate(prevProps: SharedElementProps) {\n if (this.props.id !== prevProps.id) {\n this.scene.removeNode(prevProps.id.toString());\n this.scene.addNode(this);\n }\n }\n\n componentWillUnmount(): void {\n this.scene.removeNode(this.id);\n }\n\n get styles(): StyleKeyList {\n if (this.props.config?.styles) {\n return this.props.config.styles;\n }\n return [];\n }\n\n get canTransition() {\n return !this.props.disabled\n && this.scene.canTransition;\n }\n\n get scene() {\n return this.context;\n }\n\n get id() {\n return `shared-element-${this.props.id.toString()}`;\n }\n\n get transitionType(): SharedElementTransitionType {\n return this.props.config?.type ?? this.scene.previousScene?.nodes.get(this.id)?.transitionType ?? \"morph\";\n }\n\n getBoundingClientRect() {\n return this.ref.current?.firstElementChild?.getBoundingClientRect() ?? new DOMRect();\n }\n\n public clone() {\n if (!this.ref.current) return null;\n const deepClone = this.props.config?.deepClone ?? true;\n return this.ref.current.firstElementChild?.cloneNode(deepClone) as HTMLElement;\n }\n\n public hide() {\n if (!this.ref.current) return;\n this.ref.current.style.visibility = 'hidden';\n }\n\n public unhide() {\n if (!this.ref.current) return;\n this.ref.current.style.visibility = 'visible';\n }\n\n render() {\n return (\n <div\n ref={this.ref}\n id={this.id}\n style={{ display: \"contents\" }}\n >\n {this.props.children}\n </div>\n );\n }\n}","import { cloneElement, lazy as ReactLazy } from 'react';\nimport { ClonedElementType, ElementPropType, LazyExoticComponent, MatchedRoute, PathPattern } from './types';\n\nexport function resolveBaseURLFromPattern(pattern: string, pathname: string) {\n if (!pattern.endsWith('*')) pattern += '**'; // allows us to match nested routes\n const origin = window.location.origin;\n const baseURLMatch = new URLPattern(pattern, origin).exec(pathname, origin);\n if (!baseURLMatch) return null;\n\n const groups = Object.keys(baseURLMatch.pathname.groups)\n .filter((key) => !isNaN(Number(key)))\n .map((key) => baseURLMatch.pathname.groups[key])\n .filter((group) => group !== undefined);\n const nestedPathnameGroup = groups.at(-1) ?? '';\n // derive concrete baseURL\n return new URL(pathname.replace(nestedPathnameGroup, ''), window.location.origin);\n}\n\nexport function matchRoute(\n pathnamePattern: string,\n pathname: string,\n baseURLPattern: string = `${window.location.origin}/`,\n caseSensitive: boolean = true\n): MatchedRoute | null {\n if (!caseSensitive) {\n pathnamePattern = pathnamePattern.toLowerCase();\n pathname = pathname.toLowerCase();\n }\n\n const baseURL = resolveBaseURLFromPattern(baseURLPattern, pathname)?.href;\n if (!baseURL) return null;\n\n const match = new URLPattern({ baseURL, pathname: pathnamePattern }).exec({ pathname, baseURL });\n const params = match?.pathname.groups ?? {};\n if (match) {\n return {\n params,\n caseSensitive,\n };\n }\n return null;\n}\n\nexport function includesRoute(pathnamePatterns: PathPattern[], pathname: string, baseURL: string = window.location.origin) {\n return pathnamePatterns.some(({ pattern, caseSensitive }) => matchRoute(pattern, pathname, baseURL, caseSensitive));\n}\n\nexport function dispatchEvent<T>(event: CustomEvent<T> | Event, target: HTMLElement | EventTarget = window) {\n return new Promise<boolean>((resolve) => {\n queueMicrotask(() => resolve(\n target.dispatchEvent(event)\n ));\n });\n}\n\nexport function lazy<T extends React.ComponentType<any>>(\n factory: () => Promise<{ default: T }>\n): LazyExoticComponent<T> {\n const Component = ReactLazy(factory) as LazyExoticComponent<T>;\n Component.load = async () => {\n Component.module ??= await factory();\n return Component.module;\n };\n return Component;\n}\n\nexport function isNavigationSupported() {\n return Boolean(window.navigation);\n}\n\nexport function isURLPatternSupported() {\n // @ts-ignore: Property 'UrlPattern' does not exist \n return Boolean(globalThis.URLPattern);\n}\n\nexport async function polyfillURLPattern() {\n const { URLPattern } = await import(/*webpackIgnore: true*/ 'urlpattern-polyfill');\n // @ts-ignore: Property 'UrlPattern' does not exist \n globalThis.URLPattern = URLPattern;\n}\n\nexport async function polyfillNavigation() {\n const { applyPolyfill } = await import(/*webpackIgnore: true*/ '@virtualstate/navigation');\n applyPolyfill({\n history: true,\n interceptEvents: true,\n patch: true,\n persist: true,\n persistState: true,\n });\n}\n\nexport async function PromiseAllDynamic<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>[]> {\n const awaited = [];\n for (const value of values) {\n awaited.push(await value);\n }\n\n return awaited;\n}\n\nexport function toCamelCase(value: string) {\n return value.replace(/-([a-z])/g, (g) => g[1].toUpperCase());\n}\n\nexport function cloneAndInject<\n C extends React.CElement<any, any>,\n IP extends Partial<ElementPropType<C>>\n>(element: C, injectProps: IP) {\n return cloneElement(element, injectProps) as ClonedElementType<C, IP>;\n}","import { LoadNavigationTransition } from \"./types\";\nimport { PromiseAllDynamic } from \"./utils\";\n\nexport class TransitionStartEvent extends Event {\n\tconstructor() {\n\t\tsuper('transition-start');\n\t}\n}\n\nexport class TransitionCancelEvent extends Event {\n\tconstructor() {\n\t\tsuper('transition-cancel');\n\t}\n}\n\nexport class TransitionEndEvent extends Event {\n\tconstructor() {\n\t\tsuper('transition-end');\n\t}\n}\n\nexport class MotionProgressStartEvent extends Event {\n\tconstructor() {\n\t\tsuper('motion-progress-start');\n\t}\n}\n\nexport class MotionProgressEvent extends Event {\n\treadonly progress: number;\n\n\tconstructor(progress: number) {\n\t\tsuper('motion-progress');\n\t\tthis.progress = progress;\n\t}\n}\n\nexport class MotionProgressEndEvent extends Event {\n\tconstructor() {\n\t\tsuper('motion-progress-end');\n\t}\n}\n\nexport class LoadEvent extends Event implements Omit<NavigateEvent, 'navigationType' | 'commit'> {\n\t#navigationType = \"load\" as const;\n\t#userInitiated: boolean = false;\n\t#canIntercept: boolean = true;\n\t#hashChange: boolean = false;\n\t#formData: FormData | null = null;\n\t#downloadRequest: string | null = null;\n\t#destination: NavigationDestination;\n\t#signal: AbortSignal;\n\t#abortable = new AbortController();\n\t#intercepted = false;\n\t#thenables: Promise<void>[] = [];\n\t#transition: LoadNavigationTransition | null = null;\n\treadonly hasUAVisualTransition = false;\n\n\tconstructor() {\n\t\tsuper('navigate', { cancelable: false, bubbles: false, composed: false });\n\t\tconst currentEntry = window.navigation.currentEntry;\n\t\tif (!currentEntry) throw new Error(\"Current entry is null\");\n\t\tthis.#destination = {\n\t\t\tgetState() {\n\t\t\t\treturn currentEntry.getState();\n\t\t\t},\n\t\t\turl: currentEntry.url ?? new URL(window.location.href).href,\n\t\t\tkey: currentEntry.key,\n\t\t\tindex: currentEntry.index,\n\t\t\tid: currentEntry.id,\n\t\t\tsameDocument: true\n\t\t};\n\n\t\tthis.#signal = this.#abortable.signal;\n\t\twindow.navigation.addEventListener('navigate', this.#onNavigate, { signal: this.#signal });\n\t}\n\n\t#onNavigate = (e: Event) => {\n\t\tif (e !== this) {\n\t\t\tthis.#abortable.abort();\n\t\t} else if (!this.#thenables.length) {\n\t\t\twindow.navigation.removeEventListener('navigate', this.#onNavigate);\n\t\t}\n\t}\n\n\tintercept(options?: NavigationInterceptOptions | undefined): void {\n\t\tif (this.#intercepted) throw new DOMException(\"Failed to execute 'intercept' on 'NavigateEvent': intercept() may only be called while the navigate event is being dispatched.\");\n\t\tlet finish: Function | null = null;\n\t\tif (!this.#transition) {\n\t\t\tthis.#transition = {\n\t\t\t\tfinished: new Promise((resolve) => finish = resolve),\n\t\t\t\tfrom: window.navigation.currentEntry!,\n\t\t\t\tnavigationType: \"load\" as const\n\t\t\t};\n\t\t}\n\t\tconst thenable = options?.handler?.();\n\t\tif (thenable) this.#thenables.push(thenable);\n\t\tif (this.#thenables.length === 1) {\n\t\t\tPromiseAllDynamic(this.#thenables).then(() => {\n\t\t\t\tthis.#intercepted = true;\n\t\t\t\twindow.removeEventListener('navigate', this.#onNavigate);\n\t\t\t\tfinish?.();\n\t\t\t});\n\t\t}\n\t}\n\n\tscroll(): void {\n\t\tthrow new Error(\"Method not implemented.\");\n\t}\n\n\tget transition() {\n\t\treturn this.#transition;\n\t}\n\n\tget navigationType() {\n\t\treturn this.#navigationType;\n\t}\n\n\tget userInitiated() {\n\t\treturn this.#userInitiated;\n\t}\n\n\tget canIntercept() {\n\t\treturn this.#canIntercept;\n\t}\n\n\tget hashChange() {\n\t\treturn this.#hashChange;\n\t}\n\n\tget formData() {\n\t\treturn this.#formData;\n\t}\n\n\tget downloadRequest() {\n\t\treturn this.#downloadRequest;\n\t}\n\n\tget destination() {\n\t\treturn this.#destination;\n\t}\n\n\tget signal() {\n\t\treturn this.#signal;\n\t}\n}","import { createContext } from \"react\";\nimport { ScreenTransitionLayer } from \"./ScreenTransitionLayer\";\n\nexport const ScreenTransitionLayerContext = createContext<ScreenTransitionLayer>(null!);\n","import { ScreenTransitionLayerContext } from './ScreenTransitionLayerContext';\nimport { AnimationEffectFactory } from './common/types';\nimport { NavigationBase } from './NavigationBase';\nimport { Component, ElementType, createRef } from 'react';\n\ninterface ScreenTransitionProviderProps {\n id: string;\n animation?: AnimationEffectFactory;\n children: React.ReactNode\n navigation: NavigationBase;\n renderAs: ElementType;\n focused: boolean;\n}\n\ninterface ScreenTransitionProviderState {\n zIndex: React.CSSProperties[\"zIndex\"];\n}\n\nexport class ScreenTransitionProvider extends Component<ScreenTransitionProviderProps, ScreenTransitionProviderState> {\n public readonly ref = createRef<HTMLElement>();\n static readonly contextType = ScreenTransitionLayerContext;\n declare context: React.ContextType<typeof ScreenTransitionLayerContext>;\n public index = 0;\n public exiting = false;\n\n state: ScreenTransitionProviderState = {\n zIndex: 'unset',\n }\n\n private onAnimationEnd = () => {\n if (this.ref.current) {\n this.ref.current.style.willChange = 'auto';\n this.ref.current.style.pointerEvents = 'auto';\n }\n }\n\n private onAnimationStart = () => {\n if (this.ref.current) {\n this.ref.current.style.willChange = 'transform, opacity';\n this.ref.current.style.pointerEvents = 'none';\n }\n }\n\n componentDidMount() {\n this.props.navigation.addEventListener('transition-start', this.onAnimationStart);\n this.props.navigation.addEventListener('transition-end', this.onAnimationEnd);\n this.props.navigation.addEventListener('transition-cancel', this.onAnimationEnd);\n }\n\n componentWillUnmount() {\n this.props.navigation.removeEventListener('transition-start', this.onAnimationStart);\n this.props.navigation.removeEventListener('transition-end', this.onAnimationEnd);\n this.props.navigation.removeEventListener('transition-cancel', this.onAnimationEnd);\n }\n\n get animationEffect() {\n const animationEffectFactory = this.props.animation;\n const { animation, direction, hasUAVisualTransition } = this.context;\n const { timeline, playbackRate } = animation;\n const { index, exiting, ref } = this;\n\n return animationEffectFactory?.({\n ref: ref.current,\n index,\n exiting,\n timeline,\n direction,\n playbackRate,\n hasUAVisualTransition\n }) ?? null;\n }\n\n setZIndex(zIndex: React.CSSProperties[\"zIndex\"]) {\n return new Promise<void>(resolve => this.setState({ zIndex }, resolve));\n }\n\n render() {\n const Element = this.props.renderAs;\n const inert = !this.props.focused ? '' : undefined;\n return (\n <Element\n id={this.props.id}\n className=\"screen-transition-provider\"\n ref={this.ref}\n {...{ inert }}\n style={{\n gridArea: '1 / 1',\n width: '100%',\n height: '100%',\n transformOrigin: 'center center',\n zIndex: this.state.zIndex\n }}\n >\n {this.props.children}\n </Element>\n );\n }\n}","import { createContext } from 'react';\nimport { ScreenBase } from './ScreenBase';\nimport { RouterBase } from './RouterBase';\n\nexport const NestedRouterContext = createContext<{parentRouter: RouterBase, parentScreen: ScreenBase} | null>(null);\nexport const RouterContext = createContext<RouterBase>(null!);","import { createContext } from \"react\";\nimport { RoutePropBase } from \"./common/types\";\n\nexport const RoutePropContext = createContext<RoutePropBase>(null!);","import { SharedElement } from \"./SharedElement\";\n\nexport class SharedElementScene {\n\tpublic readonly id: string;\n\tpublic readonly nodes = new Map<string, SharedElement>();\n\tpublic getScreenRect: () => DOMRect = () => new DOMRect();\n\tpublic keepAlive: boolean = false;\n\tpublic previousScene: SharedElementScene | null = null;\n\tpublic canTransition: boolean = true; // should be false if page animation already started\n\n\tconstructor(id: string) {\n\t\tthis.id = id;\n\t}\n\n\taddNode(node: SharedElement | null) {\n\t\tif (!node) return;\n\t\tconsole.assert(!this.nodes.has(node.id), `Duplicate Shared Element ID: ${node.id} in ${this.id}`);\n\t\tthis.nodes.set(node.id, node);\n\t}\n\n\tremoveNode(_id: string) {\n\t\tthis.nodes.delete(_id);\n\t}\n\n\tget xRatio() {\n\t\tconst screenRect = this.getScreenRect();\n\t\tconst xRatio = (screenRect.width / window.innerWidth).toFixed(2);\n\t\treturn parseFloat(xRatio);\n\t}\n\n\tget yRatio() {\n\t\tconst screenRect = this.getScreenRect();\n\t\tconst yRatio = (screenRect.height / window.innerHeight).toFixed(2);\n\t\treturn parseFloat(yRatio);\n\t}\n\n\tget x() {\n\t\treturn this.getScreenRect().x;\n\t}\n\n\tget y() {\n\t\treturn this.getScreenRect().y;\n\t}\n\n\tisEmpty() {\n\t\treturn !Boolean(this.nodes.size);\n\t}\n}","import { Component, ElementType, Suspense, cloneElement, createRef, isValidElement } from 'react';\nimport { ScreenTransitionProvider } from './ScreenTransitionProvider';\nimport {\n AnimationEffectFactory,\n LazyExoticComponent,\n PlainObject,\n RoutePropBase,\n isLazyExoticComponent,\n isNativeLazyExoticComponent\n} from './common/types';\nimport { NestedRouterContext, RouterContext } from './RouterContext';\nimport { RoutePropContext } from './RoutePropContext';\nimport { NavigationBase } from './NavigationBase';\nimport { SharedElementSceneContext } from './SharedElementSceneContext';\nimport { SharedElementScene } from './SharedElementScene';\n\nexport interface ScreenBaseComponentProps<\n R extends RoutePropBase = RoutePropBase,\n N extends NavigationBase = NavigationBase\n> {\n route: R;\n navigation: N;\n}\n\nexport type LifecycleProps<R extends RoutePropBase, N extends NavigationBase = NavigationBase> = ({\n signal: AbortSignal;\n preloading: false;\n} & ScreenBaseComponentProps<R, N>) | ({\n signal?: AbortSignal;\n preloading: true;\n} & Omit<ScreenBaseComponentProps<R, N>, 'route'> & { route: Omit<ScreenBaseComponentProps<R, N>['route'], 'setParams' | 'setConfig'>});\n\nexport interface ScreenBaseConfig<R extends RoutePropBase = RoutePropBase, N extends NavigationBase = NavigationBase> {\n readonly header?: {\n fallback?: React.ReactNode;\n component: React.JSXElementConstructor<any> | LazyExoticComponent<any>\n };\n readonly footer?: {\n fallback?: React.ReactNode;\n component: React.JSXElementConstructor<any> | LazyExoticComponent<any>\n };\n readonly animation?: AnimationEffectFactory;\n readonly onEnter?: (props: LifecycleProps<R, N>) => void | Promise<void>;\n readonly onExit?: (props: LifecycleProps<R, N>) => void | Promise<void>;\n readonly onEntered?: (props: LifecycleProps<R, N>) => void | Promise<void>;\n readonly onExited?: (props: LifecycleProps<R, N>) => void | Promise<void>;\n readonly onLoad?: (props: LifecycleProps<R, N>) => void | Promise<void>;\n}\n\nexport interface ScreenBaseProps {\n path: string;\n component: React.JSXElementConstructor<any> | LazyExoticComponent<any>;\n fallback?: React.ReactNode;\n name?: string;\n defaultParams?: PlainObject;\n caseSensitive?: boolean;\n config?: ScreenBaseConfig;\n}\n\nexport interface ScreenBaseState<C extends ScreenBaseProps['config'] = ScreenBaseProps['config'], P extends PlainObject = PlainObject> {\n focused: boolean;\n config: C;\n params: P;\n elementType: ElementType;\n}\n\nexport abstract class ScreenBase<\n P extends ScreenBaseProps = ScreenBaseProps,\n S extends ScreenBaseState<P['config']> = ScreenBaseState<P['config']>,\n R extends RoutePropBase<P['config']> = RoutePropBase<P['config']>\n> extends Component<P, S> {\n public readonly sharedElementScene: SharedElementScene;\n #transitionProvider = createRef<ScreenTransitionProvider>();\n protected readonly ref = createRef<HTMLDivElement>();\n protected readonly nestedRouterData;\n static readonly contextType = RouterContext;\n declare context: React.ContextType<typeof RouterContext>;\n\n state: S = {\n focused: false,\n config: {},\n params: {},\n elementType: 'div',\n } as S;\n\n constructor(props: P, context: React.ContextType<typeof RouterContext>) {\n super(props);\n\n this.sharedElementScene = new SharedElementScene(`${this.name}-shared-element-scene`);\n this.sharedElementScene.getScreenRect = () => this.ref.current?.getBoundingClientRect() || new DOMRect();\n this.nestedRouterData = { parentScreen: this as ScreenBase, parentRouter: context };\n }\n\n protected setParams(newParams: PlainObject) {\n this.setState(({ params }) => ({ params: { ...params, ...newParams } }));\n }\n\n protected setConfig(newConfig: R['config']) {\n this.setState(({ config }) => ({ config: { ...config, ...newConfig } }));\n }\n\n get focused() {\n return this.state.focused;\n }\n\n get name() {\n if (this.props.name)\n return this.props.name\n .toLowerCase()\n .replace(/[^\\w-]/g, '-') // Remove non-alphanumeric chars\n .replace(/-+/g, '-') // Replace multiple hyphens with a single onef\n .replace(/^-|-$/g, ''); // Remove leading and trailing hyphens;\n else if (isLazyExoticComponent(this.props.component))\n return this.props.component.module?.default.name.toLowerCase();\n return this.props.component.name.toLowerCase();\n }\n\n blur() {\n return new Promise<void>(resolve => this.setState({ focused: false }, resolve));\n }\n\n focus() {\n return new Promise<void>(resolve => this.setState({ focused: true }, resolve));\n }\n\n async load(signal: AbortSignal) {\n const Component = this.props.component;\n const HeaderComponent = this.props.config?.header?.component;\n const FooterComponent = this.props.config?.footer?.component;\n let result;\n\n if (isLazyExoticComponent(Component)) {\n result = await Component.load();\n } else {\n result = { default: Component };\n }\n\n if (isLazyExoticComponent(HeaderComponent))\n await HeaderComponent.load();\n if (isLazyExoticComponent(FooterComponent))\n await FooterComponent.load();\n\n const navigation = this.context.navigation;\n const route = this.routeProp;\n const preloading = false;\n await this.props.config?.onLoad?.({ navigation, route, signal, preloading });\n\n return result;\n }\n\n protected abstract get routeProp(): R;\n abstract get config(): R['config'];\n abstract get params(): R['params'];\n abstract get resolvedPathname(): string;\n abstract get id(): string;\n\n async onExited(signal: AbortSignal): Promise<void> {\n await this.routeProp.config.onExited?.({\n route: this.routeProp,\n navigation: this.context.navigation,\n preloading: false,\n signal,\n });\n }\n\n async onExit(signal: AbortSignal): Promise<void> {\n await this.routeProp.config.onExit?.({\n route: this.routeProp,\n navigation: this.context.navigation,\n preloading: false,\n signal,\n });\n }\n\n async onEnter(signal: AbortSignal): Promise<void> {\n await this.routeProp.config.onEnter?.({\n route: this.routeProp,\n navigation: this.context.navigation,\n preloading: false,\n signal,\n });\n }\n\n async onEntered(signal: AbortSignal): Promise<void> {\n await this.routeProp.config.onEntered?.({\n route: this.routeProp,\n navigation: this.context.navigation,\n preloading: false,\n signal,\n });\n }\n\n get path() {\n return this.props.path;\n }\n\n get transitionProvider() {\n return this.#transitionProvider;\n }\n\n render() {\n const navigation = this.context.navigation;\n const routeProp = this.routeProp;\n const Component = this.props.component;\n const HeaderComponent = routeProp.config.header?.component;\n const FooterComponent = routeProp.config.footer?.component;\n\n return (\n <ScreenTransitionProvider\n ref={this.#transitionProvider}\n renderAs={this.state.elementType}\n id={`${this.context.id}-${this.name}-transition-provider`}\n animation={routeProp.config.animation}\n navigation={navigation}\n focused={this.state.focused}\n >\n <div\n id={`${this.context.id}-${this.name}`}\n ref={this.ref}\n className=\"screen\"\n style={{\n height: '100%',\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n pointerEvents: 'inherit',\n }}\n >\n <SharedElementSceneContext.Provider value={this.sharedElementScene}>\n <RoutePropContext.Provider value={routeProp}>\n <NestedRouterContext.Provider value={this.nestedRouterData}>\n <Suspense fallback={<ComponentWithRouteProps component={routeProp.config.header?.fallback} route={routeProp} navigation={navigation} />}>\n <ComponentWithRouteProps component={HeaderComponent} route={routeProp} navigation={navigation} />\n </Suspense>\n <Suspense fallback={<ComponentWithRouteProps component={this.props.fallback} route={routeProp} navigation={navigation} />}>\n <ComponentWithRouteProps component={Component} route={routeProp} navigation={navigation} />\n </Suspense>\n <Suspense fallback={<ComponentWithRouteProps component={routeProp.config.footer?.fallback} route={routeProp} navigation={navigation} />}>\n <ComponentWithRouteProps component={FooterComponent} route={routeProp} navigation={navigation} />\n </Suspense>\n </NestedRouterContext.Provider>\n </RoutePropContext.Provider>\n </SharedElementSceneContext.Provider>\n </div>\n </ScreenTransitionProvider>\n );\n }\n}\n\ninterface ComponentWithRoutePropsProps extends ScreenBaseComponentProps<RoutePropBase, NavigationBase> {\n component: React.JSXElementConstructor<any> | LazyExoticComponent<any> | React.ReactNode;\n}\nfunction ComponentWithRouteProps({ component, route, navigation }: ComponentWithRoutePropsProps) {\n if (isLazyExoticComponent(component) && component.module?.default) {\n component = component.module.default;\n }\n const Component = component ?? null;\n if (typeof Component === 'function' || isNativeLazyExoticComponent(Component)) {\n return (\n <Component\n navigation={navigation}\n route={route}\n />\n );\n } else if (isValidElement(Component)) {\n return cloneElement<any>(Component, {\n navigation,\n route,\n });\n }\n return <>{Component}</>;\n}","import { isValidElement } from 'react';\nimport { ScreenBase, ScreenBaseProps } from '../ScreenBase';\nimport {\n MotionProgressEndEvent,\n MotionProgressEvent,\n MotionProgressStartEvent,\n TransitionCancelEvent,\n TransitionEndEvent,\n TransitionStartEvent\n} from './events';\nimport { SharedElement } from '../SharedElement';\nimport { StandardPropertiesHyphen } from 'csstype';\n\nexport type ScreenChild<E extends ScreenBase = ScreenBase> = E extends ScreenBase<infer P> ? React.CElement<P, E> : never;\n\nexport interface AnimationEffectFactoryProps<R extends HTMLElement = HTMLElement> {\n ref: R | null;\n index: number;\n exiting: boolean;\n timeline: AnimationTimeline | null;\n playbackRate: number;\n direction: PlaybackDirection;\n hasUAVisualTransition: boolean;\n}\n\nexport type AnimationEffectFactory<R extends HTMLElement = HTMLElement> = (props: AnimationEffectFactoryProps<R>) => AnimationEffect;\n\nexport type MetaTypeKey = 'http-equiv' | 'name' | 'itemprop' | 'property' | 'charset';\nexport type MetaType = [MetaTypeKey, string];\nexport type MetaKey = `${MetaTypeKey}=${string}`;\n\nexport interface LazyExoticComponent<T extends React.ComponentType<any>> extends React.LazyExoticComponent<T> {\n load: () => Promise<{ default: T }>;\n module?: { default: T };\n}\n\nexport type ScreenState<P extends ScreenBaseProps = ScreenBaseProps> = Map<string, Pick<RoutePropBase<P[\"config\"], PlainObject>, \"config\" | \"params\">>;\n\nexport interface RoutePropBase<C extends ScreenBaseProps[\"config\"] = {}, P extends PlainObject = PlainObject> {\n path: string;\n resolvedPathname?: string;\n config: NonNullable<C>;\n focused: boolean;\n params: P;\n setParams(params: Partial<P>): void;\n setConfig(config: Partial<NonNullable<C>>): void;\n}\n\nexport function isValidScreenChild<S extends ScreenBase>(value: any): value is ScreenChild<S> {\n if (!isValidElement(value)) return false;\n return Object.getPrototypeOf(value.type) === ScreenBase;\n}\n\nexport type PlainObject<T = any> = { [key: string]: T };\n\nexport interface RouterBaseEventMap extends HTMLElementEventMap {\n \"transition-start\": TransitionStartEvent;\n \"transition-cancel\": TransitionCancelEvent;\n \"transition-end\": TransitionEndEvent;\n \"motion-progress-start\": MotionProgressStartEvent;\n \"motion-progress\": MotionProgressEvent;\n \"motion-progress-end\": MotionProgressEndEvent;\n}\n\nexport type RouterHTMLElement<E extends RouterBaseEventMap, T extends HTMLElement = HTMLDivElement> = T & {\n addEventListener<K extends keyof E>(type: K, listener: (this: T, ev: E[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof E>(type: K, listener: (this: T, ev: E[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\nexport type CustomElementType = `${string}-${string}`;\n\nexport interface MatchedRoute {\n params: PlainObject<string | undefined>;\n caseSensitive: boolean;\n}\n\nexport interface PathPattern {\n pattern: string;\n caseSensitive: boolean;\n}\n\nexport type AnimationDirection = \"normal\" | \"reverse\";\n\nenum SharedElementTransitionTypeEnum {\n \"morph\",\n \"fade-through\",\n \"fade\",\n \"cross-fade\"\n}\n\nexport type SharedElementTransitionType = keyof typeof SharedElementTransitionTypeEnum;\n\nexport interface SharedElementNode {\n id: string;\n instance: SharedElement;\n}\n\nexport type SharedElementNodeMap = Map<string, SharedElementNode>;\n\nexport type StyleKeyList = (keyof StandardPropertiesHyphen | string)[];\n\nexport function isNativeLazyExoticComponent(value: any): value is React.LazyExoticComponent<any> {\n return typeof value === \"object\"\n && value !== null\n && value.$$typeof === Symbol.for('react.lazy');\n}\n\nexport function isLazyExoticComponent(value: any): value is LazyExoticComponent<any> {\n return isNativeLazyExoticComponent(value) && 'load' in value;\n}\n\nexport type StylableElement = Element & { style: CSSStyleDeclaration };\n\nexport function isStylableElement(element: any): element is StylableElement {\n return 'style' in element && element.style instanceof CSSStyleDeclaration;\n}\n\nexport interface LoadNavigationTransition extends Omit<NavigationTransition, \"navigationType\"> {\n navigationType: \"load\";\n}\n\ndeclare global {\n interface NavigateEvent extends Event {\n commit?(): void; // not in spec yet, see https://github.com/WICG/navigation-api/issues/66\n }\n}\n\nexport type ElementPropType<C> = C extends React.CElement<infer P, infer T> ? P & React.ClassAttributes<T> : never;\nexport type ClonedElementType<C, IP extends Partial<ElementPropType<C>>> = C extends React.CElement<infer P, infer T> ? React.CElement<P & Partial<IP>, T & React.Component<P & IP>> : never;","var Lt = Object.defineProperty;\nvar jt = (o, r, t) => r in o ? Lt(o, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[r] = t;\nvar V = (o, r, t) => (jt(o, typeof r != \"symbol\" ? r + \"\" : r, t), t), wt = (o, r, t) => {\n if (!r.has(o))\n throw TypeError(\"Cannot \" + t);\n};\nvar e = (o, r, t) => (wt(o, r, \"read from private field\"), t ? t.call(o) : r.get(o)), d = (o, r, t) => {\n if (r.has(o))\n throw TypeError(\"Cannot add the same private member more than once\");\n r instanceof WeakSet ? r.add(o) : r.set(o, t);\n}, l = (o, r, t, i) => (wt(o, r, \"write to private field\"), i ? i.call(o, t) : r.set(o, t), t);\nvar m = (o, r, t) => (wt(o, r, \"access private method\"), t);\nconst ot = {\n delay: 0,\n direction: \"normal\",\n duration: \"auto\",\n easing: \"linear\",\n endDelay: 0,\n fill: \"auto\",\n iterationStart: 0,\n iterations: 1\n}, St = 1e3, qt = window.Animation, ft = window.KeyframeEffect;\nfunction At(o) {\n return Array.isArray(o);\n}\nfunction Q(o) {\n return typeof o == \"object\" && o === null;\n}\nfunction u(o, r) {\n return Q(o) || typeof o == \"number\" ? o : (r || ([r] = Object.keys(o.type())), o.to(r).value);\n}\nfunction Ft(o, r = ot) {\n let { duration: t = \"auto\", iterations: i = 1, playbackRate: n = 1 } = r;\n if (Q(o))\n return o;\n if (typeof o == \"number\" || o.type().percent === void 0)\n throw new DOMException(\n \"CSSNumericValue must be a percentage for progress based animations.\",\n \"NotSupportedError\"\n );\n if (t === \"auto\")\n t = St;\n else if (t instanceof CSSNumericValue)\n t = t.to(\"ms\").value;\n else if (typeof t == \"string\")\n throw new TypeError(\"Unknown effect duration keyword.\");\n const { delay: s = 0, endDelay: a = 0 } = r, y = t / i * i / Math.abs(n), b = s + y + a;\n return st(\n o.to(\"percent\").value,\n [0, 100],\n [0, b]\n );\n}\nfunction bt(o) {\n if (Q(o) || typeof o == \"number\")\n return o;\n if (o.type().time !== void 0)\n throw new DOMException(\n \"CSSNumericValue must be a time value for time based animations.\",\n \"NotSupportedError\"\n );\n return o.to(\"ms\").value;\n}\nfunction It(o, r) {\n const t = r.length - 1, i = Math.floor(o * t), n = r[i], s = r[Math.min(i + 1, t)], a = o * t - i;\n return n + a * (s - n);\n}\nfunction Bt(o, r, t) {\n let i = 0, n = 0;\n for (const [s, a] of Object.entries(o)) {\n const { min: c, max: y } = r, b = t[s] ?? 1, R = (a - c[s]) / (y[s] - c[s]) * b;\n i += R, n += b;\n }\n return i / n;\n}\nfunction st(o, r, t, i = {}) {\n let n;\n if (typeof o == \"number\" && At(r)) {\n const a = { x: r[0] }, c = { x: r[1] };\n r = { min: a, max: c }, o = { x: o };\n } else\n throw new TypeError(\"Input and input range must have the same dimensions.\");\n if (n = Bt(o, r, i), n = Xt(n, 0, 1), At(t))\n return It(n, t);\n const s = {};\n for (const a of Object.keys(t.min)) {\n const c = t.min[a], y = t.max[a], b = [c, y];\n s[a] = It(n, b);\n }\n return s;\n}\nfunction Qt({ mass: o = 1, stiffness: r = 10, damping: t = 10, velocity: i = 0, steps: n = 100 }) {\n const s = Math.sqrt(r / o), a = t / (2 * Math.sqrt(r * o)), c = a < 1 ? s * Math.sqrt(1 - a * a) : 0, y = a < 1 ? (a * s + -i) / c : -i + s;\n function b(g) {\n return a < 1 ? g = Math.exp(-g * a * s) * (1 * Math.cos(c * g) + y * Math.sin(c * g)) : g = (1 + y * g) * Math.exp(-g * s), 1 - g;\n }\n const M = (() => {\n const g = 1 / n;\n let w = 0;\n for (; ; ) {\n if (Math.abs(1 - b(w)) < 1e-3) {\n const C = w;\n let E = 1;\n for (; w += g, !(Math.abs(1 - b(w)) >= 1e-3); )\n if (E++, E === 16)\n return C;\n }\n w += g;\n }\n })() * 1e3, R = (() => {\n let g = [];\n for (let w = 0; w <= n; w++) {\n const C = w / n, E = b(C);\n g.push(E);\n }\n return `linear(${g.join(\", \")})`;\n })();\n return { duration: M, easing: R };\n}\nfunction Yt(o, r = 100) {\n let t = [];\n for (let i = 0; i <= r; i++) {\n const n = i / r, s = o(n);\n t.push(s);\n }\n return `linear(${t.join(\", \")})`;\n}\nfunction Xt(o, r, t) {\n return o < r ? r : t && o > t ? t : o;\n}\nfunction Dt(o) {\n let {\n duration: r = \"auto\",\n iterations: t = 1,\n playbackRate: i = 1,\n delay: n = 0,\n endDelay: s = 0,\n localTime: a = null,\n progress: c = null\n } = o;\n const y = new CSSUnitValue(100, \"percent\");\n if (r === \"auto\")\n r = St, n = 0, s = 0;\n else if (r instanceof CSSNumericValue)\n r = r.to(\"ms\").value;\n else if (typeof r == \"string\")\n throw TypeError(\"Unknown effect duration keyword.\");\n const b = r / t, M = b * t / Math.abs(i), R = n + M + s;\n r = new CSSUnitValue(b / R * 100, \"percent\");\n const g = CSS.percent(r.to(\"percent\").value * t / Math.abs(i));\n return a !== null && (c = u(a, \"percent\") / y.value), {\n ...o,\n progress: c,\n activeDuration: g,\n duration: r,\n iterations: t,\n delay: n,\n endDelay: s,\n endTime: y\n };\n}\nfunction Pt(o, r) {\n let { activeDuration: t = 0, localTime: i = null, endTime: n = 1 / 0, delay: s = 0 } = o;\n if (n = u(n), t = u(t), i = u(i), i == null || i === void 0)\n return \"idle\";\n const a = Math.max(Math.min(s, n), 0), c = Math.max(Math.min(s + t, n), 0);\n return i < a || r === \"backwards\" && i === a ? \"before\" : i > c || r === \"forwards\" && i === c ? \"after\" : \"active\";\n}\nfunction Wt(o, r) {\n let { localTime: t = null, delay: i = 0, activeDuration: n = 0, fill: s } = o;\n if (n = u(n), t = u(t), t == null || t === void 0)\n return null;\n switch (r) {\n case \"before\":\n return s === \"backwards\" || s === \"both\" ? Math.max(t - i, 0) : null;\n case \"active\":\n return t - i;\n case \"after\":\n return s === \"forwards\" || s === \"both\" ? Math.max(Math.min(t - i, n), 0) : null;\n default:\n return null;\n }\n}\nfunction Kt(o, r, t) {\n const { duration: i = 0, iterations: n = 1, iterationStart: s = 0 } = o;\n if (typeof i != \"number\")\n throw new TypeError(\"Duration cannot be unresolved\");\n let a = 0;\n return i === 0 ? r === \"before\" ? a = 0 : a = n : a = t / bt(i), a + s;\n}\nfunction $t(o, r, t, i) {\n const { iterations: n = 1, iterationStart: s = 0, activeDuration: a = 0 } = o;\n if (Q(t))\n return null;\n let c = 0;\n return t === 1 / 0 && (c = s % 1), c === 0 && (r === \"active\" || r === \"after\") && a === i && n !== 0 && (c = 1), c;\n}\nfunction xt(o, r) {\n const { iterations: t = 1 } = o, i = Wt(o, r);\n if (Q(i))\n return null;\n if (r === \"after\" && t === 1 / 0)\n return 1 / 0;\n const n = Kt(o, r, i);\n return $t(o, r, n, i) === 1 ? Math.floor(n) - 1 : Math.floor(n);\n}\nclass zt extends Event {\n constructor(t) {\n super(\"update\", { bubbles: !1, cancelable: !1, composed: !1 });\n V(this, \"currentTime\");\n this.currentTime = t;\n }\n}\nvar x, K;\nclass v extends EventTarget {\n constructor(t = { type: \"swipe\", axis: \"x\", rangeStart: 0, rangeEnd: window.screen.availWidth, source: document.body }) {\n super();\n d(this, x, void 0);\n d(this, K, void 0);\n t.source.addEventListener(t.type, this.onGesture.bind(this)), l(this, K, CSS.percent(0)), l(this, x, t);\n }\n onGesture(t) {\n const i = e(this, x).source.getBoundingClientRect();\n let n = 0;\n const s = {\n x: t.x - i.left,\n y: t.y - i.top\n };\n switch (e(this, x).type) {\n case \"swipe\": {\n const { rangeStart: a, rangeEnd: c } = e(this, x), y = e(this, x).axis;\n n = st(\n s[y],\n [u(a, \"px\"), u(c, \"px\")],\n [0, 100]\n );\n break;\n }\n case \"pan\": {\n const { rangeStart: a, rangeEnd: c } = e(this, x), { x: y, y: b } = s;\n n = st(\n { x: y, y: b },\n {\n min: { x: u(a.x, \"px\"), y: u(a.y, \"px\") },\n max: { x: u(c.x, \"px\"), y: u(c.y, \"px\") }\n },\n [0, 100],\n { x: 1, y: 1 }\n );\n break;\n }\n case \"pinch\": {\n const { rangeStart: a, rangeEnd: c } = e(this, x), { scale: y } = t;\n n = st(\n y,\n [u(a, \"\"), u(c, \"\")],\n // figure out which unit\n [0, 100]\n );\n break;\n }\n case \"rotate\": {\n const { rangeStart: a, rangeEnd: c } = e(this, x), { rotation: y } = t;\n n = st(\n y,\n [u(a, \"deg\"), u(c, \"deg\")],\n [0, 100]\n );\n }\n }\n l(this, K, CSS.percent(n)), this.dispatchEvent(new zt(e(this, K)));\n }\n addEventListener(t, i, n) {\n super.addEventListener(t, i, n);\n }\n removeEventListener(t, i, n) {\n super.removeEventListener(t, i, n);\n }\n get currentTime() {\n return e(this, K);\n }\n get phase() {\n return \"active\";\n }\n}\nx = new WeakMap(), K = new WeakMap();\nconst G = /* @__PURE__ */ new WeakMap();\nvar tt;\nclass mt extends ft {\n constructor(t, i = null) {\n super(t);\n d(this, tt, null);\n l(this, tt, i);\n }\n get parent() {\n return e(this, tt);\n }\n getTiming() {\n var i;\n const t = super.getTiming();\n if (((i = G.get(this)) == null ? void 0 : i.timeline) instanceof v) {\n if (t.duration === 1 / 0)\n throw TypeError(\"Effect duration cannot be Infinity for non-monotonic timelines.\");\n if (t.iterations === 1 / 0)\n throw TypeError(\"Effect iterations cannot be Infinity for non-monotonic timelines.\");\n }\n return t;\n }\n getComputedTiming() {\n var n;\n const t = super.getComputedTiming();\n if (((n = G.get(this)) == null ? void 0 : n.timeline) instanceof v) {\n if (t.duration === 1 / 0)\n throw TypeError(\"Effect duration cannot be Infinity for non-monotonic timelines.\");\n if (t.iterations === 1 / 0)\n throw TypeError(\"Effect iterations cannot be Infinity for non-monotonic timelines.\");\n return Dt(t);\n }\n return t;\n }\n updateTiming(t) {\n var s;\n const i = super.getTiming();\n t = {\n ...i,\n duration: i.duration instanceof CSSNumericValue ? i.duration.to(\"ms\").value : i.duration,\n ...t\n };\n let n = e(this, tt);\n for (; n; ) {\n const a = n.getTiming();\n t != null && t.delay && (t.delay += a.delay ?? 0), t != null && t.endDelay && (t.endDelay += a.endDelay ?? 0), t != null && t.iterationStart && (t.iterationStart += a.iterationStart ?? 0), t != null && t.iterations && (t.iterations *= a.iterations ?? 1), t != null && t.playbackRate && (t.playbackRate *= a.playbackRate ?? 1), a.duration && typeof a.duration != \"string\" && (t == null ? void 0 : t.duration) === \"auto\" && (t.duration = u(a.duration, \"ms\")), n = n.parent;\n }\n if (((s = G.get(this)) == null ? void 0 : s.timeline) instanceof v) {\n if ((t == null ? void 0 : t.duration) === 1 / 0)\n throw TypeError(\"Effect duration cannot be Infinity for non-monotonic timelines.\");\n if (t != null && t.iterations)\n throw TypeError(\"Effect iterations cannot be Infinity for non-monotonic timelines.\");\n }\n return super.updateTiming(t);\n }\n}\ntt = new WeakMap();\nvar U, $;\nconst at = class at {\n constructor(r) {\n d(this, U, []);\n d(this, $, null);\n l(this, U, r.map((t) => (t instanceof at ? l(t, $, this) : t instanceof ft && (t = new mt(t, this)), t)));\n }\n get parent() {\n return e(this, $);\n }\n get children() {\n const r = e(this, U);\n return {\n length: r.length,\n item(t) {\n return r.at(t) ?? null;\n }\n };\n }\n get firstChild() {\n return e(this, U).at(0) ?? null;\n }\n get lastChild() {\n return e(this, U).at(-1) ?? null;\n }\n clone() {\n return structuredClone(this);\n }\n append(...r) {\n r.forEach((t) => {\n e(this, U).includes(t) || (t instanceof at ? l(t, $, this) : t instanceof ft && (t = new mt(t, this)), e(this, U).push(t));\n });\n }\n prepend(...r) {\n r.forEach((t) => {\n e(this, U).includes(t) || (t instanceof at ? l(t, $, this) : t instanceof ft && (t = new mt(t, this)), e(this, U).unshift(t));\n });\n }\n};\nU = new WeakMap(), $ = new WeakMap();\nlet lt = at;\nclass Y {\n constructor() {\n V(this, \"promise\");\n V(this, \"state\");\n V(this, \"nativeResolve\");\n V(this, \"nativeReject\");\n this.state = \"pending\", this.nativeResolve = this.nativeReject = null, this.promise = new Promise((r, t) => {\n this.nativeResolve = r, this.nativeReject = t;\n });\n }\n resolve(r) {\n var t;\n this.state = \"resolved\", (t = this.nativeResolve) == null || t.call(this, r);\n }\n reject(r) {\n var t;\n this.state = \"rejected\", this.promise.catch(() => {\n }), (t = this.nativeReject) == null || t.call(this, r);\n }\n}\nvar z, dt, Ut;\nclass Ht extends lt {\n constructor(t, i = ot) {\n super(t);\n d(this, dt);\n d(this, z, void 0);\n l(this, z, {\n ...ot,\n ...i\n });\n }\n prepend(...t) {\n super.prepend(...t), t.forEach((i) => i.updateTiming());\n }\n append(...t) {\n super.append(...t), t.forEach((i) => i.updateTiming());\n }\n getTiming() {\n return e(this, z);\n }\n getComputedTiming() {\n var w, C;\n const t = this.getTiming(), i = { ...t }, { delay: n = 0 } = ((w = this.children.item(0)) == null ? void 0 : w.getComputedTiming()) ?? {}, { endDelay: s = 0, endTime: a = 0 } = ((C = this.children.item(this.children.length - 1)) == null ? void 0 : C.getComputedTiming()) ?? {};\n t.delay = t.delay ? t.delay + n : n, t.endDelay = t.endDelay ? t.endDelay + s : s, i.endTime = a;\n for (let E = 0; E < this.children.length; E++) {\n const A = this.children.item(E);\n if (!A)\n continue;\n let {\n duration: I = \"auto\",\n activeDuration: Mt = 0\n } = A.getComputedTiming();\n i.activeDuration = i.activeDuration ? u(i.activeDuration, \"ms\") + u(Mt, \"ms\") : Mt, t.duration = t.duration instanceof CSSNumericValue ? t.duration.to(\"ms\").value : t.duration, I = I instanceof CSSNumericValue ? I.to(\"ms\").value : I, typeof I != \"string\" && (t.duration === \"auto\" ? t.duration = u(I, \"ms\") : typeof t.duration != \"string\" && (t.duration = t.duration ? t.duration + I : I));\n }\n const { timeline: c, startTime: y, currentTime: b } = G.get(this) ?? {}, M = c instanceof v ? \"percent\" : \"ms\";\n let { duration: R = 0, iterations: g = 1 } = i;\n if (R === \"auto\" && (R = 0), typeof R == \"string\")\n throw new TypeError(\"Unknown effect duration keyword.\");\n return i.duration = R, i.activeDuration = bt(R) * g, i.startTime = y ?? void 0, i.localTime = b, i.currentIteration = xt(i, Pt(i, e(this, dt, Ut))), c instanceof v ? Dt(i) : (c instanceof DocumentTimeline && (i.progress = b && u(b, M) / u(a, M)), i);\n }\n updateTiming(t) {\n l(this, z, {\n ...e(this, z),\n ...t\n });\n for (let i = 0; i < this.children.length; i++) {\n const n = this.children.item(i);\n n == null || n.updateTiming();\n }\n }\n}\nz = new WeakMap(), dt = new WeakSet(), Ut = function() {\n const { playbackRate: t = 1 } = G.get(this) ?? {};\n return t < 0 ? \"backwards\" : \"forwards\";\n};\nvar f, D, et, T, k, N, h, p, S, B, j, it, O, ut, kt, H, rt, X, Z, pt, Ot, Tt, _t, yt, Gt, F, W, nt, ct, Rt, _, q, P, L, ht, gt, Et;\nconst Ct = class Ct extends EventTarget {\n constructor(t, i) {\n super();\n d(this, ut);\n d(this, H);\n d(this, X);\n d(this, pt);\n d(this, Tt);\n d(this, yt);\n d(this, F);\n d(this, ct);\n d(this, _);\n d(this, P);\n V(this, \"id\", \"\");\n V(this, \"oncancel\", null);\n V(this, \"onfinish\", null);\n V(this, \"onremove\", null);\n d(this, f, void 0);\n d(this, D, void 0);\n d(this, et, \"active\");\n d(this, T, {\n task: null,\n playbackRate: null\n });\n d(this, k, new Y());\n d(this, N, new Y());\n d(this, h, null);\n d(this, p, null);\n d(this, S, []);\n d(this, B, null);\n d(this, j, !1);\n d(this, it, 0);\n d(this, O, 1);\n d(this, nt, () => {\n m(this, F, W).call(this);\n });\n d(this, ht, () => {\n var s;\n if (e(this, N).state !== \"pending\" || this.playState !== \"finished\")\n return;\n e(this, N).resolve(this);\n const t = this.currentTime, i = (s = this.timeline) == null ? void 0 : s.currentTime, n = new AnimationPlaybackEvent(\n \"finish\",\n {\n get currentTime() {\n return t;\n },\n get timelineTime() {\n return i;\n }\n }\n );\n requestAnimationFrame(() => {\n var a;\n this.dispatchEvent(n), (a = this.onfinish) == null || a.call(this, n);\n });\n });\n d(this, gt, () => {\n var s, a;\n const t = this.currentTime, i = (s = this.timeline) == null ? void 0 : s.currentTime, n = new AnimationPlaybackEvent(\n \"cancel\",\n {\n get currentTime() {\n return t;\n },\n get timelineTime() {\n return i;\n }\n }\n );\n this.dispatchEvent(n), (a = this.oncancel) == null || a.call(this, n);\n });\n d(this, Et, () => {\n var i;\n const t = new Event(\"remove\");\n this.dispatchEvent(t), (i = this.onremove) == null || i.call(this, t);\n });\n e(this, k).resolve(this), l(this, D, t ?? null), l(this, f, i ?? document.timeline), e(this, D) && G.set(e(this, D), this), m(this, ct, Rt).call(this), i instanceof v && i.addEventListener(\"update\", e(this, nt));\n }\n reverse() {\n var c;\n const { endTime: t = 0 } = ((c = e(this, D)) == null ? void 0 : c.getComputedTiming()) ?? {}, i = e(this, T).playbackRate ?? e(this, O), n = u(this.currentTime), s = t === 1 / 0, a = i !== 0 && (i < 0 || n && n > 0 || !s);\n if (!e(this, f) || !a) {\n a && (e(this, T).playbackRate = -i);\n return;\n }\n if (e(this, f).currentTime === null)\n throw new DOMException(\n \"Cannot reverse an animation with no active timeline\",\n \"InvalidStateError\"\n );\n this.updatePlaybackRate(-i), this.play();\n }\n play() {\n const t = this.playState === \"paused\" && this.pending;\n let i = this.currentTime;\n (e(this, T).playbackRate ?? this.playbackRate) === 0 && i === null && l(this, p, 0), i === null && l(this, j, !0), (this.playState === \"finished\" || t) && (l(this, h, null), l(this, p, null), l(this, j, !0)), e(this, p) && l(this, h, null), e(this, T).task && (e(this, T).task = null), !(e(this, h) !== null && e(this, p) === null && !t && e(this, T).playbackRate === null) && (m(this, F, W).call(this), m(this, H, rt).call(this), e(this, T).task = \"play\", m(this, _, q).call(this, !1));\n }\n pause() {\n this.playState !== \"paused\" && (this.currentTime === null && l(this, j, !0), e(this, T).task && (e(this, T).task = null), m(this, H, rt).call(this), e(this, T).task = \"pause\");\n }\n persist() {\n e(this, S).forEach((t) => t.persist()), l(this, et, \"persisted\");\n }\n finish() {\n var s;\n const { endTime: t = 0 } = ((s = this.effect) == null ? void 0 : s.getComputedTiming()) ?? {}, i = e(this, T).playbackRate ?? e(this, O);\n if (i === 0 || i > 0 && t === 1 / 0)\n throw new DOMException(\"InvalidStateError\");\n m(this, P, L).call(this);\n let n;\n if (i > 0 ? n = t : n = 0, m(this, ut, kt).call(this, n), this.startTime === null && e(this, f) !== null && e(this, f).currentTime !== null && n !== null) {\n const a = e(this, f) instanceof v ? \"percent\" : \"ms\";\n n = u(n, a);\n const c = u(e(this, f).currentTime, a);\n l(this, h, c - n / i);\n }\n e(this, T).task === \"pause\" && e(this, h) !== null && (l(this, p, null), m(this, X, Z).call(this), e(this, k).resolve(this)), e(this, T).task === \"play\" && e(this, h) !== null && (m(this, X, Z).call(this), e(this, k).resolve(this)), m(this, _, q).call(this, !0), e(this, S).forEach((a) => a.finish());\n }\n commitStyles() {\n e(this, S).forEach((t) => {\n t.effect instanceof mt && (t.effect.target === null || t.effect.pseudoElement !== null) || t.commitStyles();\n });\n }\n cancel() {\n this.playState !== \"idle\" && (m(this, P, L).call(this), e(this, k).reject(new DOMException(\"The user aborted a request\", \"AbortError\")), m(this, X, Z).call(this), l(this, k, new Y()), e(this, N).state === \"pending\" && e(this, N).reject(new DOMException(\"The user aborted a request\", \"AbortError\")), l(this, N, new Y()), e(this, S).forEach((t) => t.cancel())), l(this, h, null), l(this, p, null);\n }\n updatePlaybackRate(t) {\n var n;\n e(this, T).playbackRate = t;\n const i = this.playState;\n if (e(this, k).state !== \"pending\")\n switch (i) {\n case \"idle\":\n case \"paused\":\n m(this, P, L).call(this);\n break;\n case \"finished\": {\n const s = e(this, f) instanceof v ? \"percent\" : \"ms\", a = ((n = e(this, f)) == null ? void 0 : n.currentTime) ?? null;\n if (t === 0)\n l(this, h, u(a, s));\n else if (a !== null) {\n let c = null;\n c = (u(a, s) - (e(this, h) ?? 0)) * this.playbackRate, e(this, h) !== null && c !== null && l(this, h, (u(a, s) - c) / t);\n }\n m(this, P, L).call(this), m(this, _, q).call(this, !1), m(this, F, W).call(this);\n break;\n }\n default:\n this.play();\n }\n }\n addEventListener(t, i, n) {\n super.addEventListener(t, i, n);\n }\n removeEventListener(t, i, n) {\n super.removeEventListener(t, i, n);\n }\n set playbackRate(t) {\n l(this, O, t), e(this, S).forEach((i) => {\n i.playbackRate *= t;\n });\n }\n set startTime(t) {\n l(this, h, u(t)), e(this, S).forEach((i) => i.startTime = t);\n }\n set currentTime(t) {\n var s;\n const i = e(this, f) instanceof v ? \"percent\" : \"ms\", n = u(((s = e(this, f)) == null ? void 0 : s.currentTime) ?? null, i);\n if (Q(t) && !Q(n))\n throw new TypeError(\"currentTime may not be changed from resolved to unresolved.\");\n l(this, j, !1), e(this, p) !== null || e(this, h) === null || n === null || this.playbackRate === 0 ? l(this, p, u(t, i)) : l(this, h, n - u(t, i) / this.playbackRate), (e(this, f) === null || n === null) && l(this, h, null), l(this, B, null), m(this, ut, kt).call(this, t), e(this, T).task === \"pause\" && (l(this, p, u(t, i)), m(this, P, L).call(this), l(this, h, null), m(this, X, Z).call(this), e(this, k).resolve(this)), m(this, _, q).call(this, !0);\n }\n set timeline(t) {\n var C, E;\n const i = this.timeline;\n if (i === t)\n return;\n e(this, f) instanceof v && e(this, f).removeEventListener(\"update\", e(this, nt));\n const n = this.playState, s = i instanceof v ? \"percent\" : \"ms\", a = u(this.currentTime, s), { progress: c = null, endTime: y = 0 } = ((C = e(this, D)) == null ? void 0 : C.getComputedTiming()) ?? {}, b = u(y, s), M = i instanceof v, R = t instanceof v, g = t instanceof DocumentTimeline, w = this.pending;\n if (R)\n l(this, f, t), t.addEventListener(\"update\", e(this, nt)), m(this, P, L).call(this), l(this, j, !0), l(this, h, null), l(this, p, null), (n === \"running\" || n === \"finished\") && ((!e(this, k) || e(this, k).state === \"resolved\") && m(this, H, rt).call(this), e(this, T).task = \"play\", e(this, S).forEach((A) => A.pause())), n === \"paused\" && c !== null && l(this, p, c * b), w && ((!e(this, k) || e(this, k).state === \"resolved\") && m(this, H, rt).call(this), n === \"paused\" ? e(this, T).task = \"pause\" : e(this, T).task = \"play\"), e(this, h) !== null && l(this, p, null), m(this, _, q).call(this, !1);\n else if (g) {\n if (l(this, f, t), M) {\n if (a !== null && c !== null) {\n const { endTime: A = 0 } = ((E = e(this, D)) == null ? void 0 : E.getComputedTiming()) ?? {}, I = u(A, \"ms\");\n this.currentTime = c * I;\n }\n switch (n) {\n case \"paused\":\n e(this, S).forEach((A) => A.pause());\n break;\n case \"running\":\n case \"finished\":\n e(this, S).forEach((A) => A.play());\n }\n }\n } else\n throw TypeError(\"Unsupported timeline: \" + t);\n }\n set effect(t) {\n if (t !== e(this, D)) {\n if (this.pending && m(this, X, Z).call(this), e(this, D) && G.delete(e(this, D)), t) {\n const i = G.get(t);\n i && (i.effect = null), G.set(t, this);\n }\n l(this, D, t), m(this, ct, Rt).call(this), m(this, _, q).call(this, !1);\n }\n }\n get ready() {\n return e(this, k).promise;\n }\n get finished() {\n return e(this, N).promise;\n }\n get playState() {\n var a;\n let { endTime: t = 0 } = ((a = this.effect) == null ? void 0 : a.getComputedTiming()) ?? {};\n const i = e(this, f) instanceof v ? \"percent\" : \"ms\", n = u(this.startTime, i), s = u(this.currentTime, i);\n return t = u(t, i), s === null && n === null && e(this, T).task === null ? \"idle\" : e(this, T).task === \"pause\" || n === null && e(this, T).task !== \"play\" ? \"paused\" : s !== null && (e(this, O) > 0 && s >= t || e(this, O) < 0 && s <= 0) ? \"finished\" : \"running\";\n }\n get playbackRate() {\n return e(this, O);\n }\n get replaceState() {\n return e(this, et);\n }\n get pending() {\n return e(this, k).state === \"pending\";\n }\n get currentTime() {\n var s;\n const t = ((s = this.timeline) == null ? void 0 : s.currentTime) ?? null;\n if (e(this, p)) {\n if (typeof t == \"number\")\n return e(this, p);\n const a = e(this, f) instanceof v ? \"percent\" : \"ms\";\n return new CSSUnitValue(e(this, p), a);\n }\n if (t === null || e(this, h) === null)\n return null;\n const i = e(this, f) instanceof v ? \"percent\" : \"ms\";\n let n = (u(t, i) - e(this, h)) * this.playbackRate;\n return n === -0 && (n = 0), typeof t == \"number\" ? n : new CSSUnitValue(n, i);\n }\n get startTime() {\n var n;\n if (e(this, h) === null)\n return null;\n if (typeof (((n = this.timeline) == null ? void 0 : n.currentTime) ?? null) == \"number\")\n return e(this, h);\n const i = e(this, f) instanceof v ? \"percent\" : \"ms\";\n return new CSSUnitValue(e(this, h), i);\n }\n get timeline() {\n return e(this, f);\n }\n get effect() {\n return e(this, D);\n }\n};\nf = new WeakMap(), D = new WeakMap(), et = new WeakMap(), T = new WeakMap(), k = new WeakMap(), N = new WeakMap(), h = new WeakMap(), p = new WeakMap(), S = new WeakMap(), B = new WeakMap(), j = new WeakMap(), it = new WeakMap(), O = new WeakMap(), ut = new WeakSet(), kt = function(t) {\n var n;\n const i = u(((n = e(this, f)) == null ? void 0 : n.currentTime) ?? null);\n if (t === null && i !== null)\n throw new TypeError();\n t === null || i === null || (t = u(t), l(this, j, !1), e(this, p) !== null || e(this, h) === null || e(this, f) instanceof v && e(this, f).phase === \"inactive\" || e(this, O) === 0 ? l(this, p, t) : l(this, h, i - t / e(this, O)), e(this, f) instanceof v && e(this, f).phase === \"inactive\" && l(this, h, null), l(this, B, null));\n}, H = new WeakSet(), rt = function() {\n e(this, k).state !== \"pending\" && l(this, k, new Y()), cancelAnimationFrame(e(this, it)), l(this, it, requestAnimationFrame(() => {\n var i;\n (((i = e(this, f)) == null ? void 0 : i.currentTime) ?? null) !== null && (m(this, yt, Gt).call(this), e(this, T).task === \"play\" && (e(this, h) !== null || e(this, p) !== null) ? m(this, pt, Ot).call(this) : e(this, T).task === \"pause\" && m(this, Tt, _t).call(this), Promise.all(e(this, S).map((n) => n.finished)).then(e(this, ht)), Promise.all(e(this, S).map((n) => new Promise((s) => n.onremove = s))).then(e(this, Et)), Promise.all(e(this, S).map((n) => new Promise((s) => n.oncancel = s))).then(e(this, gt)).then(() => l(this, et, \"removed\")));\n }));\n}, X = new WeakSet(), Z = function() {\n cancelAnimationFrame(e(this, it)), e(this, T).task = null;\n}, pt = new WeakSet(), Ot = function() {\n var n;\n const t = ((n = this.timeline) == null ? void 0 : n.currentTime) ?? null;\n if (t === null)\n return;\n const i = e(this, f) instanceof v ? \"percent\" : \"ms\";\n if (e(this, p) !== null)\n m(this, P, L).call(this), this.playbackRate === 0 ? l(this, h, u(t, i)) : (l(this, h, u(t, i) - e(this, p) / this.playbackRate), l(this, p, null));\n else if (e(this, h) !== null && e(this, T).playbackRate !== null) {\n const s = (u(t, i) - e(this, h)) * this.playbackRate;\n m(this, P, L).call(this);\n const a = this.playbackRate;\n a === 0 ? (l(this, p, null), l(this, h, u(t, i))) : l(this, h, u(t, i) - s / a);\n }\n e(this, k).state === \"pending\" && e(this, k).resolve(this), m(this, _, q).call(this, !1), m(this, F, W).call(this), e(this, T).task = null, this.timeline instanceof DocumentTimeline && e(this, S).forEach((s) => s.play());\n}, Tt = new WeakSet(), _t = function() {\n var s;\n const t = ((s = this.timeline) == null ? void 0 : s.currentTime) ?? null;\n if (t === null)\n return;\n const i = e(this, f) instanceof v ? \"percent\" : \"ms\", n = t;\n e(this, h) !== null && e(this, p) === null && l(this, p, (u(n, i) - e(this, h)) * this.playbackRate), m(this, P, L).call(this), l(this, h, null), e(this, k).resolve(this), m(this, _, q).call(this, !1), m(this, F, W).call(this), e(this, T).task = null, e(this, S).forEach((a) => a.pause());\n}, yt = new WeakSet(), Gt = function() {\n if (e(this, j) && !(!e(this, f) || !e(this, f).currentTime) && !(this.playState === \"idle\" || this.playState === \"paused\" && e(this, p) !== null)) {\n if (e(this, f) instanceof v) {\n const t = e(this, T).playbackRate ?? this.playbackRate;\n l(this, h, t >= 0 ? 0 : 100);\n } else\n l(this, h, u(e(this, f).currentTime, \"ms\"));\n l(this, p, null);\n }\n}, F = new WeakSet(), W = function() {\n var a;\n const t = ((a = e(this, f)) == null ? void 0 : a.currentTime) ?? null;\n if (t === null)\n return;\n const i = e(this, D), n = e(this, f) instanceof v ? Ft(t, i == null ? void 0 : i.getTiming()) : bt(t);\n let s = null;\n if (e(this, h) !== null) {\n const y = u(t, \"percent\") === (this.playbackRate < 0 ? 0 : 100) ? this.playbackRate < 0 ? 1e-3 : -1e-3 : 0;\n s = (n - e(this, h)) * this.playbackRate, s += y;\n } else if (e(this, p) !== null)\n s = e(this, p);\n else\n return;\n e(this, S).forEach((c) => c.currentTime = s);\n}, nt = new WeakMap(), ct = new WeakSet(), Rt = function() {\n var n;\n let t = e(this, D);\n const i = [];\n if (t instanceof lt)\n for (let s = 0; s < t.children.length; s++) {\n const a = new Ct(t.children.item(s));\n if (t instanceof Ht && s > 0) {\n const { endTime: c = null } = ((n = i[s - 1].effect) == null ? void 0 : n.getComputedTiming()) ?? {};\n a.startTime = u(c, \"ms\");\n }\n i.push(a);\n }\n else {\n const s = e(this, f) instanceof v ? document.timeline : e(this, f);\n i.push(new qt(t, s));\n }\n l(this, S, i);\n}, _ = new WeakSet(), q = function(t) {\n var c, y;\n const i = ((c = e(this, f)) == null ? void 0 : c.currentTime) ?? null, n = e(this, f) instanceof v ? \"percent\" : \"ms\";\n let s = u(this.currentTime, n);\n if (s && e(this, h) !== null && !this.pending) {\n let { delay: b = 0, endDelay: M = 0, iterations: R = 1, duration: g = \"auto\" } = ((y = e(this, D)) == null ? void 0 : y.getTiming()) ?? {};\n const w = e(this, T).playbackRate ?? this.playbackRate;\n if (g === \"auto\")\n g = e(this, f) instanceof v ? St : 0;\n else if (g instanceof CSSNumericValue)\n g = g.to(\"ms\").value;\n else if (typeof g == \"string\")\n throw new TypeError(\"Unknown effect duration keyword.\");\n const C = b + g * R + M;\n let E = u(e(this, B), n);\n w > 0 && s >= C && e(this, B) !== null ? ((E === null || E < C) && (E = C), l(this, p, t ? s : E)) : w < 0 && s <= 0 ? ((E === null || E > 0) && (E = 0), l(this, p, t ? s : E)) : w !== 0 && (t && e(this, p) !== null && (i !== null ? l(this, h, u(i, n) - e(this, p) / w) : l(this, h, null)), l(this, p, null));\n }\n m(this, F, W).call(this), l(this, B, this.currentTime), this.playState === \"finished\" ? e(this, N).state === \"pending\" && e(this, ht).call(this) : e(this, N).state === \"resolved\" && l(this, N, new Y());\n}, P = new WeakSet(), L = function() {\n e(this, T).playbackRate && (this.playbackRate = e(this, T).playbackRate), e(this, T).playbackRate = null;\n}, ht = new WeakMap(), gt = new WeakMap(), Et = new WeakMap();\nlet Nt = Ct;\nvar J, vt, Vt;\nclass Zt extends lt {\n constructor(t, i = ot) {\n super(t);\n d(this, vt);\n d(this, J, void 0);\n l(this, J, {\n ...ot,\n ...i\n }), t.forEach((n) => n.updateTiming());\n }\n prepend(...t) {\n super.prepend(...t), t.forEach((i) => i.updateTiming());\n }\n append(...t) {\n super.append(...t), t.forEach((i) => i.updateTiming());\n }\n getTiming() {\n return e(this, J);\n }\n getComputedTiming() {\n const t = this.getTiming(), i = { ...t };\n for (let R = 0; R < this.children.length; R++) {\n const g = this.children.item(R);\n if (!g)\n continue;\n let {\n delay: w = 0,\n endDelay: C = 0,\n duration: E = \"auto\",\n activeDuration: A = 0,\n endTime: I = 0\n } = g.getComputedTiming();\n t.delay = t.delay ? Math.min(t.delay, w) : w, t.endDelay = t.endDelay ? Math.max(t.endDelay, C) : C, i.endTime = i.endTime ? Math.max(u(i.endTime, \"ms\"), u(I, \"ms\")) : I, i.activeDuration = i.activeDuration ? Math.max(u(i.activeDuration, \"ms\"), u(A, \"ms\")) : A, t.duration = t.duration instanceof CSSNumericValue ? t.duration.to(\"ms\").value : t.duration, E = E instanceof CSSNumericValue ? E.to(\"ms\").value : E, typeof E != \"string\" && (t.duration === \"auto\" ? t.duration = u(E, \"ms\") : typeof t.duration != \"string\" && (t.duration = t.duration ? Math.max(t.duration, E) : E));\n }\n const { timeline: n, startTime: s, currentTime: a } = G.get(this) ?? {}, c = n instanceof v ? \"percent\" : \"ms\";\n let { duration: y = 0, iterations: b = 1, endTime: M = 0 } = i;\n if (y === \"auto\" && (y = 0), typeof y == \"string\")\n throw new TypeError(\"Unknown effect duration keyword.\");\n return i.duration = y, i.activeDuration = bt(y) * b, i.startTime = s ?? void 0, i.localTime = a, i.currentIteration = xt(i, Pt(i, e(this, vt, Vt))), n instanceof v ? Dt(i) : (n instanceof DocumentTimeline && (i.progress = a && u(a, c) / u(M, c)), i);\n }\n updateTiming(t) {\n l(this, J, {\n ...e(this, J),\n ...t\n });\n for (let i = 0; i < this.children.length; i++) {\n const n = this.children.item(i);\n n == null || n.updateTiming();\n }\n }\n}\nJ = new WeakMap(), vt = new WeakSet(), Vt = function() {\n const { playbackRate: t = 1 } = G.get(this) ?? {};\n return t < 0 ? \"backwards\" : \"forwards\";\n};\nexport {\n Nt as Animation,\n v as GestureTimeline,\n zt as GestureTimelineUpdateEvent,\n lt as GroupEffect,\n mt as KeyframeEffect,\n Zt as ParallelEffect,\n Wt as calculateActiveTime,\n xt as calculateCurrentIterationIndex,\n Kt as calculateOverallProgress,\n $t as calculateSimpleIterationProgress,\n Xt as clamp,\n Dt as computedTimingToPercent,\n u as cssNumberishToNumber,\n Yt as easingToLinear,\n Pt as getPhase,\n st as interpolate,\n Ft as msFromPercent,\n bt as msFromTime,\n Qt as springToLinear\n};\n//# sourceMappingURL=index.js.map\n","import { StylableElement, StyleKeyList, isStylableElement } from './common/types';\nimport { Component, RefObject, createRef } from 'react';\nimport { NavigationBase } from './NavigationBase';\nimport { ScreenBase } from './ScreenBase';\nimport { ParallelEffect } from 'web-animations-extension';\nimport { SharedElement } from './SharedElement';\nimport { toCamelCase } from './common/utils';\n\ninterface SharedElementTransitionLayerProps {\n navigation: NavigationBase;\n direction: \"forwards\" | \"backwards\";\n}\n\ninterface SharedElementTransitionLayerState { }\n\nexport class SharedElementTransitionLayer extends Component<SharedElementTransitionLayerProps, SharedElementTransitionLayerState> {\n public readonly ref = createRef<HTMLDialogElement>();\n #outgoingScreen: RefObject<ScreenBase> | null = null;\n #incomingScreen: RefObject<ScreenBase> | null = null;\n\n state: SharedElementTransitionLayerState = {\n transitioning: false\n }\n\n set outgoingScreen(outgoingScreen: RefObject<ScreenBase> | null) {\n this.#outgoingScreen = outgoingScreen;\n }\n\n set incomingScreen(incomingScreen: RefObject<ScreenBase> | null) {\n this.#incomingScreen = incomingScreen;\n }\n\n get outgoingScreen() {\n return this.#outgoingScreen;\n }\n\n get incomingScreen() {\n return this.#incomingScreen;\n }\n\n getKeyframeProperties(element: Element, styleList: StyleKeyList) {\n const computedStyles: Record<string, string> = {};\n const computedStyle = window.getComputedStyle(element);\n for (const key of styleList) {\n let transformedKey;\n if (key === \"offset\")\n transformedKey = \"cssOffset\";\n else if (key === \"float\")\n transformedKey = \"cssFloat\";\n else\n transformedKey = toCamelCase(key);\n computedStyles[transformedKey] = computedStyle.getPropertyValue(key);\n }\n return computedStyles;\n }\n\n copyStyles(srcElement: Element | null | undefined, cloneElement: StylableElement, styleList: StyleKeyList) {\n if (!isStylableElement(srcElement)) return;\n const computedStyles = window.getComputedStyle(srcElement);\n for (const key of styleList) {\n const value = computedStyles.getPropertyValue(key);\n const priority = computedStyles.getPropertyPriority(key);\n cloneElement.style.setProperty(key, value, priority);\n }\n }\n\n getAnimationEffect<T extends { instance: SharedElement, clone: HTMLElement, rect: DOMRect }>(start: T, end: T) {\n const keyframeEffects = new Array<KeyframeEffect>();\n const config: KeyframeEffectOptions = {\n fill: \"both\" as const,\n duration: \"auto\",\n easing: \"ease\",\n };\n const transitionType = end.instance.transitionType;\n const startTransform = `translate(${start.rect.x}px, ${start.rect.y}px)`;\n const endTransform = `translate(${end.rect.x}px, ${end.rect.y}px)`;\n switch (transitionType) {\n case \"fade\":\n keyframeEffects.push(\n new KeyframeEffect(\n start.clone,\n [\n { transform: startTransform, opacity: 1 },\n { transform: endTransform, opacity: 0 }\n ],\n config\n ),\n );\n keyframeEffects.push(\n new KeyframeEffect(\n end.clone,\n [\n { transform: startTransform },\n { transform: endTransform }\n ],\n config\n ),\n\n );\n break;\n case \"fade-through\":\n keyframeEffects.push(\n new KeyframeEffect(\n start.clone,\n [\n { transform: startTransform, opacity: 1 },\n { opacity: 0, offset: 0.5 },\n { transform: endTransform, opacity: 0 }\n ],\n config\n ),\n\n );\n keyframeEffects.push(\n new KeyframeEffect(\n end.clone,\n [\n { transform: startTransform, opacity: 0 },\n { opacity: 0, offset: 0.5 },\n { transform: endTransform, opacity: 1 }\n ],\n config\n ),\n\n );\n break;\n case \"cross-fade\":\n end.clone.style.mixBlendMode = \"plus-lighter\";\n keyframeEffects.push(\n new KeyframeEffect(\n start.clone,\n [\n { transform: startTransform, opacity: 1 },\n { transform: endTransform, opacity: 0 }\n ],\n config\n ),\n\n );\n keyframeEffects.push(\n new KeyframeEffect(\n end.clone,\n [\n { transform: startTransform },\n { transform: endTransform }\n ],\n config\n ),\n\n );\n break;\n case \"morph\": {\n const styleList = Array.from(new Set([...start.instance.styles, ...end.instance.styles]));\n keyframeEffects.push(\n new KeyframeEffect(\n end.clone,\n [\n {\n ...Object.fromEntries((start.instance.ref.current?.firstElementChild as HTMLElement).attributeStyleMap),\n transform: startTransform,\n width: `${start.rect.width}px`,\n height: `${start.rect.height}px`,\n },\n {\n ...Object.fromEntries((end.instance.ref.current?.firstElementChild as HTMLElement).attributeStyleMap),\n ...this.getKeyframeProperties(end.instance.ref.current?.firstElementChild as HTMLElement, styleList),\n transform: endTransform,\n width: `${end.rect.width}px`,\n height: `${end.rect.height}px`,\n }\n ],\n config\n )\n );\n break;\n }\n }\n return new ParallelEffect(keyframeEffects);\n }\n\n get animationEffect() {\n const currentScene = this.outgoingScreen?.current?.sharedElementScene;\n const nextScene = this.incomingScreen?.current?.sharedElementScene;\n if (!currentScene || !nextScene) return null;\n if (currentScene === nextScene) return null;\n currentScene.previousScene = null;\n nextScene.previousScene = currentScene;\n const parallelEffects = new Array<ParallelEffect>();\n for (const [id, end] of Array.from(nextScene.nodes.entries())) {\n const endRect = end.getBoundingClientRect();\n const start = currentScene.nodes.get(id);\n if (!start?.canTransition || !end.canTransition) continue;\n const startRect = start.getBoundingClientRect();\n const endClone = end.clone();\n const startClone = start.clone();\n if (!startClone || !endClone) continue;\n const styleList = Array.from(new Set([...start.styles, ...end.styles]));\n if (end.transitionType !== \"morph\") {\n startClone.id = `${id}-start`;\n startClone.style.position = \"absolute\";\n startClone.style.gridArea = \"1 / 1\";\n startClone.style.margin = \"0\";\n this.copyStyles(start.ref.current?.firstElementChild, startClone, styleList);\n this.copyStyles(end.ref.current?.firstElementChild, endClone, styleList);\n startClone.style.width = `${startRect.width}px`;\n startClone.style.height = `${startRect.height}px`;\n endClone.style.width = `${endRect.width}px`;\n endClone.style.height = `${endRect.height}px`;\n this.ref.current?.prepend(startClone);\n } else {\n this.copyStyles(start.ref.current?.firstElementChild, endClone, styleList);\n endClone.style.width = `${startRect.width}px`;\n endClone.style.height = `${startRect.height}px`;\n }\n\n endClone.id = `${id}${end.transitionType === \"morph\" ? '' : '-end'}`;\n endClone.style.position = \"absolute\";\n endClone.style.gridArea = \"1 / 1\";\n endClone.style.margin = \"0\";\n this.ref.current?.prepend(endClone);\n start.hide();\n end.hide();\n const onFinish = async () => {\n if (this.props.direction === \"forwards\")\n end.unhide();\n else\n start.unhide();\n endClone.remove();\n startClone.remove();\n };\n this.props.navigation.addEventListener('transition-end', onFinish, { once: true });\n this.props.navigation.addEventListener('transition-cancel', onFinish, { once: true });\n\n parallelEffects.push(this.getAnimationEffect(\n { instance: start, clone: startClone, rect: startRect },\n { instance: end, clone: endClone, rect: endRect }\n ));\n }\n\n return new ParallelEffect(parallelEffects);\n }\n\n render() {\n return (\n <dialog className=\"shared-element-layer\" ref={this.ref} style={{\n maxWidth: 'unset',\n maxHeight: 'unset',\n width: '100vw',\n height: '100vh',\n contain: 'strict',\n padding: 0,\n border: 'none',\n backgroundColor: 'transparent',\n isolation: 'isolate',\n }}>\n <style>\n {`\n .shared-element-layer::backdrop {display: none}\n .shared-element-layer[open] {display:grid}\n `}\n </style>\n </dialog>\n );\n }\n}","import { createContext } from \"react\";\n\nexport const MotionContext = createContext(0);","import { Component, RefObject, createRef } from 'react';\nimport { MotionProgressEvent, TransitionCancelEvent, TransitionEndEvent, TransitionStartEvent } from './common/events';\nimport { SharedElementTransitionLayer } from './SharedElementTransitionLayer';\nimport { ParallelEffect, Animation } from 'web-animations-extension';\nimport { ScreenTransitionLayerContext } from './ScreenTransitionLayerContext';\nimport { ScreenChild } from './common/types';\nimport { NavigationBase } from './NavigationBase';\nimport { ScreenBase } from './ScreenBase';\nimport { MotionContext } from './MotionContext';\n\ninterface ScreenTransitionLayerProps {\n children: ScreenChild | ScreenChild[];\n navigation: NavigationBase;\n hasUAVisualTransition: boolean;\n}\n\ninterface ScreenTransitionLayerState {\n gestureNavigating: boolean;\n progress: number;\n}\n\nexport class ScreenTransitionLayer extends Component<ScreenTransitionLayerProps, ScreenTransitionLayerState> {\n public readonly sharedElementTransitionLayer = createRef<SharedElementTransitionLayer>();\n public readonly animation: Animation = new Animation();\n #direction: PlaybackDirection = \"normal\";\n #screens: RefObject<ScreenBase>[] = new Array();\n\n state: ScreenTransitionLayerState = {\n gestureNavigating: false,\n progress: 1\n }\n\n private onAnimationFrame() {\n const progress = this.animation.effect?.getComputedTiming().progress;\n\n if (progress)\n this.onProgress(progress);\n\n if (this.animation.playState === \"running\")\n requestAnimationFrame(this.onAnimationFrame.bind(this));\n }\n\n private onTransitionCancel() {\n this.props.navigation.dispatchEvent(new TransitionCancelEvent());\n }\n\n private onTransitionStart() {\n this.props.navigation.dispatchEvent(new TransitionStartEvent());\n\n this.onAnimationFrame();\n }\n\n private onTransitionEnd() {\n this.props.navigation.dispatchEvent(new TransitionEndEvent());\n }\n\n private onProgress(progress: number) {\n this.setState({ progress });\n this.props.navigation.dispatchEvent(new MotionProgressEvent(progress));\n }\n\n get screens() {\n return this.#screens;\n }\n\n set screens(screens: RefObject<ScreenBase>[]) {\n this.#screens = screens;\n }\n\n set direction(direction: PlaybackDirection) {\n this.#direction = direction;\n this.animation.effect?.updateTiming({ direction });\n }\n\n get direction() {\n return this.#direction;\n }\n\n get hasUAVisualTransition() {\n return this.props.hasUAVisualTransition;\n }\n\n public transition() {\n const effect = new ParallelEffect(\n this.screens.map(screen => {\n return screen.current?.transitionProvider?.current?.animationEffect ?? null;\n }).filter((effect): effect is AnimationEffect => effect !== null)\n );\n\n const sharedElementEffect = this.sharedElementTransitionLayer.current?.animationEffect;\n const duration = effect.getComputedTiming().duration;\n if (sharedElementEffect) {\n sharedElementEffect.updateTiming({\n duration: duration instanceof CSSNumericValue ? duration.to('ms').value : duration\n });\n effect.append(sharedElementEffect);\n this.sharedElementTransitionLayer.current?.ref.current?.showModal();\n }\n\n this.animation.effect = effect;\n\n this.animation.play();\n this.onTransitionStart();\n\n this.animation.oncancel = () => {\n this.sharedElementTransitionLayer.current?.ref.current?.close();\n this.onTransitionCancel();\n this.animation.effect = null;\n }\n this.animation.finished.then(() => {\n this.animation.commitStyles();\n this.onTransitionEnd();\n this.sharedElementTransitionLayer.current?.ref.current?.close();\n this.animation.effect = null;\n });\n\n return this.animation;\n }\n\n render() {\n return (\n <ScreenTransitionLayerContext.Provider value={this}>\n <SharedElementTransitionLayer\n ref={this.sharedElementTransitionLayer}\n navigation={this.props.navigation}\n direction={this.animation.playbackRate > 0 ? \"forwards\" : \"backwards\"}\n />\n <div\n className=\"screen-transition-layer\"\n style={{\n width: '100%',\n height: '100%',\n display: 'grid',\n contain: 'layout',\n isolation: 'isolate',\n '--motion-progress': this.state.progress\n } as React.CSSProperties}\n >\n <MotionContext.Provider value={this.state.progress}>\n {this.props.children}\n </MotionContext.Provider>\n </div>\n </ScreenTransitionLayerContext.Provider>\n );\n }\n}","import { NavigationBase } from './NavigationBase';\nimport { ScreenTransitionLayer } from './ScreenTransitionLayer';\nimport {\n ScreenChild,\n RouterBaseEventMap,\n RouterHTMLElement,\n isLazyExoticComponent,\n isValidScreenChild\n} from './common/types';\nimport { NestedRouterContext, RouterContext } from './RouterContext';\nimport { dispatchEvent, matchRoute, resolveBaseURLFromPattern } from './common/utils';\nimport { Component, createRef, isValidElement, Children } from 'react';\nimport { ScreenBase, ScreenBaseConfig } from './ScreenBase';\nimport { LoadEvent } from './common/events';\n\ntype ScreenType<T> = T extends ScreenChild<infer S> | ScreenChild<infer S>[] ? S : never;\n\nexport interface RouterBaseConfig {\n screenConfig?: ScreenBaseConfig;\n basePath?: string;\n}\n\nexport interface RouterBaseProps<S extends ScreenBase = ScreenBase> {\n id?: string;\n config?: RouterBaseConfig;\n children: ScreenChild<S> | ScreenChild<S>[];\n}\n\nexport interface RouterBaseState {}\n\nexport abstract class RouterBase<P extends RouterBaseProps = RouterBaseProps, S extends RouterBaseState = RouterBaseState, E extends RouterBaseEventMap = RouterBaseEventMap> extends Component<P, S> {\n protected readonly ref = createRef<RouterHTMLElement<E>>();\n protected screenTransitionLayer = createRef<ScreenTransitionLayer>();\n public abstract readonly navigation: NavigationBase;\n public readonly parent: RouterBase | null = null;\n #child: WeakRef<RouterBase> | null = null;\n private loadDispatched = false;\n private hasUAVisualTransition = false;\n public readonly parentScreen: ScreenBase | null = null;\n private static rootRouterRef: WeakRef<RouterBase> | null = null;\n static readonly contextType = NestedRouterContext;\n declare context: React.ContextType<typeof NestedRouterContext>;\n\n constructor(props: P, context: React.ContextType<typeof NestedRouterContext>) {\n super(props);\n\n this.parentScreen = context?.parentScreen ?? null;\n this.parent = context?.parentRouter ?? null;\n if (this.parent) {\n this.parent.child = this;\n }\n if (this.isRoot) {\n RouterBase.rootRouterRef = new WeakRef(this);\n }\n }\n\n componentDidMount() {\n if (this.isRoot) {\n window.navigation.addEventListener('navigate', this.handleNavigationDispatch);\n }\n\n if (!this.loadDispatched) {\n window.navigation.dispatchEvent(new LoadEvent());\n this.loadDispatched = true;\n }\n }\n\n componentWillUnmount() {\n if (this.isRoot) {\n window.navigation.removeEventListener('navigate', this.handleNavigationDispatch);\n }\n }\n\n private handleNavigationDispatch = (e: NavigateEvent) => {\n const activeRouters = [...this.#activeRoutersIter()];\n // travel down router tree to find a router that can intercept\n const interceptor = activeRouters.findLast(router => router.canIntercept(e));\n if (interceptor) {\n interceptor.intercept(e);\n this.hasUAVisualTransition = e.hasUAVisualTransition;\n }\n };\n\n *#activeRoutersIter() {\n let router: RouterBase | null = this;\n while (router) {\n yield router;\n router = router.child;\n }\n }\n\n getRouterById(routerId: string, target?: RouterBase): RouterBase | null {\n const router = target ?? RouterBase.rootRouterRef?.deref();\n if (router!.id === routerId) {\n return router ?? null;\n } else if (router?.child) {\n return this.getRouterById(routerId, router!.child);\n } else {\n return null;\n }\n }\n\n dispatchEvent(event: Event) {\n const ref = this.ref.current ?? undefined;\n return dispatchEvent(event, ref);\n }\n\n addEventListener<K extends keyof E>(type: K, listener: (this: RouterHTMLElement<E>, ev: E[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void {\n return this.ref.current?.addEventListener(type, listener, options);\n }\n\n removeEventListener<K extends keyof E>(type: K, listener: (this: RouterHTMLElement<E>, ev: E[K]) => any, options?: boolean | EventListenerOptions | undefined): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions) {\n return this.ref.current?.removeEventListener(type, listener, options);\n }\n\n protected screenChildFromPathname(pathname: string) {\n for (const child of Children.toArray(this.props.children)) {\n if (!isValidScreenChild<ScreenType<P['children']>>(child)) continue;\n const matchInfo = matchRoute(\n child.props.path,\n pathname,\n this.baseURLPattern.pathname,\n child.props.caseSensitive\n );\n if (matchInfo)\n return {\n child ,\n matchInfo,\n };\n }\n\n return null;\n }\n\n protected preloadScreen(screen: ScreenChild) {\n const config = screen.props.config;\n const preloadTasks = [];\n if (isLazyExoticComponent(screen.props.component))\n preloadTasks.push(screen.props.component.load());\n if (isLazyExoticComponent(config?.header?.component))\n preloadTasks.push(config?.header?.component.load());\n if (isLazyExoticComponent(config?.footer?.component))\n preloadTasks.push(config?.footer?.component.load());\n\n return Promise.all(preloadTasks).then(() => { return; });\n }\n\n get id(): string {\n if (this.props.id) return this.props.id;\n const prefix = this.parent?.id;\n const id = this.parentScreen?.id ?? 'root';\n return [prefix, id].filter(Boolean).join('-');\n }\n\n get isRoot() {\n return !this.parent;\n }\n\n get baseURL() {\n const pathname = this.isRoot ? window.location.pathname : this.parentScreen?.resolvedPathname!;\n const pattern = this.baseURLPattern.pathname;\n\n return resolveBaseURLFromPattern(pattern, pathname)!;\n }\n\n get baseURLPattern() {\n let baseURL = window.location.origin + '/';\n let basePath = this.props.config?.basePath;\n if (!basePath) {\n if (this.isRoot) {\n basePath = '/';\n } else {\n basePath = '.';\n }\n }\n\n if (this.parent && this.parentScreen) {\n const { resolvedPathname = window.location.pathname, path } = this.parentScreen;\n const parentBaseURL = this.parent.baseURL?.href;\n const pattern = new URLPattern({ baseURL: parentBaseURL, pathname: path });\n baseURL = resolveBaseURLFromPattern(\n pattern.pathname,\n resolvedPathname\n )!.href;\n }\n\n return new URLPattern({ baseURL, pathname: basePath });\n }\n\n get pathPatterns() {\n return Children.map(this.props.children, (child) => {\n return { pattern: child.props.path, caseSensitive: Boolean(child.props.caseSensitive) };\n });\n }\n\n get mounted() {\n return Boolean(this.ref.current);\n }\n\n get child() {\n return this.#child?.deref() ?? null;\n }\n\n set child(child: RouterBase | null) {\n const currentChildRouter = this.#child?.deref();\n if (\n currentChildRouter\n && child?.id !== currentChildRouter.id\n && child?.parentScreen?.id === currentChildRouter.parentScreen?.id\n && currentChildRouter.mounted\n ) {\n throw new Error('It looks like you have two navigators at the same level. Try simplifying your navigation structure by using a nested router instead.');\n }\n if (child)\n this.#child = new WeakRef(child);\n else\n this.#child = null;\n }\n\n protected abstract canIntercept(navigateEvent: NavigateEvent): boolean;\n protected abstract shouldIntercept(navigateEvent: NavigateEvent): boolean;\n protected abstract intercept(navigateEvent: NavigateEvent): void;\n protected abstract get screens(): P['children'];\n\n render() {\n if (!this.navigation) return;\n return (\n <div\n id={this.id}\n className=\"react-motion-router\"\n style={{ width: '100%', height: '100%' }}\n ref={this.ref}\n >\n <RouterContext.Provider value={this}>\n <ScreenTransitionLayer\n ref={this.screenTransitionLayer}\n navigation={this.navigation}\n hasUAVisualTransition={this.hasUAVisualTransition}\n >\n {this.screens}\n </ScreenTransitionLayer>\n </RouterContext.Provider>\n </div>\n );\n }\n}","import { MetaKey, MetaType, MetaTypeKey } from \"./common/types\";\n\nexport class MetaData {\n #map = new Map<MetaKey, string | undefined>();\n private mutationObserver: MutationObserver;\n\n constructor() {\n this.mutationObserver = new MutationObserver(this.observeMutations.bind(this));\n const {head} = document;\n this.mutationObserver.observe(head, {\n childList: true\n });\n\n Array.from(head.querySelectorAll('meta')).forEach(node => {\n this.mutationObserver.observe(node, {\n attributes: true\n });\n });\n\n Array.from(head.querySelectorAll('meta')).forEach(this.metaDataFromNode.bind(this));\n }\n\n get(key: string | MetaType) {\n const metaKey = this.getMetaKey(key);\n\n const metaContent = this.#map.get(metaKey);\n if (!metaContent) return undefined;\n\n let content: string | [string, string][];\n if (metaContent.includes(',') && metaContent.includes('=')) {\n content = metaContent.split(/,\\s*/).map(keyVal => keyVal.split('=') as [string, string]);\n } else {\n content = metaContent;\n }\n\n return content;\n }\n\n set(key: string | MetaType, content?: string | [string, string][]) {\n const metaKey = this.getMetaKey(key);\n const metaContent = this.getMetaContent(content);\n\n this.#map.set(metaKey, metaContent);\n this.updateMetaElement(metaKey, metaContent);\n }\n\n has(key: string | MetaType) {\n const metaKey = this.getMetaKey(key);\n\n return this.#map.has(metaKey);\n }\n\n delete(key: string | MetaType) {\n const metaKey = this.getMetaKey(key);\n\n this.#map.delete(metaKey);\n document.head.querySelector(`meta[${metaKey}]`)?.remove();\n }\n\n clear() {\n document.head.querySelectorAll('meta').forEach(node => node.remove());\n }\n\n entries() {\n return this.#map.entries();\n }\n\n [Symbol.iterator]() {\n return this.entries();\n }\n\n get size() {\n return this.#map.size;\n }\n \n private observeMutations(mutations: MutationRecord[]) {\n for (const mutation of mutations) {\n if (mutation.type === 'attributes') {\n const node = mutation.target;\n\n this.metaDataFromNode(node as HTMLMetaElement);\n }\n\n if (mutation.type !== 'childList') return;\n\n mutation.removedNodes.forEach((node) => {\n if (node.nodeName === 'META') {\n const [type] = Array.from((node as HTMLMetaElement).attributes).filter(attribute => attribute.nodeName !== \"content\");\n const metaType: MetaType = [type.nodeName as MetaTypeKey, type.value];\n\n const key = metaType.join('=') as MetaKey;\n if (this.#map.has(key)) {\n this.#map.delete(key);\n }\n }\n });\n mutation.addedNodes.forEach(node => {\n if (node.nodeName === 'META') {\n this.metaDataFromNode(node as HTMLMetaElement);\n }\n });\n }\n }\n\n private metaDataFromNode(node: HTMLMetaElement) {\n const [type] = Array.from((node as HTMLMetaElement).attributes).filter(attribute => attribute.nodeName !== \"content\");\n const [content] = Array.from((node as HTMLMetaElement).attributes).filter(attribute => attribute.nodeName === \"content\");\n const metaType: MetaType = [type.nodeName as MetaTypeKey, type.value];\n\n const key = metaType.join('=') as MetaKey;\n this.#map.set(key, content?.value);\n }\n\n private getMetaKey(key: string | MetaType) {\n let metaKey: MetaKey;\n if (typeof key === \"string\") {\n metaKey = `name=${key}` as MetaKey;\n } else {\n metaKey = key.join('=') as MetaKey;\n }\n\n return metaKey;\n }\n\n private getMetaContent(content: string | [string, string][] | undefined) {\n if (!content) return undefined;\n\n let metaContent: string;\n if (typeof content === \"string\") {\n metaContent = content;\n } else {\n metaContent = content.map(contentTuple => contentTuple.join('=')).join(', ');\n }\n\n return metaContent;\n }\n\n private updateMetaElement(key: MetaKey, content?: string) {\n const meta = document.querySelector(`meta[${key}]`) || document.createElement('meta');\n const metaType = key.split('=') as MetaType;\n\n meta.setAttribute(...metaType);\n if (content) meta.setAttribute('content', content);\n else meta.removeAttribute('content');\n\n if (!meta.parentElement) {\n document.head.appendChild(meta);\n }\n }\n}","import { RouterHTMLElement, RouterBaseEventMap } from \"./common/types\";\nimport { MetaData } from \"./MetaData\";\nimport { RouterBase } from \"./RouterBase\";\n\nexport abstract class NavigationBase<E extends RouterBaseEventMap = RouterBaseEventMap> {\n protected abstract readonly router: RouterBase;\n private static rootNavigatorRef: WeakRef<NavigationBase> | null = null;\n public readonly metaData = new MetaData();\n\n constructor() {\n const rootNavigator = NavigationBase.rootNavigatorRef?.deref();\n if (!rootNavigator || !rootNavigator.isInDocument)\n NavigationBase.rootNavigatorRef = new WeakRef(this);\n }\n\n addEventListener<K extends keyof E>(type: K, listener: (this: RouterHTMLElement<E>, ev: E[K]) => any, options?: boolean | AddEventListenerOptions): () => void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): () => void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): () => void {\n this.router.addEventListener(type, listener, options);\n return () => this.router.removeEventListener(type, listener, options);\n }\n\n removeEventListener<K extends keyof E>(type: K, listener: (this: RouterHTMLElement<E>, ev: E[K]) => any, options?: boolean | EventListenerOptions | undefined): void\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void {\n return this.router.removeEventListener(type, listener, options);\n }\n\n dispatchEvent(event: Event) {\n return this.router.dispatchEvent?.(event);\n }\n\n get parent(): NavigationBase | null {\n return this.router.parent?.navigation ?? null;\n }\n\n get routerId() {\n return this.router.id;\n }\n\n get baseURL() {\n return this.router.baseURL;\n }\n\n get baseURLPattern() {\n return this.router.baseURLPattern;\n }\n\n public getNavigatorById(routerId: string) {\n return this.router.getRouterById(routerId)?.navigation ?? null;\n }\n\n private get isInDocument() {\n return Boolean(document.getElementById(`${this.routerId}`));\n }\n}","import { useCallback, useContext, useDebugValue, useEffect, useRef } from 'react';\nimport { MotionContext } from '../MotionContext';\nimport { NavigationBase } from '../NavigationBase';\nimport { RouterContext } from '../RouterContext';\nimport { RoutePropContext } from '../RoutePropContext';\nimport { RouterBase } from '../RouterBase';\nimport { RoutePropBase } from './types';\n\nexport function useNavigationBase<T extends NavigationBase = NavigationBase>() {\n const router = useContext(RouterContext);\n if (router) {\n return router.navigation as T;\n } else {\n throw new Error('Router is null. You may be trying to call useNavigation outside a Router.');\n }\n}\n\nexport function useRouterBase<T extends RouterBase = RouterBase>() {\n return useContext(RouterContext) as T;\n}\n\nexport function useMotion() {\n useDebugValue('Motion');\n return useContext(MotionContext);\n}\n\nexport function useRouteBase<R extends RoutePropBase>() {\n const routeProp = useContext(RoutePropContext);\n if (routeProp) {\n return routeProp as R;\n } else {\n throw new Error('Router is null. You may be trying to call useRoute outside a Router.');\n }\n}\n\nexport function useParamsBase<K extends string, S>(key: K, initialParams: S | (() => S)): [S, React.Dispatch<React.SetStateAction<S>>] {\n const route = useRouteBase();\n const initial = initialParams instanceof Function ? initialParams() : initialParams;\n\n const routeRef = useRef(route);\n useEffect(() => {\n routeRef.current = route;\n }, [route]);\n\n const setParam = useCallback((param: S | ((prevState: S) => S)) => {\n const { params, setParams } = routeRef.current;\n if (param instanceof Function)\n param = param(params[key] ?? initial);\n setParams({ [key]: param });\n }, [initial, key]);\n\n const param = route.params[key];\n\n return [param ?? initial, setParam] as const;\n}","export const MAX_Z_INDEX = 2147483647;\nexport const MAX_PROGRESS = 100;\nexport const MIN_PROGRESS = 0;\nexport const MIN_NORM_PROGRESS = 0;\nexport const MAX_NORM_PROGRESS = 1;"],"names":["SharedElementSceneContext","createContext","SharedElement","Component","createRef","prevProps","deepClone","jsx","resolveBaseURLFromPattern","pattern","pathname","origin","baseURLMatch","nestedPathnameGroup","key","group","matchRoute","pathnamePattern","baseURLPattern","caseSensitive","baseURL","match","params","includesRoute","pathnamePatterns","dispatchEvent","event","target","resolve","lazy","factory","ReactLazy","isNavigationSupported","isURLPatternSupported","polyfillURLPattern","URLPattern","polyfillNavigation","applyPolyfill","PromiseAllDynamic","values","awaited","value","toCamelCase","g","cloneAndInject","element","injectProps","cloneElement","TransitionStartEvent","TransitionCancelEvent","TransitionEndEvent","MotionProgressStartEvent","MotionProgressEvent","progress","MotionProgressEndEvent","LoadEvent","#navigationType","#userInitiated","#canIntercept","#hashChange","#formData","#downloadRequest","#destination","#signal","#abortable","#intercepted","#thenables","#transition","currentEntry","#onNavigate","e","options","finish","thenable","ScreenTransitionLayerContext","ScreenTransitionProvider","animationEffectFactory","animation","direction","hasUAVisualTransition","timeline","playbackRate","index","exiting","ref","zIndex","Element","inert","NestedRouterContext","RouterContext","RoutePropContext","SharedElementScene","id","node","_id","xRatio","yRatio","ScreenBase","#transitionProvider","props","context","newParams","newConfig","config","isLazyExoticComponent","signal","HeaderComponent","FooterComponent","result","navigation","route","preloading","routeProp","jsxs","Suspense","ComponentWithRouteProps","component","isNativeLazyExoticComponent","isValidElement","Fragment","isValidScreenChild","isStylableElement","Lt","jt","o","r","t","V","wt","d","l","i","m","ot","St","qt","ft","At","Q","u","Ft","n","s","a","y","b","st","bt","It","Bt","c","R","Xt","Dt","M","Pt","Wt","Kt","$t","xt","zt","x","K","v","G","tt","mt","$","at","lt","Y","z","dt","Ut","Ht","w","C","E","A","I","Mt","f","D","et","T","k","N","h","p","S","B","j","it","O","ut","kt","H","rt","X","Z","pt","Ot","Tt","_t","yt","Gt","F","W","nt","ct","Rt","_","q","P","L","ht","gt","Et","Ct","Nt","J","vt","Vt","Zt","SharedElementTransitionLayer","#outgoingScreen","#incomingScreen","outgoingScreen","incomingScreen","styleList","computedStyles","computedStyle","transformedKey","srcElement","priority","start","end","keyframeEffects","transitionType","startTransform","endTransform","ParallelEffect","currentScene","nextScene","parallelEffects","endRect","startRect","endClone","startClone","onFinish","MotionContext","ScreenTransitionLayer","Animation","#direction","#screens","screens","effect","screen","sharedElementEffect","duration","RouterBase","#child","interceptor","#activeRoutersIter","router","routerId","type","listener","child","Children","matchInfo","preloadTasks","prefix","basePath","resolvedPathname","path","parentBaseURL","currentChildRouter","MetaData","#map","head","metaKey","metaContent","content","keyVal","mutations","mutation","attribute","contentTuple","meta","metaType","NavigationBase","rootNavigator","useNavigationBase","useContext","useRouterBase","useMotion","useDebugValue","useRouteBase","useParamsBase","initialParams","initial","routeRef","useRef","useEffect","setParam","useCallback","param","setParams","MAX_Z_INDEX","MAX_PROGRESS","MIN_PROGRESS","MIN_NORM_PROGRESS","MAX_NORM_PROGRESS"],"mappings":";;AAGa,MAAAA,KAA4BC,GAAkC,IAAK;ACiBzE,MAAMC,WAAsBC,GAAkD;AAAA,EACjE,MAAMC,EAA0B;AAAA,EAChD,OAAgB,cAAcJ;AAAA,EAG9B,oBAA0B;AACjB,SAAA,MAAM,QAAQ,IAAI;AAAA,EAC3B;AAAA,EAEA,mBAAmBK,GAA+B;AAC9C,IAAI,KAAK,MAAM,OAAOA,EAAU,OAC5B,KAAK,MAAM,WAAWA,EAAU,GAAG,UAAU,GACxC,KAAA,MAAM,QAAQ,IAAI;AAAA,EAE/B;AAAA,EAEA,uBAA6B;AACpB,SAAA,MAAM,WAAW,KAAK,EAAE;AAAA,EACjC;AAAA,EAEA,IAAI,SAAuB;AACnB,WAAA,KAAK,MAAM,QAAQ,SACZ,KAAK,MAAM,OAAO,SAEtB;EACX;AAAA,EAEA,IAAI,gBAAgB;AAChB,WAAO,CAAC,KAAK,MAAM,YACZ,KAAK,MAAM;AAAA,EACtB;AAAA,EAEA,IAAI,QAAQ;AACR,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,KAAK;AACL,WAAO,kBAAkB,KAAK,MAAM,GAAG,SAAU,CAAA;AAAA,EACrD;AAAA,EAEA,IAAI,iBAA8C;AAC9C,WAAO,KAAK,MAAM,QAAQ,QAAQ,KAAK,MAAM,eAAe,MAAM,IAAI,KAAK,EAAE,GAAG,kBAAkB;AAAA,EACtG;AAAA,EAEA,wBAAwB;AACpB,WAAO,KAAK,IAAI,SAAS,mBAAmB,sBAAsB,KAAK,IAAI;EAC/E;AAAA,EAEO,QAAQ;AACP,QAAA,CAAC,KAAK,IAAI;AAAgB,aAAA;AAC9B,UAAMC,IAAY,KAAK,MAAM,QAAQ,aAAa;AAClD,WAAO,KAAK,IAAI,QAAQ,mBAAmB,UAAUA,CAAS;AAAA,EAClE;AAAA,EAEO,OAAO;AACN,IAAC,KAAK,IAAI,YACT,KAAA,IAAI,QAAQ,MAAM,aAAa;AAAA,EACxC;AAAA,EAEO,SAAS;AACR,IAAC,KAAK,IAAI,YACT,KAAA,IAAI,QAAQ,MAAM,aAAa;AAAA,EACxC;AAAA,EAEA,SAAS;AAED,WAAA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,KAAK,KAAK;AAAA,QACV,IAAI,KAAK;AAAA,QACT,OAAO,EAAE,SAAS,WAAW;AAAA,QAE5B,eAAK,MAAM;AAAA,MAAA;AAAA,IAAA;AAAA,EAGxB;AACJ;AC5FgB,SAAAC,GAA0BC,GAAiBC,GAAkB;AACvE,EAACD,EAAQ,SAAS,GAAG,MAAcA,KAAA;AACjC,QAAAE,IAAS,OAAO,SAAS,QACzBC,IAAe,IAAI,WAAWH,GAASE,CAAM,EAAE,KAAKD,GAAUC,CAAM;AAC1E,MAAI,CAACC;AAAqB,WAAA;AAM1B,QAAMC,IAJS,OAAO,KAAKD,EAAa,SAAS,MAAM,EACpD,OAAO,CAACE,MAAQ,CAAC,MAAM,OAAOA,CAAG,CAAC,CAAC,EACnC,IAAI,CAACA,MAAQF,EAAa,SAAS,OAAOE,CAAG,CAAC,EAC9C,OAAO,CAACC,MAAUA,MAAU,MAAS,EACL,GAAG,EAAE,KAAK;AAEtC,SAAA,IAAI,IAAIL,EAAS,QAAQG,GAAqB,EAAE,GAAG,OAAO,SAAS,MAAM;AAClF;AAEgB,SAAAG,GACdC,GACAP,GACAQ,IAAyB,GAAG,OAAO,SAAS,MAAM,KAClDC,IAAyB,IACJ;AACrB,EAAKA,MACHF,IAAkBA,EAAgB,eAClCP,IAAWA,EAAS;AAGtB,QAAMU,IAAUZ,GAA0BU,GAAgBR,CAAQ,GAAG;AACrE,MAAI,CAACU;AAAgB,WAAA;AAErB,QAAMC,IAAQ,IAAI,WAAW,EAAE,SAAAD,GAAS,UAAUH,EAAiB,CAAA,EAAE,KAAK,EAAE,UAAAP,GAAU,SAAAU,EAAS,CAAA,GACzFE,IAASD,GAAO,SAAS,UAAU,CAAA;AACzC,SAAIA,IACK;AAAA,IACL,QAAAC;AAAA,IACA,eAAAH;AAAA,EAAA,IAGG;AACT;AAEO,SAASI,GAAcC,GAAiCd,GAAkBU,IAAkB,OAAO,SAAS,QAAQ;AACzH,SAAOI,EAAiB,KAAK,CAAC,EAAE,SAAAf,GAAS,eAAAU,EAAA,MAAoBH,GAAWP,GAASC,GAAUU,GAASD,CAAa,CAAC;AACpH;AAEgB,SAAAM,GAAiBC,GAA+BC,IAAoC,QAAQ;AACnG,SAAA,IAAI,QAAiB,CAACC,MAAY;AACvC,mBAAe,MAAMA;AAAA,MACnBD,EAAO,cAAcD,CAAK;AAAA,IAAA,CAC3B;AAAA,EAAA,CACF;AACH;AAEO,SAASG,GACdC,GACwB;AAClB,QAAA3B,IAAY4B,GAAUD,CAAO;AACnC,SAAA3B,EAAU,OAAO,aACLA,EAAA,WAAW,MAAM2B,KACpB3B,EAAU,SAEZA;AACT;AAEO,SAAS6B,KAAwB;AAC/B,SAAA,EAAQ,OAAO;AACxB;AAEO,SAASC,KAAwB;AAE/B,SAAA,EAAQ,WAAW;AAC5B;AAEA,eAAsBC,KAAqB;AACzC,QAAM,EAAE,YAAAC,EAAW,IAAI,MAAM;AAAA;AAAA,IAA+B;AAAA,EAAA;AAE5D,aAAW,aAAaA;AAC1B;AAEA,eAAsBC,KAAqB;AACnC,QAAA,EAAE,eAAAC,EAAc,IAAI,MAAM;AAAA;AAAA,IAA+B;AAAA,EAAA;AACjD,EAAAA,EAAA;AAAA,IACZ,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB,OAAO;AAAA,IACP,SAAS;AAAA,IACT,cAAc;AAAA,EAAA,CACf;AACH;AAEA,eAAsBC,GAAqBC,GAA6D;AACtG,QAAMC,IAAU,CAAA;AAChB,aAAWC,KAASF;AACV,IAAAC,EAAA,KAAK,MAAMC,CAAK;AAGnB,SAAAD;AACT;AAEO,SAASE,GAAYD,GAAe;AAClC,SAAAA,EAAM,QAAQ,aAAa,CAACE,MAAMA,EAAE,CAAC,EAAE,YAAA,CAAa;AAC7D;AAEgB,SAAAC,GAGdC,GAAYC,GAAiB;AACtB,SAAAC,GAAaF,GAASC,CAAW;AAC1C;AC3GO,MAAME,WAA6B,MAAM;AAAA,EAC/C,cAAc;AACb,UAAM,kBAAkB;AAAA,EACzB;AACD;AAEO,MAAMC,WAA8B,MAAM;AAAA,EAChD,cAAc;AACb,UAAM,mBAAmB;AAAA,EAC1B;AACD;AAEO,MAAMC,WAA2B,MAAM;AAAA,EAC7C,cAAc;AACb,UAAM,gBAAgB;AAAA,EACvB;AACD;AAEO,MAAMC,WAAiC,MAAM;AAAA,EACnD,cAAc;AACb,UAAM,uBAAuB;AAAA,EAC9B;AACD;AAEO,MAAMC,WAA4B,MAAM;AAAA,EACrC;AAAA,EAET,YAAYC,GAAkB;AAC7B,UAAM,iBAAiB,GACvB,KAAK,WAAWA;AAAA,EACjB;AACD;AAEO,MAAMC,WAA+B,MAAM;AAAA,EACjD,cAAc;AACb,UAAM,qBAAqB;AAAA,EAC5B;AACD;AAEO,MAAMC,WAAkB,MAAkE;AAAA,EAChGC,KAAkB;AAAA,EAClBC,KAA0B;AAAA,EAC1BC,KAAyB;AAAA,EACzBC,KAAuB;AAAA,EACvBC,KAA6B;AAAA,EAC7BC,KAAkC;AAAA,EAClCC;AAAA,EACAC;AAAA,EACAC,KAAa,IAAI;EACjBC,KAAe;AAAA,EACfC,KAA8B,CAAA;AAAA,EAC9BC,KAA+C;AAAA,EACtC,wBAAwB;AAAA,EAEjC,cAAc;AACP,UAAA,YAAY,EAAE,YAAY,IAAO,SAAS,IAAO,UAAU,IAAO;AAClE,UAAAC,IAAe,OAAO,WAAW;AACvC,QAAI,CAACA;AAAoB,YAAA,IAAI,MAAM,uBAAuB;AAC1D,SAAKN,KAAe;AAAA,MACnB,WAAW;AACV,eAAOM,EAAa;MACrB;AAAA,MACA,KAAKA,EAAa,OAAO,IAAI,IAAI,OAAO,SAAS,IAAI,EAAE;AAAA,MACvD,KAAKA,EAAa;AAAA,MAClB,OAAOA,EAAa;AAAA,MACpB,IAAIA,EAAa;AAAA,MACjB,cAAc;AAAA,IAAA,GAGV,KAAAL,KAAU,KAAKC,GAAW,QACxB,OAAA,WAAW,iBAAiB,YAAY,KAAKK,IAAa,EAAE,QAAQ,KAAKN,GAAA,CAAS;AAAA,EAC1F;AAAA,EAEAM,KAAc,CAACC,MAAa;AAC3B,IAAIA,MAAM,OACT,KAAKN,GAAW,UACL,KAAKE,GAAW,UAC3B,OAAO,WAAW,oBAAoB,YAAY,KAAKG,EAAW;AAAA,EACnE;AAAA,EAGD,UAAUE,GAAwD;AACjE,QAAI,KAAKN;AAAoB,YAAA,IAAI,aAAa,gIAAgI;AAC9K,QAAIO,IAA0B;AAC1B,IAAC,KAAKL,OACT,KAAKA,KAAc;AAAA,MAClB,UAAU,IAAI,QAAQ,CAACvC,MAAY4C,IAAS5C,CAAO;AAAA,MACnD,MAAM,OAAO,WAAW;AAAA,MACxB,gBAAgB;AAAA,IAAA;AAGZ,UAAA6C,IAAWF,GAAS;AACtB,IAAAE,KAAe,KAAAP,GAAW,KAAKO,CAAQ,GACvC,KAAKP,GAAW,WAAW,KAC9B5B,GAAkB,KAAK4B,EAAU,EAAE,KAAK,MAAM;AAC7C,WAAKD,KAAe,IACb,OAAA,oBAAoB,YAAY,KAAKI,EAAW,GAC9CG;IAAA,CACT;AAAA,EAEH;AAAA,EAEA,SAAe;AACR,UAAA,IAAI,MAAM,yBAAyB;AAAA,EAC1C;AAAA,EAEA,IAAI,aAAa;AAChB,WAAO,KAAKL;AAAA,EACb;AAAA,EAEA,IAAI,iBAAiB;AACpB,WAAO,KAAKX;AAAA,EACb;AAAA,EAEA,IAAI,gBAAgB;AACnB,WAAO,KAAKC;AAAA,EACb;AAAA,EAEA,IAAI,eAAe;AAClB,WAAO,KAAKC;AAAA,EACb;AAAA,EAEA,IAAI,aAAa;AAChB,WAAO,KAAKC;AAAA,EACb;AAAA,EAEA,IAAI,WAAW;AACd,WAAO,KAAKC;AAAA,EACb;AAAA,EAEA,IAAI,kBAAkB;AACrB,WAAO,KAAKC;AAAA,EACb;AAAA,EAEA,IAAI,cAAc;AACjB,WAAO,KAAKC;AAAA,EACb;AAAA,EAEA,IAAI,SAAS;AACZ,WAAO,KAAKC;AAAA,EACb;AACD;AC7Ia,MAAAW,KAA+BzE,GAAqC,IAAK;ACe/E,MAAM0E,WAAiCxE,GAAwE;AAAA,EAClG,MAAMC,EAAuB;AAAA,EAC7C,OAAgB,cAAcsE;AAAA,EAEvB,QAAQ;AAAA,EACR,UAAU;AAAA,EAEjB,QAAuC;AAAA,IACnC,QAAQ;AAAA,EAAA;AAAA,EAGJ,iBAAiB,MAAM;AACvB,IAAA,KAAK,IAAI,YACJ,KAAA,IAAI,QAAQ,MAAM,aAAa,QAC/B,KAAA,IAAI,QAAQ,MAAM,gBAAgB;AAAA,EAC3C;AAAA,EAGI,mBAAmB,MAAM;AACzB,IAAA,KAAK,IAAI,YACJ,KAAA,IAAI,QAAQ,MAAM,aAAa,sBAC/B,KAAA,IAAI,QAAQ,MAAM,gBAAgB;AAAA,EAC3C;AAAA,EAGJ,oBAAoB;AAChB,SAAK,MAAM,WAAW,iBAAiB,oBAAoB,KAAK,gBAAgB,GAChF,KAAK,MAAM,WAAW,iBAAiB,kBAAkB,KAAK,cAAc,GAC5E,KAAK,MAAM,WAAW,iBAAiB,qBAAqB,KAAK,cAAc;AAAA,EACnF;AAAA,EAEA,uBAAuB;AACnB,SAAK,MAAM,WAAW,oBAAoB,oBAAoB,KAAK,gBAAgB,GACnF,KAAK,MAAM,WAAW,oBAAoB,kBAAkB,KAAK,cAAc,GAC/E,KAAK,MAAM,WAAW,oBAAoB,qBAAqB,KAAK,cAAc;AAAA,EACtF;AAAA,EAEA,IAAI,kBAAkB;AACZ,UAAAE,IAAyB,KAAK,MAAM,WACpC,EAAE,WAAAC,GAAW,WAAAC,GAAW,uBAAAC,EAAA,IAA0B,KAAK,SACvD,EAAE,UAAAC,GAAU,cAAAC,EAAiB,IAAAJ,GAC7B,EAAE,OAAAK,GAAO,SAAAC,GAAS,KAAAC,EAAA,IAAQ;AAEhC,WAAOR,IAAyB;AAAA,MAC5B,KAAKQ,EAAI;AAAA,MACT,OAAAF;AAAA,MACA,SAAAC;AAAA,MACA,UAAAH;AAAA,MACA,WAAAF;AAAA,MACA,cAAAG;AAAA,MACA,uBAAAF;AAAA,IACH,CAAA,KAAK;AAAA,EACV;AAAA,EAEA,UAAUM,GAAuC;AACtC,WAAA,IAAI,QAAc,CAAWzD,MAAA,KAAK,SAAS,EAAE,QAAAyD,EAAA,GAAUzD,CAAO,CAAC;AAAA,EAC1E;AAAA,EAEA,SAAS;AACC,UAAA0D,IAAU,KAAK,MAAM,UACrBC,IAAS,KAAK,MAAM,UAAe,SAAL;AAEhC,WAAA,gBAAAhF;AAAA,MAAC+E;AAAA,MAAA;AAAA,QACG,IAAI,KAAK,MAAM;AAAA,QACf,WAAU;AAAA,QACV,KAAK,KAAK;AAAA,QACJ,OAAAC;AAAA,QACN,OAAO;AAAA,UACH,UAAU;AAAA,UACV,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,iBAAiB;AAAA,UACjB,QAAQ,KAAK,MAAM;AAAA,QACvB;AAAA,QAEC,eAAK,MAAM;AAAA,MAAA;AAAA,IAAA;AAAA,EAGxB;AACJ;AC7Fa,MAAAC,KAAsBvF,GAA2E,IAAI,GACrGwF,KAAgBxF,GAA0B,IAAK,GCF/CyF,KAAmBzF,GAA6B,IAAK;ACD3D,MAAM0F,GAAmB;AAAA,EACf;AAAA,EACA,4BAAY;EACrB,gBAA+B,MAAM,IAAI;EACzC,YAAqB;AAAA,EACrB,gBAA2C;AAAA,EAC3C,gBAAyB;AAAA;AAAA,EAEhC,YAAYC,GAAY;AACvB,SAAK,KAAKA;AAAA,EACX;AAAA,EAEA,QAAQC,GAA4B;AACnC,IAAKA,MACL,QAAQ,OAAO,CAAC,KAAK,MAAM,IAAIA,EAAK,EAAE,GAAG,gCAAgCA,EAAK,EAAE,OAAO,KAAK,EAAE,EAAE,GAChG,KAAK,MAAM,IAAIA,EAAK,IAAIA,CAAI;AAAA,EAC7B;AAAA,EAEA,WAAWC,GAAa;AAClB,SAAA,MAAM,OAAOA,CAAG;AAAA,EACtB;AAAA,EAEA,IAAI,SAAS;AAEZ,UAAMC,KADa,KAAK,gBACG,QAAQ,OAAO,YAAY,QAAQ,CAAC;AAC/D,WAAO,WAAWA,CAAM;AAAA,EACzB;AAAA,EAEA,IAAI,SAAS;AAEZ,UAAMC,KADa,KAAK,gBACG,SAAS,OAAO,aAAa,QAAQ,CAAC;AACjE,WAAO,WAAWA,CAAM;AAAA,EACzB;AAAA,EAEA,IAAI,IAAI;AACA,WAAA,KAAK,cAAgB,EAAA;AAAA,EAC7B;AAAA,EAEA,IAAI,IAAI;AACA,WAAA,KAAK,cAAgB,EAAA;AAAA,EAC7B;AAAA,EAEA,UAAU;AACT,WAAO,CAAS,KAAK,MAAM;AAAA,EAC5B;AACD;ACmBO,MAAeC,WAIZ9F,GAAgB;AAAA,EACR;AAAA,EAChB+F,KAAsB9F,EAAoC;AAAA,EACvC,MAAMA,EAA0B;AAAA,EAChC;AAAA,EACnB,OAAgB,cAAcqF;AAAA,EAG9B,QAAW;AAAA,IACT,SAAS;AAAA,IACT,QAAQ,CAAC;AAAA,IACT,QAAQ,CAAC;AAAA,IACT,aAAa;AAAA,EAAA;AAAA,EAGf,YAAYU,GAAUC,GAAkD;AACtE,UAAMD,CAAK,GAEX,KAAK,qBAAqB,IAAIR,GAAmB,GAAG,KAAK,IAAI,uBAAuB,GAC/E,KAAA,mBAAmB,gBAAgB,MAAM,KAAK,IAAI,SAAS,sBAAA,KAA2B,IAAI,WAC/F,KAAK,mBAAmB,EAAE,cAAc,MAAoB,cAAcS;EAC5E;AAAA,EAEU,UAAUC,GAAwB;AAC1C,SAAK,SAAS,CAAC,EAAE,QAAA/E,EAAc,OAAA,EAAE,QAAQ,EAAE,GAAGA,GAAQ,GAAG+E,MAAc;AAAA,EACzE;AAAA,EAEU,UAAUC,GAAwB;AAC1C,SAAK,SAAS,CAAC,EAAE,QAAAC,EAAc,OAAA,EAAE,QAAQ,EAAE,GAAGA,GAAQ,GAAGD,MAAc;AAAA,EACzE;AAAA,EAEA,IAAI,UAAU;AACZ,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAEA,IAAI,OAAO;AACT,WAAI,KAAK,MAAM,OACN,KAAK,MAAM,KACf,cACA,QAAQ,WAAW,GAAG,EACtB,QAAQ,OAAO,GAAG,EAClB,QAAQ,UAAU,EAAE,IAChBE,EAAsB,KAAK,MAAM,SAAS,IAC1C,KAAK,MAAM,UAAU,QAAQ,QAAQ,KAAK,gBAC5C,KAAK,MAAM,UAAU,KAAK,YAAY;AAAA,EAC/C;AAAA,EAEA,OAAO;AACE,WAAA,IAAI,QAAc,CAAA5E,MAAW,KAAK,SAAS,EAAE,SAAS,GAAA,GAASA,CAAO,CAAC;AAAA,EAChF;AAAA,EAEA,QAAQ;AACC,WAAA,IAAI,QAAc,CAAAA,MAAW,KAAK,SAAS,EAAE,SAAS,GAAA,GAAQA,CAAO,CAAC;AAAA,EAC/E;AAAA,EAEA,MAAM,KAAK6E,GAAqB;AACxBtG,UAAAA,IAAY,KAAK,MAAM,WACvBuG,IAAkB,KAAK,MAAM,QAAQ,QAAQ,WAC7CC,IAAkB,KAAK,MAAM,QAAQ,QAAQ;AAC/C,QAAAC;AAEA,IAAAJ,EAAsBrG,CAAS,IACxByG,IAAA,MAAMzG,EAAU,SAEhByG,IAAA,EAAE,SAASzG,KAGlBqG,EAAsBE,CAAe,KACvC,MAAMA,EAAgB,QACpBF,EAAsBG,CAAe,KACvC,MAAMA,EAAgB;AAElB,UAAAE,IAAa,KAAK,QAAQ,YAC1BC,IAAQ,KAAK,WACbC,IAAa;AACb,iBAAA,KAAK,MAAM,QAAQ,SAAS,EAAE,YAAAF,GAAY,OAAAC,GAAO,QAAAL,GAAQ,YAAAM,EAAA,CAAY,GAEpEH;AAAA,EACT;AAAA,EAQE,MAAM,SAASH,GAAoC;AAC3C,UAAA,KAAK,UAAU,OAAO,WAAW;AAAA,MACrC,OAAO,KAAK;AAAA,MACZ,YAAY,KAAK,QAAQ;AAAA,MACzB,YAAY;AAAA,MACZ,QAAAA;AAAA,IAAA,CACD;AAAA,EACH;AAAA,EAEA,MAAM,OAAOA,GAAoC;AACzC,UAAA,KAAK,UAAU,OAAO,SAAS;AAAA,MACnC,OAAO,KAAK;AAAA,MACZ,YAAY,KAAK,QAAQ;AAAA,MACzB,YAAY;AAAA,MACZ,QAAAA;AAAA,IAAA,CACD;AAAA,EACH;AAAA,EAEA,MAAM,QAAQA,GAAoC;AAC1C,UAAA,KAAK,UAAU,OAAO,UAAU;AAAA,MACpC,OAAO,KAAK;AAAA,MACZ,YAAY,KAAK,QAAQ;AAAA,MACzB,YAAY;AAAA,MACZ,QAAAA;AAAA,IAAA,CACD;AAAA,EACH;AAAA,EAEA,MAAM,UAAUA,GAAoC;AAC5C,UAAA,KAAK,UAAU,OAAO,YAAY;AAAA,MACtC,OAAO,KAAK;AAAA,MACZ,YAAY,KAAK,QAAQ;AAAA,MACzB,YAAY;AAAA,MACZ,QAAAA;AAAA,IAAA,CACD;AAAA,EACH;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAEA,IAAI,qBAAqB;AACvB,WAAO,KAAKP;AAAA,EACd;AAAA,EAEA,SAAS;AACD,UAAAW,IAAa,KAAK,QAAQ,YAC1BG,IAAY,KAAK,WACjB7G,IAAY,KAAK,MAAM,WACvBuG,IAAkBM,EAAU,OAAO,QAAQ,WAC3CL,IAAkBK,EAAU,OAAO,QAAQ;AAG/C,WAAA,gBAAAzG;AAAA,MAACoE;AAAA,MAAA;AAAA,QACC,KAAK,KAAKuB;AAAA,QACV,UAAU,KAAK,MAAM;AAAA,QACrB,IAAI,GAAG,KAAK,QAAQ,EAAE,IAAI,KAAK,IAAI;AAAA,QACnC,WAAWc,EAAU,OAAO;AAAA,QAC5B,YAAAH;AAAA,QACA,SAAS,KAAK,MAAM;AAAA,QAEpB,UAAA,gBAAAtG;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI,GAAG,KAAK,QAAQ,EAAE,IAAI,KAAK,IAAI;AAAA,YACnC,KAAK,KAAK;AAAA,YACV,WAAU;AAAA,YACV,OAAO;AAAA,cACL,QAAQ;AAAA,cACR,OAAO;AAAA,cACP,SAAS;AAAA,cACT,eAAe;AAAA,cACf,eAAe;AAAA,YACjB;AAAA,YAEA,4BAACP,GAA0B,UAA1B,EAAmC,OAAO,KAAK,oBAC9C,UAAC,gBAAAO,EAAAmF,GAAiB,UAAjB,EAA0B,OAAOsB,GAChC,UAAC,gBAAAC,GAAAzB,GAAoB,UAApB,EAA6B,OAAO,KAAK,kBACxC,UAAA;AAAA,cAAC,gBAAAjF,EAAA2G,IAAA,EAAS,UAAW,gBAAA3G,EAAA4G,GAAA,EAAwB,WAAWH,EAAU,OAAO,QAAQ,UAAU,OAAOA,GAAW,YAAAH,GAAwB,GACnI,4BAACM,GAAwB,EAAA,WAAWT,GAAiB,OAAOM,GAAW,YAAAH,GAAwB,EACjG,CAAA;AAAA,cACA,gBAAAtG,EAAC2G,MAAS,UAAU,gBAAA3G,EAAC4G,KAAwB,WAAW,KAAK,MAAM,UAAU,OAAOH,GAAW,YAAAH,EAAwB,CAAA,GACrH,4BAACM,GAAwB,EAAA,WAAWhH,GAAW,OAAO6G,GAAW,YAAAH,GAAwB,EAC3F,CAAA;AAAA,cACA,gBAAAtG,EAAC2G,MAAS,UAAU,gBAAA3G,EAAC4G,KAAwB,WAAWH,EAAU,OAAO,QAAQ,UAAU,OAAOA,GAAW,YAAAH,GAAwB,GACnI,UAAC,gBAAAtG,EAAA4G,GAAA,EAAwB,WAAWR,GAAiB,OAAOK,GAAW,YAAAH,EAAA,CAAwB,EACjG,CAAA;AAAA,YAAA,EACF,CAAA,EACF,CAAA,GACF;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACJ;AAKA,SAASM,EAAwB,EAAE,WAAAC,GAAW,OAAAN,GAAO,YAAAD,KAA4C;AAC/F,EAAIL,EAAsBY,CAAS,KAAKA,EAAU,QAAQ,YACxDA,IAAYA,EAAU,OAAO;AAE/B,QAAMjH,IAAYiH,KAAa;AAC/B,SAAI,OAAOjH,KAAc,cAAckH,GAA4BlH,CAAS,IAExE,gBAAAI;AAAA,IAACJ;AAAAA,IAAA;AAAA,MACC,YAAA0G;AAAA,MACA,OAAAC;AAAA,IAAA;AAAA,EAAA,IAGKQ,GAAenH,CAAS,IAC1B4C,GAAkB5C,GAAW;AAAA,IAClC,YAAA0G;AAAA,IACA,OAAAC;AAAA,EAAA,CACD,IAEI,gBAAAvG,EAAAgH,IAAA,EAAG,UAAApH,EAAU,CAAA;AACtB;AC/NO,SAASqH,GAAyC/E,GAAqC;AACtF,SAAC6E,GAAe7E,CAAK,IAClB,OAAO,eAAeA,EAAM,IAAI,MAAMwD,KADV;AAEvC;AAoDO,SAASoB,GAA4B5E,GAAqD;AACtF,SAAA,OAAOA,KAAU,YACjBA,MAAU,QACVA,EAAM,aAAa,OAAO,IAAI,YAAY;AACrD;AAEO,SAAS+D,EAAsB/D,GAA+C;AAC1E,SAAA4E,GAA4B5E,CAAK,KAAK,UAAUA;AAC3D;AAIO,SAASgF,GAAkB5E,GAA0C;AACjE,SAAA,WAAWA,KAAWA,EAAQ,iBAAiB;AAC1D;ACrHA,IAAI6E,KAAK,OAAO,gBACZC,KAAK,CAACC,GAAGC,GAAGC,MAAMD,KAAKD,IAAIF,GAAGE,GAAGC,GAAG,EAAE,YAAY,IAAI,cAAc,IAAI,UAAU,IAAI,OAAOC,EAAC,CAAE,IAAIF,EAAEC,CAAC,IAAIC,GAC3GC,IAAI,CAACH,GAAGC,GAAGC,OAAOH,GAAGC,GAAG,OAAOC,KAAK,WAAWA,IAAI,KAAKA,GAAGC,CAAC,GAAGA,IAAIE,KAAK,CAACJ,GAAGC,GAAGC,MAAM;AACvF,MAAI,CAACD,EAAE,IAAID,CAAC;AACV,UAAM,UAAU,YAAYE,CAAC;AACjC,GACIxD,IAAI,CAACsD,GAAGC,GAAGC,OAAOE,GAAGJ,GAAGC,GAAG,yBAAyB,GAAGC,IAAIA,EAAE,KAAKF,CAAC,IAAIC,EAAE,IAAID,CAAC,IAAIK,IAAI,CAACL,GAAGC,GAAGC,MAAM;AACrG,MAAID,EAAE,IAAID,CAAC;AACT,UAAM,UAAU,mDAAmD;AACrE,EAAAC,aAAa,UAAUA,EAAE,IAAID,CAAC,IAAIC,EAAE,IAAID,GAAGE,CAAC;AAC9C,GAAGI,IAAI,CAACN,GAAGC,GAAGC,GAAGK,OAAOH,GAAGJ,GAAGC,GAAG,wBAAwB,GAAGM,IAAIA,EAAE,KAAKP,GAAGE,CAAC,IAAID,EAAE,IAAID,GAAGE,CAAC,GAAGA,IACxFM,IAAI,CAACR,GAAGC,GAAGC,OAAOE,GAAGJ,GAAGC,GAAG,uBAAuB,GAAGC;AACzD,MAAMO,KAAK;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AAAA,EACX,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,MAAM;AAAA,EACN,gBAAgB;AAAA,EAChB,YAAY;AACd,GAAGC,KAAK,KAAKC,KAAK,OAAO,WAAWC,KAAK,OAAO;AAChD,SAASC,GAAGb,GAAG;AACb,SAAO,MAAM,QAAQA,CAAC;AACxB;AACA,SAASc,EAAEd,GAAG;AACZ,SAAO,OAAOA,KAAK,YAAYA,MAAM;AACvC;AACA,SAASe,EAAEf,GAAGC,GAAG;AACf,SAAOa,EAAEd,CAAC,KAAK,OAAOA,KAAK,WAAWA,KAAKC,MAAM,CAACA,CAAC,IAAI,OAAO,KAAKD,EAAE,KAAI,CAAE,IAAIA,EAAE,GAAGC,CAAC,EAAE;AACzF;AACA,SAASe,GAAGhB,GAAGC,IAAIQ,IAAI;AACrB,MAAI,EAAE,UAAUP,IAAI,QAAQ,YAAYK,IAAI,GAAG,cAAcU,IAAI,EAAC,IAAKhB;AACvE,MAAIa,EAAEd,CAAC;AACL,WAAOA;AACT,MAAI,OAAOA,KAAK,YAAYA,EAAE,KAAM,EAAC,YAAY;AAC/C,UAAM,IAAI;AAAA,MACR;AAAA,MACA;AAAA,IACN;AACE,MAAIE,MAAM;AACR,IAAAA,IAAIQ;AAAA,WACGR,aAAa;AACpB,IAAAA,IAAIA,EAAE,GAAG,IAAI,EAAE;AAAA,WACR,OAAOA,KAAK;AACnB,UAAM,IAAI,UAAU,kCAAkC;AACxD,QAAM,EAAE,OAAOgB,IAAI,GAAG,UAAUC,IAAI,MAAMlB,GAAGmB,IAAIlB,IAAIK,IAAIA,IAAI,KAAK,IAAIU,CAAC,GAAGI,IAAIH,IAAIE,IAAID;AACtF,SAAOG;AAAA,IACLtB,EAAE,GAAG,SAAS,EAAE;AAAA,IAChB,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAGqB,CAAC;AAAA,EACT;AACA;AACA,SAASE,GAAGvB,GAAG;AACb,MAAIc,EAAEd,CAAC,KAAK,OAAOA,KAAK;AACtB,WAAOA;AACT,MAAIA,EAAE,OAAO,SAAS;AACpB,UAAM,IAAI;AAAA,MACR;AAAA,MACA;AAAA,IACN;AACE,SAAOA,EAAE,GAAG,IAAI,EAAE;AACpB;AACA,SAASwB,GAAGxB,GAAGC,GAAG;AAChB,QAAMC,IAAID,EAAE,SAAS,GAAGM,IAAI,KAAK,MAAMP,IAAIE,CAAC,GAAGe,IAAIhB,EAAEM,CAAC,GAAGW,IAAIjB,EAAE,KAAK,IAAIM,IAAI,GAAGL,CAAC,CAAC,GAAGiB,IAAInB,IAAIE,IAAIK;AAChG,SAAOU,IAAIE,KAAKD,IAAID;AACtB;AACA,SAASQ,GAAGzB,GAAGC,GAAGC,GAAG;AACnB,MAAIK,IAAI,GAAGU,IAAI;AACf,aAAW,CAACC,GAAGC,CAAC,KAAK,OAAO,QAAQnB,CAAC,GAAG;AACtC,UAAM,EAAE,KAAK0B,GAAG,KAAKN,EAAC,IAAKnB,GAAGoB,IAAInB,EAAEgB,CAAC,KAAK,GAAGS,KAAKR,IAAIO,EAAER,CAAC,MAAME,EAAEF,CAAC,IAAIQ,EAAER,CAAC,KAAKG;AAC9E,IAAAd,KAAKoB,GAAGV,KAAKI;AAAA,EACd;AACD,SAAOd,IAAIU;AACb;AACA,SAASK,GAAGtB,GAAGC,GAAGC,GAAGK,IAAI,CAAA,GAAI;AAC3B,MAAIU;AACJ,MAAI,OAAOjB,KAAK,YAAYa,GAAGZ,CAAC,GAAG;AACjC,UAAMkB,IAAI,EAAE,GAAGlB,EAAE,CAAC,EAAC,GAAIyB,IAAI,EAAE,GAAGzB,EAAE,CAAC,EAAC;AACpC,IAAAA,IAAI,EAAE,KAAKkB,GAAG,KAAKO,EAAG,GAAE1B,IAAI,EAAE,GAAGA;EAClC;AACC,UAAM,IAAI,UAAU,sDAAsD;AAC5E,MAAIiB,IAAIQ,GAAGzB,GAAGC,GAAGM,CAAC,GAAGU,IAAIW,GAAGX,GAAG,GAAG,CAAC,GAAGJ,GAAGX,CAAC;AACxC,WAAOsB,GAAGP,GAAGf,CAAC;AAChB,QAAMgB,IAAI,CAAA;AACV,aAAWC,KAAK,OAAO,KAAKjB,EAAE,GAAG,GAAG;AAClC,UAAMwB,IAAIxB,EAAE,IAAIiB,CAAC,GAAGC,IAAIlB,EAAE,IAAIiB,CAAC,GAAGE,IAAI,CAACK,GAAGN,CAAC;AAC3C,IAAAF,EAAEC,CAAC,IAAIK,GAAGP,GAAGI,CAAC;AAAA,EACf;AACD,SAAOH;AACT;AAqCA,SAASU,GAAG5B,GAAGC,GAAGC,GAAG;AACnB,SAAOF,IAAIC,IAAIA,IAAIC,KAAKF,IAAIE,IAAIA,IAAIF;AACtC;AACA,SAAS6B,GAAG7B,GAAG;AACb,MAAI;AAAA,IACF,UAAUC,IAAI;AAAA,IACd,YAAYC,IAAI;AAAA,IAChB,cAAcK,IAAI;AAAA,IAClB,OAAOU,IAAI;AAAA,IACX,UAAUC,IAAI;AAAA,IACd,WAAWC,IAAI;AAAA,IACf,UAAUO,IAAI;AAAA,EACf,IAAG1B;AACJ,QAAMoB,IAAI,IAAI,aAAa,KAAK,SAAS;AACzC,MAAInB,MAAM;AACR,IAAAA,IAAIS,IAAIO,IAAI,GAAGC,IAAI;AAAA,WACZjB,aAAa;AACpB,IAAAA,IAAIA,EAAE,GAAG,IAAI,EAAE;AAAA,WACR,OAAOA,KAAK;AACnB,UAAM,UAAU,kCAAkC;AACpD,QAAMoB,IAAIpB,IAAIC,GAAG4B,IAAIT,IAAInB,IAAI,KAAK,IAAIK,CAAC,GAAGoB,IAAIV,IAAIa,IAAIZ;AACtD,EAAAjB,IAAI,IAAI,aAAaoB,IAAIM,IAAI,KAAK,SAAS;AAC3C,QAAM5G,IAAI,IAAI,QAAQkF,EAAE,GAAG,SAAS,EAAE,QAAQC,IAAI,KAAK,IAAIK,CAAC,CAAC;AAC7D,SAAOY,MAAM,SAASO,IAAIX,EAAEI,GAAG,SAAS,IAAIC,EAAE,QAAQ;AAAA,IACpD,GAAGpB;AAAA,IACH,UAAU0B;AAAA,IACV,gBAAgB3G;AAAA,IAChB,UAAUkF;AAAA,IACV,YAAYC;AAAA,IACZ,OAAOe;AAAA,IACP,UAAUC;AAAA,IACV,SAASE;AAAA,EACb;AACA;AACA,SAASW,GAAG/B,GAAGC,GAAG;AAChB,MAAI,EAAE,gBAAgBC,IAAI,GAAG,WAAWK,IAAI,MAAM,SAASU,IAAI,OAAO,OAAOC,IAAI,EAAG,IAAGlB;AACvF,MAAIiB,IAAIF,EAAEE,CAAC,GAAGf,IAAIa,EAAEb,CAAC,GAAGK,IAAIQ,EAAER,CAAC,GAAGA,KAAK,QAAQA,MAAM;AACnD,WAAO;AACT,QAAMY,IAAI,KAAK,IAAI,KAAK,IAAID,GAAGD,CAAC,GAAG,CAAC,GAAGS,IAAI,KAAK,IAAI,KAAK,IAAIR,IAAIhB,GAAGe,CAAC,GAAG,CAAC;AACzE,SAAOV,IAAIY,KAAKlB,MAAM,eAAeM,MAAMY,IAAI,WAAWZ,IAAImB,KAAKzB,MAAM,cAAcM,MAAMmB,IAAI,UAAU;AAC7G;AACA,SAASM,GAAGhC,GAAGC,GAAG;AAChB,MAAI,EAAE,WAAWC,IAAI,MAAM,OAAOK,IAAI,GAAG,gBAAgBU,IAAI,GAAG,MAAMC,EAAC,IAAKlB;AAC5E,MAAIiB,IAAIF,EAAEE,CAAC,GAAGf,IAAIa,EAAEb,CAAC,GAAGA,KAAK,QAAQA,MAAM;AACzC,WAAO;AACT,UAAQD,GAAC;AAAA,IACP,KAAK;AACH,aAAOiB,MAAM,eAAeA,MAAM,SAAS,KAAK,IAAIhB,IAAIK,GAAG,CAAC,IAAI;AAAA,IAClE,KAAK;AACH,aAAOL,IAAIK;AAAA,IACb,KAAK;AACH,aAAOW,MAAM,cAAcA,MAAM,SAAS,KAAK,IAAI,KAAK,IAAIhB,IAAIK,GAAGU,CAAC,GAAG,CAAC,IAAI;AAAA,IAC9E;AACE,aAAO;AAAA,EACV;AACH;AACA,SAASgB,GAAGjC,GAAGC,GAAGC,GAAG;AACnB,QAAM,EAAE,UAAUK,IAAI,GAAG,YAAYU,IAAI,GAAG,gBAAgBC,IAAI,EAAC,IAAKlB;AACtE,MAAI,OAAOO,KAAK;AACd,UAAM,IAAI,UAAU,+BAA+B;AACrD,MAAIY,IAAI;AACR,SAAOZ,MAAM,IAAIN,MAAM,WAAWkB,IAAI,IAAIA,IAAIF,IAAIE,IAAIjB,IAAIqB,GAAGhB,CAAC,GAAGY,IAAID;AACvE;AACA,SAASgB,GAAGlC,GAAGC,GAAGC,GAAGK,GAAG;AACtB,QAAM,EAAE,YAAYU,IAAI,GAAG,gBAAgBC,IAAI,GAAG,gBAAgBC,IAAI,EAAC,IAAKnB;AAC5E,MAAIc,EAAEZ,CAAC;AACL,WAAO;AACT,MAAIwB,IAAI;AACR,SAAOxB,MAAM,UAAUwB,IAAIR,IAAI,IAAIQ,MAAM,MAAMzB,MAAM,YAAYA,MAAM,YAAYkB,MAAMZ,KAAKU,MAAM,MAAMS,IAAI,IAAIA;AACpH;AACA,SAASS,GAAGnC,GAAGC,GAAG;AAChB,QAAM,EAAE,YAAYC,IAAI,EAAG,IAAGF,GAAGO,IAAIyB,GAAGhC,GAAGC,CAAC;AAC5C,MAAIa,EAAEP,CAAC;AACL,WAAO;AACT,MAAIN,MAAM,WAAWC,MAAM;AACzB,WAAO;AACT,QAAMe,IAAIgB,GAAGjC,GAAGC,GAAGM,CAAC;AACpB,SAAO2B,GAAGlC,GAAGC,GAAGgB,GAAGV,CAAC,MAAM,IAAI,KAAK,MAAMU,CAAC,IAAI,IAAI,KAAK,MAAMA,CAAC;AAChE;AACA,MAAMmB,WAAW,MAAM;AAAA,EACrB,YAAY,GAAG;AACb,UAAM,UAAU,EAAE,SAAS,IAAI,YAAY,IAAI,UAAU,GAAI,CAAA,GAC7DjC,EAAE,MAAM,aAAa,GACrB,KAAK,cAAc;AAAA,EACpB;AACH;AACA,IAAIkC,GAAGC;AACP,MAAMC,UAAU,YAAY;AAAA,EAC1B,YAAY,IAAI,EAAE,MAAM,SAAS,MAAM,KAAK,YAAY,GAAG,UAAU,OAAO,OAAO,YAAY,QAAQ,SAAS,QAAQ;AACtH,aACAlC,EAAE,MAAMgC,GAAG,MAAM,GACjBhC,EAAE,MAAMiC,GAAG,MAAM,GACjB,EAAE,OAAO,iBAAiB,EAAE,MAAM,KAAK,UAAU,KAAK,IAAI,CAAC,GAAGhC,EAAE,MAAMgC,GAAG,IAAI,QAAQ,CAAC,CAAC,GAAGhC,EAAE,MAAM+B,GAAG,CAAC;AAAA,EACvG;AAAA,EACD,UAAU,GAAG;AACX,UAAM9B,IAAI7D,EAAE,MAAM2F,CAAC,EAAE,OAAO;AAC5B,QAAI,IAAI;AACR,UAAMnB,IAAI;AAAA,MACR,GAAG,EAAE,IAAIX,EAAE;AAAA,MACX,GAAG,EAAE,IAAIA,EAAE;AAAA,IACjB;AACI,YAAQ7D,EAAE,MAAM2F,CAAC,EAAE,MAAI;AAAA,MACrB,KAAK,SAAS;AACZ,cAAM,EAAE,YAAY,GAAG,UAAUX,EAAC,IAAKhF,EAAE,MAAM2F,CAAC,GAAGjB,IAAI1E,EAAE,MAAM2F,CAAC,EAAE;AAClE,YAAIf;AAAA,UACFJ,EAAEE,CAAC;AAAA,UACH,CAACL,EAAE,GAAG,IAAI,GAAGA,EAAEW,GAAG,IAAI,CAAC;AAAA,UACvB,CAAC,GAAG,GAAG;AAAA,QACjB;AACQ;AAAA,MACD;AAAA,MACD,KAAK,OAAO;AACV,cAAM,EAAE,YAAY,GAAG,UAAUA,EAAC,IAAKhF,EAAE,MAAM2F,CAAC,GAAG,EAAE,GAAGjB,GAAG,GAAGC,EAAG,IAAGH;AACpE,YAAII;AAAA,UACF,EAAE,GAAGF,GAAG,GAAGC,EAAG;AAAA,UACd;AAAA,YACE,KAAK,EAAE,GAAGN,EAAE,EAAE,GAAG,IAAI,GAAG,GAAGA,EAAE,EAAE,GAAG,IAAI,EAAG;AAAA,YACzC,KAAK,EAAE,GAAGA,EAAEW,EAAE,GAAG,IAAI,GAAG,GAAGX,EAAEW,EAAE,GAAG,IAAI,EAAG;AAAA,UAC1C;AAAA,UACD,CAAC,GAAG,GAAG;AAAA,UACP,EAAE,GAAG,GAAG,GAAG,EAAG;AAAA,QACxB;AACQ;AAAA,MACD;AAAA,MACD,KAAK,SAAS;AACZ,cAAM,EAAE,YAAY,GAAG,UAAUA,EAAC,IAAKhF,EAAE,MAAM2F,CAAC,GAAG,EAAE,OAAOjB,EAAC,IAAK;AAClE,YAAIE;AAAA,UACFF;AAAA,UACA,CAACL,EAAE,GAAG,EAAE,GAAGA,EAAEW,GAAG,EAAE,CAAC;AAAA;AAAA,UAEnB,CAAC,GAAG,GAAG;AAAA,QACjB;AACQ;AAAA,MACD;AAAA,MACD,KAAK,UAAU;AACb,cAAM,EAAE,YAAY,GAAG,UAAUA,EAAC,IAAKhF,EAAE,MAAM2F,CAAC,GAAG,EAAE,UAAUjB,EAAC,IAAK;AACrE,YAAIE;AAAA,UACFF;AAAA,UACA,CAACL,EAAE,GAAG,KAAK,GAAGA,EAAEW,GAAG,KAAK,CAAC;AAAA,UACzB,CAAC,GAAG,GAAG;AAAA,QACjB;AAAA,MACO;AAAA,IACF;AACD,IAAApB,EAAE,MAAMgC,GAAG,IAAI,QAAQ,CAAC,CAAC,GAAG,KAAK,cAAc,IAAIF,GAAG1F,EAAE,MAAM4F,CAAC,CAAC,CAAC;AAAA,EAClE;AAAA,EACD,iBAAiB,GAAG/B,GAAG,GAAG;AACxB,UAAM,iBAAiB,GAAGA,GAAG,CAAC;AAAA,EAC/B;AAAA,EACD,oBAAoB,GAAGA,GAAG,GAAG;AAC3B,UAAM,oBAAoB,GAAGA,GAAG,CAAC;AAAA,EAClC;AAAA,EACD,IAAI,cAAc;AAChB,WAAO7D,EAAE,MAAM4F,CAAC;AAAA,EACjB;AAAA,EACD,IAAI,QAAQ;AACV,WAAO;AAAA,EACR;AACH;AACAD,IAAI,oBAAI,QAAS,GAAEC,IAAI,oBAAI,QAAO;AAClC,MAAME,IAAoB,oBAAI;AAC9B,IAAIC;AACJ,MAAMC,WAAW9B,GAAG;AAAA,EAClB,YAAY,GAAGL,IAAI,MAAM;AACvB,UAAM,CAAC,GACPF,EAAE,MAAMoC,IAAI,IAAI,GAChBnC,EAAE,MAAMmC,IAAIlC,CAAC;AAAA,EACd;AAAA,EACD,IAAI,SAAS;AACX,WAAO7D,EAAE,MAAM+F,EAAE;AAAA,EAClB;AAAA,EACD,YAAY;AACV,QAAIlC;AACJ,UAAML,IAAI,MAAM;AAChB,UAAMK,IAAIiC,EAAE,IAAI,IAAI,MAAM,OAAO,SAASjC,EAAE,qBAAqBgC,GAAG;AAClE,UAAIrC,EAAE,aAAa;AACjB,cAAM,UAAU,iEAAiE;AACnF,UAAIA,EAAE,eAAe;AACnB,cAAM,UAAU,mEAAmE;AAAA,IACtF;AACD,WAAOA;AAAA,EACR;AAAA,EACD,oBAAoB;AAClB,QAAIe;AACJ,UAAMf,IAAI,MAAM;AAChB,UAAMe,IAAIuB,EAAE,IAAI,IAAI,MAAM,OAAO,SAASvB,EAAE,qBAAqBsB,GAAG;AAClE,UAAIrC,EAAE,aAAa;AACjB,cAAM,UAAU,iEAAiE;AACnF,UAAIA,EAAE,eAAe;AACnB,cAAM,UAAU,mEAAmE;AACrF,aAAO2B,GAAG3B,CAAC;AAAA,IACZ;AACD,WAAOA;AAAA,EACR;AAAA,EACD,aAAa,GAAG;AACd,QAAIgB;AACJ,UAAMX,IAAI,MAAM;AAChB,QAAI;AAAA,MACF,GAAGA;AAAA,MACH,UAAUA,EAAE,oBAAoB,kBAAkBA,EAAE,SAAS,GAAG,IAAI,EAAE,QAAQA,EAAE;AAAA,MAChF,GAAG;AAAA,IACT;AACI,QAAIU,IAAIvE,EAAE,MAAM+F,EAAE;AAClB,WAAOxB,KAAK;AACV,YAAM,IAAIA,EAAE;AACZ,WAAK,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,IAAI,KAAK,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,IAAI,KAAK,QAAQ,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,IAAI,KAAK,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,IAAI,KAAK,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,EAAE,YAAY,YAAkC,GAAE,aAAc,WAAW,EAAE,WAAWF,EAAE,EAAE,UAAU,IAAI,IAAIE,IAAIA,EAAE;AAAA,IACjd;AACD,UAAMC,IAAIsB,EAAE,IAAI,IAAI,MAAM,OAAO,SAAStB,EAAE,qBAAqBqB,GAAG;AAClE,UAA0B,GAAE,aAAc;AACxC,cAAM,UAAU,iEAAiE;AACnF,UAAI,KAAK,QAAQ,EAAE;AACjB,cAAM,UAAU,mEAAmE;AAAA,IACtF;AACD,WAAO,MAAM,aAAa,CAAC;AAAA,EAC5B;AACH;AACAE,KAAK,oBAAI,QAAO;AAChB,IAAI,GAAGE;AACP,MAAMC,KAAK,MAAMA,GAAG;AAAA,EAClB,YAAY3C,GAAG;AACb,IAAAI,EAAE,MAAM,GAAG,CAAA,CAAE,GACbA,EAAE,MAAMsC,GAAG,IAAI,GACfrC,EAAE,MAAM,GAAGL,EAAE,IAAI,CAACC,OAAOA,aAAa0C,KAAKtC,EAAEJ,GAAGyC,GAAG,IAAI,IAAIzC,aAAaU,OAAOV,IAAI,IAAIwC,GAAGxC,GAAG,IAAI,IAAIA,EAAE,CAAC;AAAA,EACzG;AAAA,EACD,IAAI,SAAS;AACX,WAAOxD,EAAE,MAAMiG,CAAC;AAAA,EACjB;AAAA,EACD,IAAI,WAAW;AACb,UAAM1C,IAAIvD,EAAE,MAAM,CAAC;AACnB,WAAO;AAAA,MACL,QAAQuD,EAAE;AAAA,MACV,KAAKC,GAAG;AACN,eAAOD,EAAE,GAAGC,CAAC,KAAK;AAAA,MACnB;AAAA,IACP;AAAA,EACG;AAAA,EACD,IAAI,aAAa;AACf,WAAOxD,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK;AAAA,EAC5B;AAAA,EACD,IAAI,YAAY;AACd,WAAOA,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK;AAAA,EAC7B;AAAA,EACD,QAAQ;AACN,WAAO,gBAAgB,IAAI;AAAA,EAC5B;AAAA,EACD,UAAUuD,GAAG;AACX,IAAAA,EAAE,QAAQ,CAACC,MAAM;AACf,MAAAxD,EAAE,MAAM,CAAC,EAAE,SAASwD,CAAC,MAAMA,aAAa0C,KAAKtC,EAAEJ,GAAGyC,GAAG,IAAI,IAAIzC,aAAaU,OAAOV,IAAI,IAAIwC,GAAGxC,GAAG,IAAI,IAAIxD,EAAE,MAAM,CAAC,EAAE,KAAKwD,CAAC;AAAA,IAC9H,CAAK;AAAA,EACF;AAAA,EACD,WAAWD,GAAG;AACZ,IAAAA,EAAE,QAAQ,CAACC,MAAM;AACf,MAAAxD,EAAE,MAAM,CAAC,EAAE,SAASwD,CAAC,MAAMA,aAAa0C,KAAKtC,EAAEJ,GAAGyC,GAAG,IAAI,IAAIzC,aAAaU,OAAOV,IAAI,IAAIwC,GAAGxC,GAAG,IAAI,IAAIxD,EAAE,MAAM,CAAC,EAAE,QAAQwD,CAAC;AAAA,IACjI,CAAK;AAAA,EACF;AACH;AACA,IAAI,oBAAI,QAAS,GAAEyC,IAAI,oBAAI,QAAO;AAClC,IAAIE,KAAKD;AACT,MAAME,GAAE;AAAA,EACN,cAAc;AACZ,IAAA3C,EAAE,MAAM,SAAS,GACjBA,EAAE,MAAM,OAAO,GACfA,EAAE,MAAM,eAAe,GACvBA,EAAE,MAAM,cAAc,GACtB,KAAK,QAAQ,WAAW,KAAK,gBAAgB,KAAK,eAAe,MAAM,KAAK,UAAU,IAAI,QAAQ,CAACF,GAAGC,MAAM;AAC1G,WAAK,gBAAgBD,GAAG,KAAK,eAAeC;AAAA,IAClD,CAAK;AAAA,EACF;AAAA,EACD,QAAQD,GAAG;AACT,QAAIC;AACJ,SAAK,QAAQ,aAAaA,IAAI,KAAK,kBAAkB,QAAQA,EAAE,KAAK,MAAMD,CAAC;AAAA,EAC5E;AAAA,EACD,OAAOA,GAAG;AACR,QAAIC;AACJ,SAAK,QAAQ,YAAY,KAAK,QAAQ,MAAM,MAAM;AAAA,IACtD,CAAK,IAAIA,IAAI,KAAK,iBAAiB,QAAQA,EAAE,KAAK,MAAMD,CAAC;AAAA,EACtD;AACH;AACA,IAAI8C,GAAGC,IAAIC;AACX,MAAMC,WAAWL,GAAG;AAAA,EAClB,YAAY,GAAGtC,IAAIE,IAAI;AACrB,UAAM,CAAC,GACPJ,EAAE,MAAM2C,EAAE,GACV3C,EAAE,MAAM0C,GAAG,MAAM,GACjBzC,EAAE,MAAMyC,GAAG;AAAA,MACT,GAAGtC;AAAA,MACH,GAAGF;AAAA,IACT,CAAK;AAAA,EACF;AAAA,EACD,WAAW,GAAG;AACZ,UAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,QAAQ,CAACA,MAAMA,EAAE,aAAY,CAAE;AAAA,EACvD;AAAA,EACD,UAAU,GAAG;AACX,UAAM,OAAO,GAAG,CAAC,GAAG,EAAE,QAAQ,CAACA,MAAMA,EAAE,aAAY,CAAE;AAAA,EACtD;AAAA,EACD,YAAY;AACV,WAAO7D,EAAE,MAAMqG,CAAC;AAAA,EACjB;AAAA,EACD,oBAAoB;AAClB,QAAII,GAAGC;AACP,UAAMlD,IAAI,KAAK,UAAS,GAAIK,IAAI,EAAE,GAAGL,KAAK,EAAE,OAAOe,IAAI,EAAC,MAAOkC,IAAI,KAAK,SAAS,KAAK,CAAC,MAAM,OAAO,SAASA,EAAE,kBAAmB,MAAK,IAAI,EAAE,UAAUjC,IAAI,GAAG,SAASC,IAAI,EAAC,MAAOiC,IAAI,KAAK,SAAS,KAAK,KAAK,SAAS,SAAS,CAAC,MAAM,OAAO,SAASA,EAAE,kBAAmB,MAAK;AAClR,IAAAlD,EAAE,QAAQA,EAAE,QAAQA,EAAE,QAAQe,IAAIA,GAAGf,EAAE,WAAWA,EAAE,WAAWA,EAAE,WAAWgB,IAAIA,GAAGX,EAAE,UAAUY;AAC/F,aAASkC,IAAI,GAAGA,IAAI,KAAK,SAAS,QAAQA,KAAK;AAC7C,YAAMC,IAAI,KAAK,SAAS,KAAKD,CAAC;AAC9B,UAAI,CAACC;AACH;AACF,UAAI;AAAA,QACF,UAAUC,IAAI;AAAA,QACd,gBAAgBC,KAAK;AAAA,MAC7B,IAAUF,EAAE;AACN,MAAA/C,EAAE,iBAAiBA,EAAE,iBAAiBQ,EAAER,EAAE,gBAAgB,IAAI,IAAIQ,EAAEyC,IAAI,IAAI,IAAIA,IAAItD,EAAE,WAAWA,EAAE,oBAAoB,kBAAkBA,EAAE,SAAS,GAAG,IAAI,EAAE,QAAQA,EAAE,UAAUqD,IAAIA,aAAa,kBAAkBA,EAAE,GAAG,IAAI,EAAE,QAAQA,GAAG,OAAOA,KAAK,aAAarD,EAAE,aAAa,SAASA,EAAE,WAAWa,EAAEwC,GAAG,IAAI,IAAI,OAAOrD,EAAE,YAAY,aAAaA,EAAE,WAAWA,EAAE,WAAWA,EAAE,WAAWqD,IAAIA;AAAA,IACnY;AACD,UAAM,EAAE,UAAU7B,GAAG,WAAWN,GAAG,aAAaC,MAAMmB,EAAE,IAAI,IAAI,KAAK,IAAIV,IAAIJ,aAAaa,IAAI,YAAY;AAC1G,QAAI,EAAE,UAAUZ,IAAI,GAAG,YAAY5G,IAAI,EAAG,IAAGwF;AAC7C,QAAIoB,MAAM,WAAWA,IAAI,IAAI,OAAOA,KAAK;AACvC,YAAM,IAAI,UAAU,kCAAkC;AACxD,WAAOpB,EAAE,WAAWoB,GAAGpB,EAAE,iBAAiBgB,GAAGI,CAAC,IAAI5G,GAAGwF,EAAE,YAAYa,KAAK,QAAQb,EAAE,YAAYc,GAAGd,EAAE,mBAAmB4B,GAAG5B,GAAGwB,GAAGxB,GAAG7D,EAAE,MAAMsG,IAAIC,EAAE,CAAC,CAAC,GAAGvB,aAAaa,IAAIV,GAAGtB,CAAC,KAAKmB,aAAa,qBAAqBnB,EAAE,WAAWc,KAAKN,EAAEM,GAAGS,CAAC,IAAIf,EAAEI,GAAGW,CAAC,IAAIvB;AAAA,EACxP;AAAA,EACD,aAAa,GAAG;AACd,IAAAD,EAAE,MAAMyC,GAAG;AAAA,MACT,GAAGrG,EAAE,MAAMqG,CAAC;AAAA,MACZ,GAAG;AAAA,IACT,CAAK;AACD,aAASxC,IAAI,GAAGA,IAAI,KAAK,SAAS,QAAQA,KAAK;AAC7C,YAAM,IAAI,KAAK,SAAS,KAAKA,CAAC;AAC9B,MAAa,GAAE;IAChB;AAAA,EACF;AACH;AACAwC,IAAI,oBAAI,QAAO,GAAIC,KAAK,oBAAI,QAAO,GAAIC,KAAK,WAAW;AACrD,QAAM,EAAE,cAAc/C,IAAI,EAAC,IAAKsC,EAAE,IAAI,IAAI,KAAK;AAC/C,SAAOtC,IAAI,IAAI,cAAc;AAC/B;AACA,IAAIuD,GAAGC,GAAGC,IAAIC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,IAAIC,GAAGC,IAAIC,IAAIC,GAAGC,IAAIC,GAAGC,IAAGC,IAAIC,IAAIC,IAAIC,IAAIC,IAAIC,IAAIC,GAAGC,GAAGC,IAAIC,IAAIC,IAAIC,GAAGC,GAAGC,GAAGC,GAAGC,IAAIC,IAAIC;AAChI,MAAMC,KAAK,cAAiB,YAAY;AAAA,EACtC,YAAY,GAAGvF,GAAG;AAChB,aACAF,EAAE,MAAMiE,EAAE,GACVjE,EAAE,MAAMmE,CAAC,GACTnE,EAAE,MAAMqE,CAAC,GACTrE,EAAE,MAAMuE,EAAE,GACVvE,EAAE,MAAMyE,EAAE,GACVzE,EAAE,MAAM2E,EAAE,GACV3E,EAAE,MAAM6E,CAAC,GACT7E,EAAE,MAAMgF,EAAE,GACVhF,EAAE,MAAMkF,CAAC,GACTlF,EAAE,MAAMoF,CAAC,GACTtF,EAAE,MAAM,MAAM,EAAE,GAChBA,EAAE,MAAM,YAAY,IAAI,GACxBA,EAAE,MAAM,YAAY,IAAI,GACxBA,EAAE,MAAM,YAAY,IAAI,GACxBE,EAAE,MAAMoD,GAAG,MAAM,GACjBpD,EAAE,MAAMqD,GAAG,MAAM,GACjBrD,EAAE,MAAMsD,IAAI,QAAQ,GACpBtD,EAAE,MAAMuD,GAAG;AAAA,MACT,MAAM;AAAA,MACN,cAAc;AAAA,IACpB,CAAK,GACDvD,EAAE,MAAMwD,GAAG,IAAIf,GAAG,CAAA,GAClBzC,EAAE,MAAMyD,GAAG,IAAIhB,GAAG,CAAA,GAClBzC,EAAE,MAAM0D,GAAG,IAAI,GACf1D,EAAE,MAAM2D,GAAG,IAAI,GACf3D,EAAE,MAAM4D,GAAG,CAAA,CAAE,GACb5D,EAAE,MAAM6D,GAAG,IAAI,GACf7D,EAAE,MAAM8D,GAAG,EAAE,GACb9D,EAAE,MAAM+D,IAAI,CAAC,GACb/D,EAAE,MAAMgE,GAAG,CAAC,GACZhE,EAAE,MAAM+E,IAAI,MAAM;AAChB,MAAA5E,EAAE,MAAM0E,GAAGC,CAAC,EAAE,KAAK,IAAI;AAAA,IAC7B,CAAK,GACD9E,EAAE,MAAMsF,IAAI,MAAM;AAChB,UAAIzE;AACJ,UAAIxE,EAAE,MAAMoH,CAAC,EAAE,UAAU,aAAa,KAAK,cAAc;AACvD;AACF,MAAApH,EAAE,MAAMoH,CAAC,EAAE,QAAQ,IAAI;AACvB,YAAM5D,IAAI,KAAK,aAAaK,KAAKW,IAAI,KAAK,aAAa,OAAO,SAASA,EAAE,aAAaD,IAAI,IAAI;AAAA,QAC5F;AAAA,QACA;AAAA,UACE,IAAI,cAAc;AAChB,mBAAOf;AAAA,UACR;AAAA,UACD,IAAI,eAAe;AACjB,mBAAOK;AAAA,UACR;AAAA,QACF;AAAA,MACT;AACM,4BAAsB,MAAM;AAC1B,YAAIY;AACJ,aAAK,cAAcF,CAAC,IAAIE,IAAI,KAAK,aAAa,QAAQA,EAAE,KAAK,MAAMF,CAAC;AAAA,MAC5E,CAAO;AAAA,IACP,CAAK,GACDZ,EAAE,MAAMuF,IAAI,MAAM;AAChB,UAAI1E,GAAGC;AACP,YAAMjB,IAAI,KAAK,aAAaK,KAAKW,IAAI,KAAK,aAAa,OAAO,SAASA,EAAE,aAAaD,IAAI,IAAI;AAAA,QAC5F;AAAA,QACA;AAAA,UACE,IAAI,cAAc;AAChB,mBAAOf;AAAA,UACR;AAAA,UACD,IAAI,eAAe;AACjB,mBAAOK;AAAA,UACR;AAAA,QACF;AAAA,MACT;AACM,WAAK,cAAcU,CAAC,IAAIE,IAAI,KAAK,aAAa,QAAQA,EAAE,KAAK,MAAMF,CAAC;AAAA,IAC1E,CAAK,GACDZ,EAAE,MAAMwF,IAAI,MAAM;AAChB,UAAItF;AACJ,YAAML,IAAI,IAAI,MAAM,QAAQ;AAC5B,WAAK,cAAcA,CAAC,IAAIK,IAAI,KAAK,aAAa,QAAQA,EAAE,KAAK,MAAML,CAAC;AAAA,IAC1E,CAAK,GACDxD,EAAE,MAAMmH,CAAC,EAAE,QAAQ,IAAI,GAAGvD,EAAE,MAAMoD,GAAG,KAAK,IAAI,GAAGpD,EAAE,MAAMmD,GAAGlD,KAAK,SAAS,QAAQ,GAAG7D,EAAE,MAAMgH,CAAC,KAAKlB,EAAE,IAAI9F,EAAE,MAAMgH,CAAC,GAAG,IAAI,GAAGlD,EAAE,MAAM6E,IAAIC,EAAE,EAAE,KAAK,IAAI,GAAG/E,aAAagC,KAAKhC,EAAE,iBAAiB,UAAU7D,EAAE,MAAM0I,EAAE,CAAC;AAAA,EACnN;AAAA,EACD,UAAU;AACR,QAAI1D;AACJ,UAAM,EAAE,SAASxB,IAAI,EAAG,MAAKwB,IAAIhF,EAAE,MAAMgH,CAAC,MAAM,OAAO,SAAShC,EAAE,wBAAwB,CAAA,GAAInB,IAAI7D,EAAE,MAAMkH,CAAC,EAAE,gBAAgBlH,EAAE,MAAM2H,CAAC,GAAGpD,IAAIF,EAAE,KAAK,WAAW,GAAGG,IAAIhB,MAAM,OAAOiB,IAAIZ,MAAM,MAAMA,IAAI,KAAKU,KAAKA,IAAI,KAAK,CAACC;AAC3N,QAAI,CAACxE,EAAE,MAAM+G,CAAC,KAAK,CAACtC,GAAG;AACrB,MAAAA,MAAMzE,EAAE,MAAMkH,CAAC,EAAE,eAAe,CAACrD;AACjC;AAAA,IACD;AACD,QAAI7D,EAAE,MAAM+G,CAAC,EAAE,gBAAgB;AAC7B,YAAM,IAAI;AAAA,QACR;AAAA,QACA;AAAA,MACR;AACI,SAAK,mBAAmB,CAAClD,CAAC,GAAG,KAAK,KAAI;AAAA,EACvC;AAAA,EACD,OAAO;AACL,UAAM,IAAI,KAAK,cAAc,YAAY,KAAK;AAC9C,QAAIA,IAAI,KAAK;AACb,KAAC7D,EAAE,MAAMkH,CAAC,EAAE,gBAAgB,KAAK,kBAAkB,KAAKrD,MAAM,QAAQD,EAAE,MAAM0D,GAAG,CAAC,GAAGzD,MAAM,QAAQD,EAAE,MAAM6D,GAAG,EAAE,IAAI,KAAK,cAAc,cAAc,OAAO7D,EAAE,MAAMyD,GAAG,IAAI,GAAGzD,EAAE,MAAM0D,GAAG,IAAI,GAAG1D,EAAE,MAAM6D,GAAG,EAAE,IAAIzH,EAAE,MAAMsH,CAAC,KAAK1D,EAAE,MAAMyD,GAAG,IAAI,GAAGrH,EAAE,MAAMkH,CAAC,EAAE,SAASlH,EAAE,MAAMkH,CAAC,EAAE,OAAO,OAAO,EAAElH,EAAE,MAAMqH,CAAC,MAAM,QAAQrH,EAAE,MAAMsH,CAAC,MAAM,QAAQ,CAAC,KAAKtH,EAAE,MAAMkH,CAAC,EAAE,iBAAiB,UAAUpD,EAAE,MAAM0E,GAAGC,CAAC,EAAE,KAAK,IAAI,GAAG3E,EAAE,MAAMgE,GAAGC,EAAE,EAAE,KAAK,IAAI,GAAG/H,EAAE,MAAMkH,CAAC,EAAE,OAAO,QAAQpD,EAAE,MAAM+E,GAAGC,CAAC,EAAE,KAAK,MAAM,EAAE;AAAA,EACre;AAAA,EACD,QAAQ;AACN,SAAK,cAAc,aAAa,KAAK,gBAAgB,QAAQlF,EAAE,MAAM6D,GAAG,EAAE,GAAGzH,EAAE,MAAMkH,CAAC,EAAE,SAASlH,EAAE,MAAMkH,CAAC,EAAE,OAAO,OAAOpD,EAAE,MAAMgE,GAAGC,EAAE,EAAE,KAAK,IAAI,GAAG/H,EAAE,MAAMkH,CAAC,EAAE,OAAO;AAAA,EACxK;AAAA,EACD,UAAU;AACR,IAAAlH,EAAE,MAAMuH,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAO,CAAE,GAAG3D,EAAE,MAAMqD,IAAI,WAAW;AAAA,EAChE;AAAA,EACD,SAAS;AACP,QAAIzC;AACJ,UAAM,EAAE,SAAShB,IAAI,QAAQgB,IAAI,KAAK,WAAW,OAAO,SAASA,EAAE,kBAAiB,MAAO,CAAE,GAAEX,IAAI7D,EAAE,MAAMkH,CAAC,EAAE,gBAAgBlH,EAAE,MAAM2H,CAAC;AACvI,QAAI9D,MAAM,KAAKA,IAAI,KAAKL,MAAM;AAC5B,YAAM,IAAI,aAAa,mBAAmB;AAC5C,IAAAM,EAAE,MAAMiF,GAAGC,CAAC,EAAE,KAAK,IAAI;AACvB,QAAIzE;AACJ,QAAIV,IAAI,IAAIU,IAAIf,IAAIe,IAAI,GAAGT,EAAE,MAAM8D,IAAIC,EAAE,EAAE,KAAK,MAAMtD,CAAC,GAAG,KAAK,cAAc,QAAQvE,EAAE,MAAM+G,CAAC,MAAM,QAAQ/G,EAAE,MAAM+G,CAAC,EAAE,gBAAgB,QAAQxC,MAAM,MAAM;AACzJ,YAAM,IAAIvE,EAAE,MAAM+G,CAAC,aAAalB,IAAI,YAAY;AAChD,MAAAtB,IAAIF,EAAEE,GAAG,CAAC;AACV,YAAMS,IAAIX,EAAErE,EAAE,MAAM+G,CAAC,EAAE,aAAa,CAAC;AACrC,MAAAnD,EAAE,MAAMyD,GAAGrC,IAAIT,IAAIV,CAAC;AAAA,IACrB;AACD,IAAA7D,EAAE,MAAMkH,CAAC,EAAE,SAAS,WAAWlH,EAAE,MAAMqH,CAAC,MAAM,SAASzD,EAAE,MAAM0D,GAAG,IAAI,GAAGxD,EAAE,MAAMkE,GAAGC,EAAC,EAAE,KAAK,IAAI,GAAGjI,EAAE,MAAMmH,CAAC,EAAE,QAAQ,IAAI,IAAInH,EAAE,MAAMkH,CAAC,EAAE,SAAS,UAAUlH,EAAE,MAAMqH,CAAC,MAAM,SAASvD,EAAE,MAAMkE,GAAGC,EAAC,EAAE,KAAK,IAAI,GAAGjI,EAAE,MAAMmH,CAAC,EAAE,QAAQ,IAAI,IAAIrD,EAAE,MAAM+E,GAAGC,CAAC,EAAE,KAAK,MAAM,EAAE,GAAG9I,EAAE,MAAMuH,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAM,CAAE;AAAA,EAC5S;AAAA,EACD,eAAe;AACb,IAAAvH,EAAE,MAAMuH,CAAC,EAAE,QAAQ,CAAC,MAAM;AACxB,QAAE,kBAAkBvB,OAAO,EAAE,OAAO,WAAW,QAAQ,EAAE,OAAO,kBAAkB,SAAS,EAAE,aAAY;AAAA,IAC/G,CAAK;AAAA,EACF;AAAA,EACD,SAAS;AACP,SAAK,cAAc,WAAWlC,EAAE,MAAMiF,GAAGC,CAAC,EAAE,KAAK,IAAI,GAAGhJ,EAAE,MAAMmH,CAAC,EAAE,OAAO,IAAI,aAAa,8BAA8B,YAAY,CAAC,GAAGrD,EAAE,MAAMkE,GAAGC,EAAC,EAAE,KAAK,IAAI,GAAGrE,EAAE,MAAMuD,GAAG,IAAIf,GAAG,CAAA,GAAGpG,EAAE,MAAMoH,CAAC,EAAE,UAAU,aAAapH,EAAE,MAAMoH,CAAC,EAAE,OAAO,IAAI,aAAa,8BAA8B,YAAY,CAAC,GAAGxD,EAAE,MAAMwD,GAAG,IAAIhB,GAAG,CAAA,GAAGpG,EAAE,MAAMuH,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAQ,CAAA,IAAI3D,EAAE,MAAMyD,GAAG,IAAI,GAAGzD,EAAE,MAAM0D,GAAG,IAAI;AAAA,EAC1Y;AAAA,EACD,mBAAmB,GAAG;AACpB,QAAI/C;AACJ,IAAAvE,EAAE,MAAMkH,CAAC,EAAE,eAAe;AAC1B,UAAMrD,IAAI,KAAK;AACf,QAAI7D,EAAE,MAAMmH,CAAC,EAAE,UAAU;AACvB,cAAQtD,GAAC;AAAA,QACP,KAAK;AAAA,QACL,KAAK;AACH,UAAAC,EAAE,MAAMiF,GAAGC,CAAC,EAAE,KAAK,IAAI;AACvB;AAAA,QACF,KAAK,YAAY;AACf,gBAAMxE,IAAIxE,EAAE,MAAM+G,CAAC,aAAalB,IAAI,YAAY,MAAM,MAAMtB,IAAIvE,EAAE,MAAM+G,CAAC,MAAM,OAAO,SAASxC,EAAE,gBAAgB;AACjH,cAAI,MAAM;AACR,YAAAX,EAAE,MAAMyD,GAAGhD,EAAE,GAAGG,CAAC,CAAC;AAAA,mBACX,MAAM,MAAM;AACnB,gBAAIQ,IAAI;AACR,YAAAA,KAAKX,EAAE,GAAGG,CAAC,KAAKxE,EAAE,MAAMqH,CAAC,KAAK,MAAM,KAAK,cAAcrH,EAAE,MAAMqH,CAAC,MAAM,QAAQrC,MAAM,QAAQpB,EAAE,MAAMyD,IAAIhD,EAAE,GAAGG,CAAC,IAAIQ,KAAK,CAAC;AAAA,UACzH;AACD,UAAAlB,EAAE,MAAMiF,GAAGC,CAAC,EAAE,KAAK,IAAI,GAAGlF,EAAE,MAAM+E,GAAGC,CAAC,EAAE,KAAK,MAAM,EAAE,GAAGhF,EAAE,MAAM0E,GAAGC,CAAC,EAAE,KAAK,IAAI;AAC/E;AAAA,QACD;AAAA,QACD;AACE,eAAK,KAAI;AAAA,MACZ;AAAA,EACJ;AAAA,EACD,iBAAiB,GAAG5E,GAAG,GAAG;AACxB,UAAM,iBAAiB,GAAGA,GAAG,CAAC;AAAA,EAC/B;AAAA,EACD,oBAAoB,GAAGA,GAAG,GAAG;AAC3B,UAAM,oBAAoB,GAAGA,GAAG,CAAC;AAAA,EAClC;AAAA,EACD,IAAI,aAAa,GAAG;AAClB,IAAAD,EAAE,MAAM+D,GAAG,CAAC,GAAG3H,EAAE,MAAMuH,CAAC,EAAE,QAAQ,CAAC1D,MAAM;AACvC,MAAAA,EAAE,gBAAgB;AAAA,IACxB,CAAK;AAAA,EACF;AAAA,EACD,IAAI,UAAU,GAAG;AACf,IAAAD,EAAE,MAAMyD,GAAGhD,EAAE,CAAC,CAAC,GAAGrE,EAAE,MAAMuH,CAAC,EAAE,QAAQ,CAAC1D,MAAMA,EAAE,YAAY,CAAC;AAAA,EAC5D;AAAA,EACD,IAAI,YAAY,GAAG;AACjB,QAAIW;AACJ,UAAMX,IAAI7D,EAAE,MAAM+G,CAAC,aAAalB,IAAI,YAAY,MAAMtB,IAAIF,IAAIG,IAAIxE,EAAE,MAAM+G,CAAC,MAAM,OAAO,SAASvC,EAAE,gBAAgB,MAAMX,CAAC;AAC1H,QAAIO,EAAE,CAAC,KAAK,CAACA,EAAEG,CAAC;AACd,YAAM,IAAI,UAAU,6DAA6D;AACnF,IAAAX,EAAE,MAAM6D,GAAG,EAAE,GAAGzH,EAAE,MAAMsH,CAAC,MAAM,QAAQtH,EAAE,MAAMqH,CAAC,MAAM,QAAQ9C,MAAM,QAAQ,KAAK,iBAAiB,IAAIX,EAAE,MAAM0D,GAAGjD,EAAE,GAAGR,CAAC,CAAC,IAAID,EAAE,MAAMyD,GAAG9C,IAAIF,EAAE,GAAGR,CAAC,IAAI,KAAK,YAAY,IAAI7D,EAAE,MAAM+G,CAAC,MAAM,QAAQxC,MAAM,SAASX,EAAE,MAAMyD,GAAG,IAAI,GAAGzD,EAAE,MAAM4D,GAAG,IAAI,GAAG1D,EAAE,MAAM8D,IAAIC,EAAE,EAAE,KAAK,MAAM,CAAC,GAAG7H,EAAE,MAAMkH,CAAC,EAAE,SAAS,YAAYtD,EAAE,MAAM0D,GAAGjD,EAAE,GAAGR,CAAC,CAAC,GAAGC,EAAE,MAAMiF,GAAGC,CAAC,EAAE,KAAK,IAAI,GAAGpF,EAAE,MAAMyD,GAAG,IAAI,GAAGvD,EAAE,MAAMkE,GAAGC,EAAC,EAAE,KAAK,IAAI,GAAGjI,EAAE,MAAMmH,CAAC,EAAE,QAAQ,IAAI,IAAIrD,EAAE,MAAM+E,GAAGC,CAAC,EAAE,KAAK,MAAM,EAAE;AAAA,EACrc;AAAA,EACD,IAAI,SAAS,GAAG;AACd,QAAIpC,GAAGC;AACP,UAAM9C,IAAI,KAAK;AACf,QAAIA,MAAM;AACR;AACF,IAAA7D,EAAE,MAAM+G,CAAC,aAAalB,KAAK7F,EAAE,MAAM+G,CAAC,EAAE,oBAAoB,UAAU/G,EAAE,MAAM0I,EAAE,CAAC;AAC/E,UAAMnE,IAAI,KAAK,WAAWC,IAAIX,aAAagC,IAAI,YAAY,MAAMpB,IAAIJ,EAAE,KAAK,aAAaG,CAAC,GAAG,EAAE,UAAUQ,IAAI,MAAM,SAASN,IAAI,EAAC,MAAOgC,IAAI1G,EAAE,MAAMgH,CAAC,MAAM,OAAO,SAASN,EAAE,kBAAmB,MAAK,IAAI/B,IAAIN,EAAEK,GAAGF,CAAC,GAAGY,IAAIvB,aAAagC,GAAGZ,IAAI,aAAaY,GAAGxH,IAAI,aAAa,kBAAkBoI,IAAI,KAAK;AAC1S,QAAIxB;AACF,MAAArB,EAAE,MAAMmD,GAAG,CAAC,GAAG,EAAE,iBAAiB,UAAU/G,EAAE,MAAM0I,EAAE,CAAC,GAAG5E,EAAE,MAAMiF,GAAGC,CAAC,EAAE,KAAK,IAAI,GAAGpF,EAAE,MAAM6D,GAAG,EAAE,GAAG7D,EAAE,MAAMyD,GAAG,IAAI,GAAGzD,EAAE,MAAM0D,GAAG,IAAI,IAAI/C,MAAM,aAAaA,MAAM,iBAAiB,CAACvE,EAAE,MAAMmH,CAAC,KAAKnH,EAAE,MAAMmH,CAAC,EAAE,UAAU,eAAerD,EAAE,MAAMgE,GAAGC,EAAE,EAAE,KAAK,IAAI,GAAG/H,EAAE,MAAMkH,CAAC,EAAE,OAAO,QAAQlH,EAAE,MAAMuH,CAAC,EAAE,QAAQ,CAACX,MAAMA,EAAE,MAAK,CAAE,IAAIrC,MAAM,YAAYS,MAAM,QAAQpB,EAAE,MAAM0D,GAAGtC,IAAIL,CAAC,GAAG8B,OAAO,CAACzG,EAAE,MAAMmH,CAAC,KAAKnH,EAAE,MAAMmH,CAAC,EAAE,UAAU,eAAerD,EAAE,MAAMgE,GAAGC,EAAE,EAAE,KAAK,IAAI,GAAGxD,MAAM,WAAWvE,EAAE,MAAMkH,CAAC,EAAE,OAAO,UAAUlH,EAAE,MAAMkH,CAAC,EAAE,OAAO,SAASlH,EAAE,MAAMqH,CAAC,MAAM,QAAQzD,EAAE,MAAM0D,GAAG,IAAI,GAAGxD,EAAE,MAAM+E,GAAGC,CAAC,EAAE,KAAK,MAAM,EAAE;AAAA,aAC/kBzK;AACP,UAAIuF,EAAE,MAAMmD,GAAG,CAAC,GAAG3B,GAAG;AACpB,YAAIX,MAAM,QAAQO,MAAM,MAAM;AAC5B,gBAAM,EAAE,SAAS4B,IAAI,EAAG,MAAKD,IAAI3G,EAAE,MAAMgH,CAAC,MAAM,OAAO,SAASL,EAAE,wBAAwB,CAAA,GAAIE,IAAIxC,EAAEuC,GAAG,IAAI;AAC3G,eAAK,cAAc5B,IAAI6B;AAAA,QACxB;AACD,gBAAQtC,GAAC;AAAA,UACP,KAAK;AACH,YAAAvE,EAAE,MAAMuH,CAAC,EAAE,QAAQ,CAACX,MAAMA,EAAE,MAAK,CAAE;AACnC;AAAA,UACF,KAAK;AAAA,UACL,KAAK;AACH,YAAA5G,EAAE,MAAMuH,CAAC,EAAE,QAAQ,CAACX,MAAMA,EAAE,KAAI,CAAE;AAAA,QACrC;AAAA,MACF;AAAA;AAED,YAAM,UAAU,2BAA2B,CAAC;AAAA,EAC/C;AAAA,EACD,IAAI,OAAO,GAAG;AACZ,QAAI,MAAM5G,EAAE,MAAMgH,CAAC,GAAG;AACpB,UAAI,KAAK,WAAWlD,EAAE,MAAMkE,GAAGC,EAAC,EAAE,KAAK,IAAI,GAAGjI,EAAE,MAAMgH,CAAC,KAAKlB,EAAE,OAAO9F,EAAE,MAAMgH,CAAC,CAAC,GAAG,GAAG;AACnF,cAAMnD,IAAIiC,EAAE,IAAI,CAAC;AACjB,QAAAjC,MAAMA,EAAE,SAAS,OAAOiC,EAAE,IAAI,GAAG,IAAI;AAAA,MACtC;AACD,MAAAlC,EAAE,MAAMoD,GAAG,CAAC,GAAGlD,EAAE,MAAM6E,IAAIC,EAAE,EAAE,KAAK,IAAI,GAAG9E,EAAE,MAAM+E,GAAGC,CAAC,EAAE,KAAK,MAAM,EAAE;AAAA,IACvE;AAAA,EACF;AAAA,EACD,IAAI,QAAQ;AACV,WAAO9I,EAAE,MAAMmH,CAAC,EAAE;AAAA,EACnB;AAAA,EACD,IAAI,WAAW;AACb,WAAOnH,EAAE,MAAMoH,CAAC,EAAE;AAAA,EACnB;AAAA,EACD,IAAI,YAAY;AACd,QAAI3C;AACJ,QAAI,EAAE,SAASjB,IAAI,EAAC,MAAOiB,IAAI,KAAK,WAAW,OAAO,SAASA,EAAE,kBAAiB,MAAO,CAAA;AACzF,UAAMZ,IAAI7D,EAAE,MAAM+G,CAAC,aAAalB,IAAI,YAAY,MAAMtB,IAAIF,EAAE,KAAK,WAAWR,CAAC,GAAGW,IAAIH,EAAE,KAAK,aAAaR,CAAC;AACzG,WAAOL,IAAIa,EAAEb,GAAGK,CAAC,GAAGW,MAAM,QAAQD,MAAM,QAAQvE,EAAE,MAAMkH,CAAC,EAAE,SAAS,OAAO,SAASlH,EAAE,MAAMkH,CAAC,EAAE,SAAS,WAAW3C,MAAM,QAAQvE,EAAE,MAAMkH,CAAC,EAAE,SAAS,SAAS,WAAW1C,MAAM,SAASxE,EAAE,MAAM2H,CAAC,IAAI,KAAKnD,KAAKhB,KAAKxD,EAAE,MAAM2H,CAAC,IAAI,KAAKnD,KAAK,KAAK,aAAa;AAAA,EAC9P;AAAA,EACD,IAAI,eAAe;AACjB,WAAOxE,EAAE,MAAM2H,CAAC;AAAA,EACjB;AAAA,EACD,IAAI,eAAe;AACjB,WAAO3H,EAAE,MAAMiH,EAAE;AAAA,EAClB;AAAA,EACD,IAAI,UAAU;AACZ,WAAOjH,EAAE,MAAMmH,CAAC,EAAE,UAAU;AAAA,EAC7B;AAAA,EACD,IAAI,cAAc;AAChB,QAAI3C;AACJ,UAAMhB,MAAMgB,IAAI,KAAK,aAAa,OAAO,SAASA,EAAE,gBAAgB;AACpE,QAAIxE,EAAE,MAAMsH,CAAC,GAAG;AACd,UAAI,OAAO9D,KAAK;AACd,eAAOxD,EAAE,MAAMsH,CAAC;AAClB,YAAM,IAAItH,EAAE,MAAM+G,CAAC,aAAalB,IAAI,YAAY;AAChD,aAAO,IAAI,aAAa7F,EAAE,MAAMsH,CAAC,GAAG,CAAC;AAAA,IACtC;AACD,QAAI9D,MAAM,QAAQxD,EAAE,MAAMqH,CAAC,MAAM;AAC/B,aAAO;AACT,UAAMxD,IAAI7D,EAAE,MAAM+G,CAAC,aAAalB,IAAI,YAAY;AAChD,QAAItB,KAAKF,EAAEb,GAAGK,CAAC,IAAI7D,EAAE,MAAMqH,CAAC,KAAK,KAAK;AACtC,WAAO9C,MAAM,OAAOA,IAAI,IAAI,OAAOf,KAAK,WAAWe,IAAI,IAAI,aAAaA,GAAGV,CAAC;AAAA,EAC7E;AAAA,EACD,IAAI,YAAY;AACd,QAAIU;AACJ,QAAIvE,EAAE,MAAMqH,CAAC,MAAM;AACjB,aAAO;AACT,QAAI,UAAU9C,IAAI,KAAK,aAAa,OAAO,SAASA,EAAE,gBAAgB,SAAS;AAC7E,aAAOvE,EAAE,MAAMqH,CAAC;AAClB,UAAMxD,IAAI7D,EAAE,MAAM+G,CAAC,aAAalB,IAAI,YAAY;AAChD,WAAO,IAAI,aAAa7F,EAAE,MAAMqH,CAAC,GAAGxD,CAAC;AAAA,EACtC;AAAA,EACD,IAAI,WAAW;AACb,WAAO7D,EAAE,MAAM+G,CAAC;AAAA,EACjB;AAAA,EACD,IAAI,SAAS;AACX,WAAO/G,EAAE,MAAMgH,CAAC;AAAA,EACjB;AACH;AACAD,IAAI,oBAAI,WAAWC,IAAI,oBAAI,QAAS,GAAEC,KAAK,oBAAI,QAAS,GAAEC,IAAI,oBAAI,QAAO,GAAIC,IAAI,oBAAI,QAAO,GAAIC,IAAI,oBAAI,QAAO,GAAIC,IAAI,oBAAI,QAAO,GAAIC,IAAI,oBAAI,WAAWC,IAAI,oBAAI,WAAWC,IAAI,oBAAI,WAAWC,IAAI,oBAAI,WAAWC,KAAK,oBAAI,QAAS,GAAEC,IAAI,oBAAI,QAAS,GAAEC,KAAK,oBAAI,QAAS,GAAEC,KAAK,SAASrE,GAAG;AAC5R,MAAIe;AACJ,QAAMV,IAAIQ,IAAIE,IAAIvE,EAAE,MAAM+G,CAAC,MAAM,OAAO,SAASxC,EAAE,gBAAgB,IAAI;AACvE,MAAIf,MAAM,QAAQK,MAAM;AACtB,UAAM,IAAI,UAAS;AACrB,EAAAL,MAAM,QAAQK,MAAM,SAASL,IAAIa,EAAEb,CAAC,GAAGI,EAAE,MAAM6D,GAAG,EAAE,GAAGzH,EAAE,MAAMsH,CAAC,MAAM,QAAQtH,EAAE,MAAMqH,CAAC,MAAM,QAAQrH,EAAE,MAAM+G,CAAC,aAAalB,KAAK7F,EAAE,MAAM+G,CAAC,EAAE,UAAU,cAAc/G,EAAE,MAAM2H,CAAC,MAAM,IAAI/D,EAAE,MAAM0D,GAAG9D,CAAC,IAAII,EAAE,MAAMyD,GAAGxD,IAAIL,IAAIxD,EAAE,MAAM2H,CAAC,CAAC,GAAG3H,EAAE,MAAM+G,CAAC,aAAalB,KAAK7F,EAAE,MAAM+G,CAAC,EAAE,UAAU,cAAcnD,EAAE,MAAMyD,GAAG,IAAI,GAAGzD,EAAE,MAAM4D,GAAG,IAAI;AACvU,GAAGM,IAAI,oBAAI,QAAS,GAAEC,KAAK,WAAW;AACpC,EAAA/H,EAAE,MAAMmH,CAAC,EAAE,UAAU,aAAavD,EAAE,MAAMuD,GAAG,IAAIf,GAAC,CAAE,GAAG,qBAAqBpG,EAAE,MAAM0H,EAAE,CAAC,GAAG9D,EAAE,MAAM8D,IAAI,sBAAsB,MAAM;AAChI,QAAI7D;AACJ,OAAGA,IAAI7D,EAAE,MAAM+G,CAAC,MAAM,OAAO,SAASlD,EAAE,gBAAgB,UAAU,SAASC,EAAE,MAAMwE,IAAIC,EAAE,EAAE,KAAK,IAAI,GAAGvI,EAAE,MAAMkH,CAAC,EAAE,SAAS,WAAWlH,EAAE,MAAMqH,CAAC,MAAM,QAAQrH,EAAE,MAAMsH,CAAC,MAAM,QAAQxD,EAAE,MAAMoE,IAAIC,EAAE,EAAE,KAAK,IAAI,IAAInI,EAAE,MAAMkH,CAAC,EAAE,SAAS,WAAWpD,EAAE,MAAMsE,IAAIC,EAAE,EAAE,KAAK,IAAI,GAAG,QAAQ,IAAIrI,EAAE,MAAMuH,CAAC,EAAE,IAAI,CAAChD,MAAMA,EAAE,QAAQ,CAAC,EAAE,KAAKvE,EAAE,MAAMiJ,EAAE,CAAC,GAAG,QAAQ,IAAIjJ,EAAE,MAAMuH,CAAC,EAAE,IAAI,CAAChD,MAAM,IAAI,QAAQ,CAACC,MAAMD,EAAE,WAAWC,CAAC,CAAC,CAAC,EAAE,KAAKxE,EAAE,MAAMmJ,EAAE,CAAC,GAAG,QAAQ,IAAInJ,EAAE,MAAMuH,CAAC,EAAE,IAAI,CAAChD,MAAM,IAAI,QAAQ,CAACC,MAAMD,EAAE,WAAWC,CAAC,CAAC,CAAC,EAAE,KAAKxE,EAAE,MAAMkJ,EAAE,CAAC,EAAE,KAAK,MAAMtF,EAAE,MAAMqD,IAAI,SAAS,CAAC;AAAA,EACniB,CAAA,CAAC;AACJ,GAAGe,IAAI,oBAAI,QAAS,GAAEC,KAAI,WAAW;AACnC,uBAAqBjI,EAAE,MAAM0H,EAAE,CAAC,GAAG1H,EAAE,MAAMkH,CAAC,EAAE,OAAO;AACvD,GAAGgB,KAAK,oBAAI,QAAS,GAAEC,KAAK,WAAW;AACrC,MAAI5D;AACJ,QAAM,MAAMA,IAAI,KAAK,aAAa,OAAO,SAASA,EAAE,gBAAgB;AACpE,MAAI,MAAM;AACR;AACF,QAAMV,IAAI7D,EAAE,MAAM+G,CAAC,aAAalB,IAAI,YAAY;AAChD,MAAI7F,EAAE,MAAMsH,CAAC,MAAM;AACjB,IAAAxD,EAAE,MAAMiF,GAAGC,CAAC,EAAE,KAAK,IAAI,GAAG,KAAK,iBAAiB,IAAIpF,EAAE,MAAMyD,GAAGhD,EAAE,GAAGR,CAAC,CAAC,KAAKD,EAAE,MAAMyD,GAAGhD,EAAE,GAAGR,CAAC,IAAI7D,EAAE,MAAMsH,CAAC,IAAI,KAAK,YAAY,GAAG1D,EAAE,MAAM0D,GAAG,IAAI;AAAA,WACzItH,EAAE,MAAMqH,CAAC,MAAM,QAAQrH,EAAE,MAAMkH,CAAC,EAAE,iBAAiB,MAAM;AAChE,UAAM1C,KAAKH,EAAE,GAAGR,CAAC,IAAI7D,EAAE,MAAMqH,CAAC,KAAK,KAAK;AACxC,IAAAvD,EAAE,MAAMiF,GAAGC,CAAC,EAAE,KAAK,IAAI;AACvB,UAAMvE,IAAI,KAAK;AACf,IAAAA,MAAM,KAAKb,EAAE,MAAM0D,GAAG,IAAI,GAAG1D,EAAE,MAAMyD,GAAGhD,EAAE,GAAGR,CAAC,CAAC,KAAKD,EAAE,MAAMyD,GAAGhD,EAAE,GAAGR,CAAC,IAAIW,IAAIC,CAAC;AAAA,EAC/E;AACD,EAAAzE,EAAE,MAAMmH,CAAC,EAAE,UAAU,aAAanH,EAAE,MAAMmH,CAAC,EAAE,QAAQ,IAAI,GAAGrD,EAAE,MAAM+E,GAAGC,CAAC,EAAE,KAAK,MAAM,EAAE,GAAGhF,EAAE,MAAM0E,GAAGC,CAAC,EAAE,KAAK,IAAI,GAAGzI,EAAE,MAAMkH,CAAC,EAAE,OAAO,MAAM,KAAK,oBAAoB,oBAAoBlH,EAAE,MAAMuH,CAAC,EAAE,QAAQ,CAAC/C,MAAMA,EAAE,KAAI,CAAE;AAC7N,GAAG4D,KAAK,oBAAI,QAAS,GAAEC,KAAK,WAAW;AACrC,MAAI;AACJ,QAAM,MAAM,IAAI,KAAK,aAAa,OAAO,SAAS,EAAE,gBAAgB;AACpE,MAAI,MAAM;AACR;AACF,QAAMxE,IAAI7D,EAAE,MAAM+G,CAAC,aAAalB,IAAI,YAAY,MAAM,IAAI;AAC1D,EAAA7F,EAAE,MAAMqH,CAAC,MAAM,QAAQrH,EAAE,MAAMsH,CAAC,MAAM,QAAQ1D,EAAE,MAAM0D,IAAIjD,EAAE,GAAGR,CAAC,IAAI7D,EAAE,MAAMqH,CAAC,KAAK,KAAK,YAAY,GAAGvD,EAAE,MAAMiF,GAAGC,CAAC,EAAE,KAAK,IAAI,GAAGpF,EAAE,MAAMyD,GAAG,IAAI,GAAGrH,EAAE,MAAMmH,CAAC,EAAE,QAAQ,IAAI,GAAGrD,EAAE,MAAM+E,GAAGC,CAAC,EAAE,KAAK,MAAM,EAAE,GAAGhF,EAAE,MAAM0E,GAAGC,CAAC,EAAE,KAAK,IAAI,GAAGzI,EAAE,MAAMkH,CAAC,EAAE,OAAO,MAAMlH,EAAE,MAAMuH,CAAC,EAAE,QAAQ,CAAC9C,MAAMA,EAAE,MAAK,CAAE;AACjS,GAAG6D,KAAK,oBAAI,QAAS,GAAEC,KAAK,WAAW;AACrC,MAAIvI,EAAE,MAAMyH,CAAC,KAAK,EAAE,CAACzH,EAAE,MAAM+G,CAAC,KAAK,CAAC/G,EAAE,MAAM+G,CAAC,EAAE,gBAAgB,EAAE,KAAK,cAAc,UAAU,KAAK,cAAc,YAAY/G,EAAE,MAAMsH,CAAC,MAAM,OAAO;AACjJ,QAAItH,EAAE,MAAM+G,CAAC,aAAalB,GAAG;AAC3B,YAAMrC,IAAIxD,EAAE,MAAMkH,CAAC,EAAE,gBAAgB,KAAK;AAC1C,MAAAtD,EAAE,MAAMyD,GAAG7D,KAAK,IAAI,IAAI,GAAG;AAAA,IAC5B;AACC,MAAAI,EAAE,MAAMyD,GAAGhD,EAAErE,EAAE,MAAM+G,CAAC,EAAE,aAAa,IAAI,CAAC;AAC5C,IAAAnD,EAAE,MAAM0D,GAAG,IAAI;AAAA,EAChB;AACH,GAAGkB,IAAI,oBAAI,QAAS,GAAEC,IAAI,WAAW;AACnC,MAAIhE;AACJ,QAAM,MAAMA,IAAIzE,EAAE,MAAM+G,CAAC,MAAM,OAAO,SAAStC,EAAE,gBAAgB;AACjE,MAAI,MAAM;AACR;AACF,QAAMZ,IAAI7D,EAAE,MAAMgH,CAAC,GAAG,IAAIhH,EAAE,MAAM+G,CAAC,aAAalB,IAAIvB,GAAG,GAAwBT,GAAE,WAAW,IAAIgB,GAAG,CAAC;AACpG,MAAIL,IAAI;AACR,MAAIxE,EAAE,MAAMqH,CAAC,MAAM,MAAM;AACvB,UAAM3C,IAAIL,EAAE,GAAG,SAAS,OAAO,KAAK,eAAe,IAAI,IAAI,OAAO,KAAK,eAAe,IAAI,OAAO,QAAQ;AACzG,IAAAG,KAAK,IAAIxE,EAAE,MAAMqH,CAAC,KAAK,KAAK,cAAc7C,KAAKE;AAAA,EAChD,WAAU1E,EAAE,MAAMsH,CAAC,MAAM;AACxB,IAAA9C,IAAIxE,EAAE,MAAMsH,CAAC;AAAA;AAEb;AACF,EAAAtH,EAAE,MAAMuH,CAAC,EAAE,QAAQ,CAACvC,MAAMA,EAAE,cAAcR,CAAC;AAC7C,GAAGkE,KAAK,oBAAI,QAAS,GAAEC,KAAK,oBAAI,QAAO,GAAIC,KAAK,WAAW;AACzD,MAAIrE;AACJ,MAAI,IAAIvE,EAAE,MAAMgH,CAAC;AACjB,QAAMnD,IAAI,CAAA;AACV,MAAI,aAAasC;AACf,aAAS3B,IAAI,GAAGA,IAAI,EAAE,SAAS,QAAQA,KAAK;AAC1C,YAAMC,IAAI,IAAI2E,GAAG,EAAE,SAAS,KAAK5E,CAAC,CAAC;AACnC,UAAI,aAAagC,MAAMhC,IAAI,GAAG;AAC5B,cAAM,EAAE,SAASQ,IAAI,KAAM,MAAKT,IAAIV,EAAEW,IAAI,CAAC,EAAE,WAAW,OAAO,SAASD,EAAE,kBAAmB,MAAK;AAClG,QAAAE,EAAE,YAAYJ,EAAEW,GAAG,IAAI;AAAA,MACxB;AACD,MAAAnB,EAAE,KAAKY,CAAC;AAAA,IACT;AAAA,OACE;AACH,UAAMD,IAAIxE,EAAE,MAAM+G,CAAC,aAAalB,IAAI,SAAS,WAAW7F,EAAE,MAAM+G,CAAC;AACjE,IAAAlD,EAAE,KAAK,IAAII,GAAG,GAAGO,CAAC,CAAC;AAAA,EACpB;AACD,EAAAZ,EAAE,MAAM2D,GAAG1D,CAAC;AACd,GAAGgF,IAAI,oBAAI,QAAS,GAAEC,IAAI,SAAStF,GAAG;AACpC,MAAIwB,GAAGN;AACP,QAAMb,MAAMmB,IAAIhF,EAAE,MAAM+G,CAAC,MAAM,OAAO,SAAS/B,EAAE,gBAAgB,MAAMT,IAAIvE,EAAE,MAAM+G,CAAC,aAAalB,IAAI,YAAY;AACjH,MAAIrB,IAAIH,EAAE,KAAK,aAAaE,CAAC;AAC7B,MAAIC,KAAKxE,EAAE,MAAMqH,CAAC,MAAM,QAAQ,CAAC,KAAK,SAAS;AAC7C,QAAI,EAAE,OAAO1C,IAAI,GAAG,UAAUS,IAAI,GAAG,YAAYH,IAAI,GAAG,UAAU5G,IAAI,OAAQ,MAAKqG,IAAI1E,EAAE,MAAMgH,CAAC,MAAM,OAAO,SAAStC,EAAE,UAAS,MAAO,CAAA;AACxI,UAAM,IAAI1E,EAAE,MAAMkH,CAAC,EAAE,gBAAgB,KAAK;AAC1C,QAAI7I,MAAM;AACR,MAAAA,IAAI2B,EAAE,MAAM+G,CAAC,aAAalB,IAAI7B,KAAK;AAAA,aAC5B3F,aAAa;AACpB,MAAAA,IAAIA,EAAE,GAAG,IAAI,EAAE;AAAA,aACR,OAAOA,KAAK;AACnB,YAAM,IAAI,UAAU,kCAAkC;AACxD,UAAMqI,IAAI/B,IAAItG,IAAI4G,IAAIG;AACtB,QAAIuB,IAAItC,EAAErE,EAAE,MAAMwH,CAAC,GAAGjD,CAAC;AACvB,QAAI,KAAKC,KAAKkC,KAAK1G,EAAE,MAAMwH,CAAC,MAAM,SAASb,MAAM,QAAQA,IAAID,OAAOC,IAAID,IAAI9C,EAAE,MAAM0D,GAAG9D,IAAIgB,IAAImC,CAAC,KAAK,IAAI,KAAKnC,KAAK,MAAMmC,MAAM,QAAQA,IAAI,OAAOA,IAAI,IAAI/C,EAAE,MAAM0D,GAAG9D,IAAIgB,IAAImC,CAAC,KAAK,MAAM,MAAMnD,KAAKxD,EAAE,MAAMsH,CAAC,MAAM,SAASzD,MAAM,OAAOD,EAAE,MAAMyD,GAAGhD,EAAER,GAAGU,CAAC,IAAIvE,EAAE,MAAMsH,CAAC,IAAI,CAAC,IAAI1D,EAAE,MAAMyD,GAAG,IAAI,IAAIzD,EAAE,MAAM0D,GAAG,IAAI;AAAA,EACnT;AACD,EAAAxD,EAAE,MAAM0E,GAAGC,CAAC,EAAE,KAAK,IAAI,GAAG7E,EAAE,MAAM4D,GAAG,KAAK,WAAW,GAAG,KAAK,cAAc,aAAaxH,EAAE,MAAMoH,CAAC,EAAE,UAAU,aAAapH,EAAE,MAAMiJ,EAAE,EAAE,KAAK,IAAI,IAAIjJ,EAAE,MAAMoH,CAAC,EAAE,UAAU,cAAcxD,EAAE,MAAMwD,GAAG,IAAIhB,GAAC,CAAE;AAC1M,GAAG2C,IAAI,oBAAI,QAAS,GAAEC,IAAI,WAAW;AACnC,EAAAhJ,EAAE,MAAMkH,CAAC,EAAE,iBAAiB,KAAK,eAAelH,EAAE,MAAMkH,CAAC,EAAE,eAAelH,EAAE,MAAMkH,CAAC,EAAE,eAAe;AACtG,GAAG+B,KAAK,oBAAI,QAAO,GAAIC,KAAK,oBAAI,WAAWC,KAAK,oBAAI;AACpD,IAAIE,KAAKD;AACT,IAAIE,IAAGC,IAAIC;AACX,MAAMC,WAAWtD,GAAG;AAAA,EAClB,YAAY,GAAGtC,IAAIE,IAAI;AACrB,UAAM,CAAC,GACPJ,EAAE,MAAM4F,EAAE,GACV5F,EAAE,MAAM2F,IAAG,MAAM,GACjB1F,EAAE,MAAM0F,IAAG;AAAA,MACT,GAAGvF;AAAA,MACH,GAAGF;AAAA,IACT,CAAK,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,aAAY,CAAE;AAAA,EACtC;AAAA,EACD,WAAW,GAAG;AACZ,UAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,QAAQ,CAACA,MAAMA,EAAE,aAAY,CAAE;AAAA,EACvD;AAAA,EACD,UAAU,GAAG;AACX,UAAM,OAAO,GAAG,CAAC,GAAG,EAAE,QAAQ,CAACA,MAAMA,EAAE,aAAY,CAAE;AAAA,EACtD;AAAA,EACD,YAAY;AACV,WAAO7D,EAAE,MAAMsJ,EAAC;AAAA,EACjB;AAAA,EACD,oBAAoB;AAClB,UAAM,IAAI,KAAK,UAAS,GAAIzF,IAAI,EAAE,GAAG;AACrC,aAASoB,IAAI,GAAGA,IAAI,KAAK,SAAS,QAAQA,KAAK;AAC7C,YAAM5G,IAAI,KAAK,SAAS,KAAK4G,CAAC;AAC9B,UAAI,CAAC5G;AACH;AACF,UAAI;AAAA,QACF,OAAOoI,IAAI;AAAA,QACX,UAAUC,IAAI;AAAA,QACd,UAAUC,IAAI;AAAA,QACd,gBAAgBC,IAAI;AAAA,QACpB,SAASC,IAAI;AAAA,MACrB,IAAUxI,EAAE;AACN,QAAE,QAAQ,EAAE,QAAQ,KAAK,IAAI,EAAE,OAAOoI,CAAC,IAAIA,GAAG,EAAE,WAAW,EAAE,WAAW,KAAK,IAAI,EAAE,UAAUC,CAAC,IAAIA,GAAG7C,EAAE,UAAUA,EAAE,UAAU,KAAK,IAAIQ,EAAER,EAAE,SAAS,IAAI,GAAGQ,EAAEwC,GAAG,IAAI,CAAC,IAAIA,GAAGhD,EAAE,iBAAiBA,EAAE,iBAAiB,KAAK,IAAIQ,EAAER,EAAE,gBAAgB,IAAI,GAAGQ,EAAEuC,GAAG,IAAI,CAAC,IAAIA,GAAG,EAAE,WAAW,EAAE,oBAAoB,kBAAkB,EAAE,SAAS,GAAG,IAAI,EAAE,QAAQ,EAAE,UAAUD,IAAIA,aAAa,kBAAkBA,EAAE,GAAG,IAAI,EAAE,QAAQA,GAAG,OAAOA,KAAK,aAAa,EAAE,aAAa,SAAS,EAAE,WAAWtC,EAAEsC,GAAG,IAAI,IAAI,OAAO,EAAE,YAAY,aAAa,EAAE,WAAW,EAAE,WAAW,KAAK,IAAI,EAAE,UAAUA,CAAC,IAAIA;AAAA,IAC9jB;AACD,UAAM,EAAE,UAAU,GAAG,WAAWnC,GAAG,aAAa,MAAMsB,EAAE,IAAI,IAAI,KAAK,IAAId,IAAI,aAAaa,IAAI,YAAY;AAC1G,QAAI,EAAE,UAAUnB,IAAI,GAAG,YAAYC,IAAI,GAAG,SAASS,IAAI,EAAC,IAAKvB;AAC7D,QAAIa,MAAM,WAAWA,IAAI,IAAI,OAAOA,KAAK;AACvC,YAAM,IAAI,UAAU,kCAAkC;AACxD,WAAOb,EAAE,WAAWa,GAAGb,EAAE,iBAAiBgB,GAAGH,CAAC,IAAIC,GAAGd,EAAE,YAAYW,KAAK,QAAQX,EAAE,YAAY,GAAGA,EAAE,mBAAmB4B,GAAG5B,GAAGwB,GAAGxB,GAAG7D,EAAE,MAAMuJ,IAAIC,EAAE,CAAC,CAAC,GAAG,aAAa3D,IAAIV,GAAGtB,CAAC,KAAK,aAAa,qBAAqBA,EAAE,WAAW,KAAKQ,EAAE,GAAGW,CAAC,IAAIX,EAAEe,GAAGJ,CAAC,IAAInB;AAAA,EACxP;AAAA,EACD,aAAa,GAAG;AACd,IAAAD,EAAE,MAAM0F,IAAG;AAAA,MACT,GAAGtJ,EAAE,MAAMsJ,EAAC;AAAA,MACZ,GAAG;AAAA,IACT,CAAK;AACD,aAASzF,IAAI,GAAGA,IAAI,KAAK,SAAS,QAAQA,KAAK;AAC7C,YAAM,IAAI,KAAK,SAAS,KAAKA,CAAC;AAC9B,MAAa,GAAE;IAChB;AAAA,EACF;AACH;AACAyF,KAAI,oBAAI,QAAO,GAAIC,KAAK,oBAAI,QAAO,GAAIC,KAAK,WAAW;AACrD,QAAM,EAAE,cAAchG,IAAI,EAAC,IAAKsC,EAAE,IAAI,IAAI,KAAK;AAC/C,SAAOtC,IAAI,IAAI,cAAc;AAC/B;AC51BO,MAAMkG,WAAqC7N,GAAgF;AAAA,EAC9G,MAAMC,EAA6B;AAAA,EACnD6N,KAAgD;AAAA,EAChDC,KAAgD;AAAA,EAEhD,QAA2C;AAAA,IACvC,eAAe;AAAA,EAAA;AAAA,EAGnB,IAAI,eAAeC,GAA8C;AAC7D,SAAKF,KAAkBE;AAAA,EAC3B;AAAA,EAEA,IAAI,eAAeC,GAA8C;AAC7D,SAAKF,KAAkBE;AAAA,EAC3B;AAAA,EAEA,IAAI,iBAAiB;AACjB,WAAO,KAAKH;AAAA,EAChB;AAAA,EAEA,IAAI,iBAAiB;AACjB,WAAO,KAAKC;AAAA,EAChB;AAAA,EAEA,sBAAsBrL,GAAkBwL,GAAyB;AAC7D,UAAMC,IAAyC,CAAA,GACzCC,IAAgB,OAAO,iBAAiB1L,CAAO;AACrD,eAAW/B,KAAOuN,GAAW;AACrB,UAAAG;AACJ,MAAI1N,MAAQ,WACS0N,IAAA,cACZ1N,MAAQ,UACI0N,IAAA,aAEjBA,IAAiB9L,GAAY5B,CAAG,GACpCwN,EAAeE,CAAc,IAAID,EAAc,iBAAiBzN,CAAG;AAAA,IACvE;AACO,WAAAwN;AAAA,EACX;AAAA,EAEA,WAAWG,GAAwC1L,GAA+BsL,GAAyB;AACnG,QAAA,CAAC5G,GAAkBgH,CAAU;AAAG;AAC9B,UAAAH,IAAiB,OAAO,iBAAiBG,CAAU;AACzD,eAAW3N,KAAOuN,GAAW;AACnB,YAAA5L,IAAQ6L,EAAe,iBAAiBxN,CAAG,GAC3C4N,IAAWJ,EAAe,oBAAoBxN,CAAG;AACvD,MAAAiC,EAAa,MAAM,YAAYjC,GAAK2B,GAAOiM,CAAQ;AAAA,IACvD;AAAA,EACJ;AAAA,EAEA,mBAA6FC,GAAUC,GAAQ;AACrG,UAAAC,IAAkB,IAAI,SACtBtI,IAAgC;AAAA,MAClC,MAAM;AAAA,MACN,UAAU;AAAA,MACV,QAAQ;AAAA,IAAA,GAENuI,IAAiBF,EAAI,SAAS,gBAC9BG,IAAiB,aAAaJ,EAAM,KAAK,CAAC,OAAOA,EAAM,KAAK,CAAC,OAC7DK,IAAe,aAAaJ,EAAI,KAAK,CAAC,OAAOA,EAAI,KAAK,CAAC;AAC7D,YAAQE,GAAgB;AAAA,MACpB,KAAK;AACe,QAAAD,EAAA;AAAA,UACZ,IAAI;AAAA,YACAF,EAAM;AAAA,YACN;AAAA,cACI,EAAE,WAAWI,GAAgB,SAAS,EAAE;AAAA,cACxC,EAAE,WAAWC,GAAc,SAAS,EAAE;AAAA,YAC1C;AAAA,YACAzI;AAAA,UACJ;AAAA,QAAA,GAEYsI,EAAA;AAAA,UACZ,IAAI;AAAA,YACAD,EAAI;AAAA,YACJ;AAAA,cACI,EAAE,WAAWG,EAAe;AAAA,cAC5B,EAAE,WAAWC,EAAa;AAAA,YAC9B;AAAA,YACAzI;AAAA,UACJ;AAAA,QAAA;AAGJ;AAAA,MACJ,KAAK;AACe,QAAAsI,EAAA;AAAA,UACZ,IAAI;AAAA,YACAF,EAAM;AAAA,YACN;AAAA,cACI,EAAE,WAAWI,GAAgB,SAAS,EAAE;AAAA,cACxC,EAAE,SAAS,GAAG,QAAQ,IAAI;AAAA,cAC1B,EAAE,WAAWC,GAAc,SAAS,EAAE;AAAA,YAC1C;AAAA,YACAzI;AAAA,UACJ;AAAA,QAAA,GAGYsI,EAAA;AAAA,UACZ,IAAI;AAAA,YACAD,EAAI;AAAA,YACJ;AAAA,cACI,EAAE,WAAWG,GAAgB,SAAS,EAAE;AAAA,cACxC,EAAE,SAAS,GAAG,QAAQ,IAAI;AAAA,cAC1B,EAAE,WAAWC,GAAc,SAAS,EAAE;AAAA,YAC1C;AAAA,YACAzI;AAAA,UACJ;AAAA,QAAA;AAGJ;AAAA,MACJ,KAAK;AACG,QAAAqI,EAAA,MAAM,MAAM,eAAe,gBACfC,EAAA;AAAA,UACZ,IAAI;AAAA,YACAF,EAAM;AAAA,YACN;AAAA,cACI,EAAE,WAAWI,GAAgB,SAAS,EAAE;AAAA,cACxC,EAAE,WAAWC,GAAc,SAAS,EAAE;AAAA,YAC1C;AAAA,YACAzI;AAAA,UACJ;AAAA,QAAA,GAGYsI,EAAA;AAAA,UACZ,IAAI;AAAA,YACAD,EAAI;AAAA,YACJ;AAAA,cACI,EAAE,WAAWG,EAAe;AAAA,cAC5B,EAAE,WAAWC,EAAa;AAAA,YAC9B;AAAA,YACAzI;AAAA,UACJ;AAAA,QAAA;AAGJ;AAAA,MACJ,KAAK,SAAS;AACV,cAAM8H,IAAY,MAAM,KAAK,oBAAI,IAAI,CAAC,GAAGM,EAAM,SAAS,QAAQ,GAAGC,EAAI,SAAS,MAAM,CAAC,CAAC;AACxE,QAAAC,EAAA;AAAA,UACZ,IAAI;AAAA,YACAD,EAAI;AAAA,YACJ;AAAA,cACI;AAAA,gBACI,GAAG,OAAO,aAAaD,EAAM,SAAS,IAAI,SAAS,mBAAkC,iBAAiB;AAAA,gBACtG,WAAWI;AAAA,gBACX,OAAO,GAAGJ,EAAM,KAAK,KAAK;AAAA,gBAC1B,QAAQ,GAAGA,EAAM,KAAK,MAAM;AAAA,cAChC;AAAA,cACA;AAAA,gBACI,GAAG,OAAO,aAAaC,EAAI,SAAS,IAAI,SAAS,mBAAkC,iBAAiB;AAAA,gBACpG,GAAG,KAAK,sBAAsBA,EAAI,SAAS,IAAI,SAAS,mBAAkCP,CAAS;AAAA,gBACnG,WAAWW;AAAA,gBACX,OAAO,GAAGJ,EAAI,KAAK,KAAK;AAAA,gBACxB,QAAQ,GAAGA,EAAI,KAAK,MAAM;AAAA,cAC9B;AAAA,YACJ;AAAA,YACArI;AAAA,UACJ;AAAA,QAAA;AAEJ;AAAA,MACJ;AAAA,IACJ;AACO,WAAA,IAAI0I,GAAeJ,CAAe;AAAA,EAC7C;AAAA,EAEA,IAAI,kBAAkB;AACZ,UAAAK,IAAe,KAAK,gBAAgB,SAAS,oBAC7CC,IAAY,KAAK,gBAAgB,SAAS;AAEhD,QADI,CAACD,KAAgB,CAACC,KAClBD,MAAiBC;AAAkB,aAAA;AACvC,IAAAD,EAAa,gBAAgB,MAC7BC,EAAU,gBAAgBD;AACpB,UAAAE,IAAkB,IAAI;AACjB,eAAA,CAACxJ,GAAIgJ,CAAG,KAAK,MAAM,KAAKO,EAAU,MAAM,QAAQ,CAAC,GAAG;AACrD,YAAAE,IAAUT,EAAI,yBACdD,IAAQO,EAAa,MAAM,IAAItJ,CAAE;AACvC,UAAI,CAAC+I,GAAO,iBAAiB,CAACC,EAAI;AAAe;AAC3C,YAAAU,IAAYX,EAAM,yBAClBY,IAAWX,EAAI,SACfY,IAAab,EAAM;AACrB,UAAA,CAACa,KAAc,CAACD;AAAU;AAC9B,YAAMlB,IAAY,MAAM,KAAK,oBAAI,IAAI,CAAC,GAAGM,EAAM,QAAQ,GAAGC,EAAI,MAAM,CAAC,CAAC;AAClE,MAAAA,EAAI,mBAAmB,WACZY,EAAA,KAAK,GAAG5J,CAAE,UACrB4J,EAAW,MAAM,WAAW,YAC5BA,EAAW,MAAM,WAAW,SAC5BA,EAAW,MAAM,SAAS,KAC1B,KAAK,WAAWb,EAAM,IAAI,SAAS,mBAAmBa,GAAYnB,CAAS,GAC3E,KAAK,WAAWO,EAAI,IAAI,SAAS,mBAAmBW,GAAUlB,CAAS,GACvEmB,EAAW,MAAM,QAAQ,GAAGF,EAAU,KAAK,MAC3CE,EAAW,MAAM,SAAS,GAAGF,EAAU,MAAM,MAC7CC,EAAS,MAAM,QAAQ,GAAGF,EAAQ,KAAK,MACvCE,EAAS,MAAM,SAAS,GAAGF,EAAQ,MAAM,MACpC,KAAA,IAAI,SAAS,QAAQG,CAAU,MAEpC,KAAK,WAAWb,EAAM,IAAI,SAAS,mBAAmBY,GAAUlB,CAAS,GACzEkB,EAAS,MAAM,QAAQ,GAAGD,EAAU,KAAK,MACzCC,EAAS,MAAM,SAAS,GAAGD,EAAU,MAAM,OAGtCC,EAAA,KAAK,GAAG3J,CAAE,GAAGgJ,EAAI,mBAAmB,UAAU,KAAK,MAAM,IAClEW,EAAS,MAAM,WAAW,YAC1BA,EAAS,MAAM,WAAW,SAC1BA,EAAS,MAAM,SAAS,KACnB,KAAA,IAAI,SAAS,QAAQA,CAAQ,GAClCZ,EAAM,KAAK,GACXC,EAAI,KAAK;AACT,YAAMa,IAAW,YAAY;AACrB,QAAA,KAAK,MAAM,cAAc,aACzBb,EAAI,OAAO,IAEXD,EAAM,OAAO,GACjBY,EAAS,OAAO,GAChBC,EAAW,OAAO;AAAA,MAAA;AAEjB,WAAA,MAAM,WAAW,iBAAiB,kBAAkBC,GAAU,EAAE,MAAM,IAAM,GAC5E,KAAA,MAAM,WAAW,iBAAiB,qBAAqBA,GAAU,EAAE,MAAM,IAAM,GAEpFL,EAAgB,KAAK,KAAK;AAAA,QACtB,EAAE,UAAUT,GAAO,OAAOa,GAAY,MAAMF,EAAU;AAAA,QACtD,EAAE,UAAUV,GAAK,OAAOW,GAAU,MAAMF,EAAQ;AAAA,MAAA,CACnD;AAAA,IACL;AAEO,WAAA,IAAIJ,GAAeG,CAAe;AAAA,EAC7C;AAAA,EAEA,SAAS;AACL,6BACK,UAAO,EAAA,WAAU,wBAAuB,KAAK,KAAK,KAAK,OAAO;AAAA,MAC3D,UAAU;AAAA,MACV,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,iBAAiB;AAAA,MACjB,WAAW;AAAA,IACf,GACI,4BAAC,SACA,EAAA,UAAA;AAAA;AAAA;AAAA,kBAAA,CAID,EACJ,CAAA;AAAA,EAER;AACJ;ACtQa,MAAAM,KAAgBzP,GAAc,CAAC;ACmBrC,MAAM0P,WAA8BxP,GAAkE;AAAA,EACzF,+BAA+BC,EAAwC;AAAA,EACvE,YAAuB,IAAIwP;EAC3CC,KAAgC;AAAA,EAChCC,KAAoC,IAAI;EAExC,QAAoC;AAAA,IAChC,mBAAmB;AAAA,IACnB,UAAU;AAAA,EAAA;AAAA,EAGN,mBAAmB;AACvB,UAAMzM,IAAW,KAAK,UAAU,QAAQ,kBAAoB,EAAA;AAExD,IAAAA,KACA,KAAK,WAAWA,CAAQ,GAExB,KAAK,UAAU,cAAc,aAC7B,sBAAsB,KAAK,iBAAiB,KAAK,IAAI,CAAC;AAAA,EAC9D;AAAA,EAEQ,qBAAqB;AACzB,SAAK,MAAM,WAAW,cAAc,IAAIJ,GAAuB,CAAA;AAAA,EACnE;AAAA,EAEQ,oBAAoB;AACxB,SAAK,MAAM,WAAW,cAAc,IAAID,GAAsB,CAAA,GAE9D,KAAK,iBAAiB;AAAA,EAC1B;AAAA,EAEQ,kBAAkB;AACtB,SAAK,MAAM,WAAW,cAAc,IAAIE,GAAoB,CAAA;AAAA,EAChE;AAAA,EAEQ,WAAWG,GAAkB;AAC5B,SAAA,SAAS,EAAE,UAAAA,EAAA,CAAU,GAC1B,KAAK,MAAM,WAAW,cAAc,IAAID,GAAoBC,CAAQ,CAAC;AAAA,EACzE;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAKyM;AAAA,EAChB;AAAA,EAEA,IAAI,QAAQC,GAAkC;AAC1C,SAAKD,KAAWC;AAAA,EACpB;AAAA,EAEA,IAAI,UAAUjL,GAA8B;AACxC,SAAK+K,KAAa/K,GAClB,KAAK,UAAU,QAAQ,aAAa,EAAE,WAAAA,EAAW,CAAA;AAAA,EACrD;AAAA,EAEA,IAAI,YAAY;AACZ,WAAO,KAAK+K;AAAA,EAChB;AAAA,EAEA,IAAI,wBAAwB;AACxB,WAAO,KAAK,MAAM;AAAA,EACtB;AAAA,EAEO,aAAa;AAChB,UAAMG,IAAS,IAAIf;AAAAA,MACf,KAAK,QAAQ,IAAI,CAAUgB,MAChBA,EAAO,SAAS,oBAAoB,SAAS,mBAAmB,IAC1E,EAAE,OAAO,CAACD,MAAsCA,MAAW,IAAI;AAAA,IAAA,GAG9DE,IAAsB,KAAK,6BAA6B,SAAS,iBACjEC,IAAWH,EAAO,kBAAA,EAAoB;AAC5C,WAAIE,MACAA,EAAoB,aAAa;AAAA,MAC7B,UAAUC,aAAoB,kBAAkBA,EAAS,GAAG,IAAI,EAAE,QAAQA;AAAA,IAAA,CAC7E,GACDH,EAAO,OAAOE,CAAmB,GACjC,KAAK,6BAA6B,SAAS,IAAI,SAAS,UAAU,IAGtE,KAAK,UAAU,SAASF,GAExB,KAAK,UAAU,QACf,KAAK,kBAAkB,GAElB,KAAA,UAAU,WAAW,MAAM;AAC5B,WAAK,6BAA6B,SAAS,IAAI,SAAS,MAAM,GAC9D,KAAK,mBAAmB,GACxB,KAAK,UAAU,SAAS;AAAA,IAAA,GAEvB,KAAA,UAAU,SAAS,KAAK,MAAM;AAC/B,WAAK,UAAU,gBACf,KAAK,gBAAgB,GACrB,KAAK,6BAA6B,SAAS,IAAI,SAAS,MAAM,GAC9D,KAAK,UAAU,SAAS;AAAA,IAAA,CAC3B,GAEM,KAAK;AAAA,EAChB;AAAA,EAEA,SAAS;AACL,WACK,gBAAA/I,GAAAvC,GAA6B,UAA7B,EAAsC,OAAO,MAC1C,UAAA;AAAA,MAAA,gBAAAnE;AAAA,QAACyN;AAAA,QAAA;AAAA,UACG,KAAK,KAAK;AAAA,UACV,YAAY,KAAK,MAAM;AAAA,UACvB,WAAW,KAAK,UAAU,eAAe,IAAI,aAAa;AAAA,QAAA;AAAA,MAC9D;AAAA,MACA,gBAAAzN;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,WAAU;AAAA,UACV,OAAO;AAAA,YACH,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,SAAS;AAAA,YACT,WAAW;AAAA,YACX,qBAAqB,KAAK,MAAM;AAAA,UACpC;AAAA,UAEA,UAAA,gBAAAA,EAACmP,GAAc,UAAd,EAAuB,OAAO,KAAK,MAAM,UACrC,UAAK,KAAA,MAAM,SAChB,CAAA;AAAA,QAAA;AAAA,MACJ;AAAA,IACJ,EAAA,CAAA;AAAA,EAER;AACJ;ACnHO,MAAeU,WAAgKjQ,GAAgB;AAAA,EACjL,MAAMC,EAAgC;AAAA,EAC/C,wBAAwBA,EAAiC;AAAA,EAEjD,SAA4B;AAAA,EAC5CiQ,KAAqC;AAAA,EAC7B,iBAAiB;AAAA,EACjB,wBAAwB;AAAA,EAChB,eAAkC;AAAA,EAClD,OAAe,gBAA4C;AAAA,EAC3D,OAAgB,cAAc7K;AAAA,EAG9B,YAAYW,GAAUC,GAAwD;AAC5E,UAAMD,CAAK,GAEN,KAAA,eAAeC,GAAS,gBAAgB,MACxC,KAAA,SAASA,GAAS,gBAAgB,MACnC,KAAK,WACP,KAAK,OAAO,QAAQ,OAElB,KAAK,WACIgK,GAAA,gBAAgB,IAAI,QAAQ,IAAI;AAAA,EAE/C;AAAA,EAEA,oBAAoB;AAClB,IAAI,KAAK,UACP,OAAO,WAAW,iBAAiB,YAAY,KAAK,wBAAwB,GAGzE,KAAK,mBACR,OAAO,WAAW,cAAc,IAAI7M,GAAW,CAAA,GAC/C,KAAK,iBAAiB;AAAA,EAE1B;AAAA,EAEA,uBAAuB;AACrB,IAAI,KAAK,UACP,OAAO,WAAW,oBAAoB,YAAY,KAAK,wBAAwB;AAAA,EAEnF;AAAA,EAEQ,2BAA2B,CAACe,MAAqB;AAGvD,UAAMgM,IAFgB,CAAC,GAAG,KAAKC,GAAoB,CAAA,EAEjB,SAAS,OAAUC,EAAO,aAAalM,CAAC,CAAC;AAC3E,IAAIgM,MACFA,EAAY,UAAUhM,CAAC,GACvB,KAAK,wBAAwBA,EAAE;AAAA,EACjC;AAAA,EAGF,CAACiM,KAAqB;AACpB,QAAIC,IAA4B;AAChC,WAAOA;AACC,YAAAA,GACNA,IAASA,EAAO;AAAA,EAEpB;AAAA,EAEA,cAAcC,GAAkB9O,GAAwC;AACtE,UAAM6O,IAAS7O,KAAUyO,GAAW,eAAe,MAAM;AACrD,WAAAI,EAAQ,OAAOC,IACVD,KAAU,OACRA,GAAQ,QACV,KAAK,cAAcC,GAAUD,EAAQ,KAAK,IAE1C;AAAA,EAEX;AAAA,EAEA,cAAc9O,GAAc;AACpB,UAAA0D,IAAM,KAAK,IAAI,WAAW;AACzB,WAAA3D,GAAcC,GAAO0D,CAAG;AAAA,EACjC;AAAA,EAIA,iBAAiBsL,GAAcC,GAA8CpM,GAAmD;AAC9H,WAAO,KAAK,IAAI,SAAS,iBAAiBmM,GAAMC,GAAUpM,CAAO;AAAA,EACnE;AAAA,EAIA,oBAAoBmM,GAAcC,GAA8CpM,GAA0C;AACxH,WAAO,KAAK,IAAI,SAAS,oBAAoBmM,GAAMC,GAAUpM,CAAO;AAAA,EACtE;AAAA,EAEU,wBAAwB7D,GAAkB;AAClD,eAAWkQ,KAASC,GAAS,QAAQ,KAAK,MAAM,QAAQ,GAAG;AACrD,UAAA,CAACrJ,GAA8CoJ,CAAK;AAAG;AAC3D,YAAME,IAAY9P;AAAA,QAChB4P,EAAM,MAAM;AAAA,QACZlQ;AAAA,QACA,KAAK,eAAe;AAAA,QACpBkQ,EAAM,MAAM;AAAA,MAAA;AAEV,UAAAE;AACK,eAAA;AAAA,UACL,OAAAF;AAAA,UACA,WAAAE;AAAA,QAAA;AAAA,IAEN;AAEO,WAAA;AAAA,EACT;AAAA,EAEU,cAAcb,GAAqB;AACrC,UAAA1J,IAAS0J,EAAO,MAAM,QACtBc,IAAe,CAAA;AACjB,WAAAvK,EAAsByJ,EAAO,MAAM,SAAS,KAC9Cc,EAAa,KAAKd,EAAO,MAAM,UAAU,MAAM,GAC7CzJ,EAAsBD,GAAQ,QAAQ,SAAS,KACjDwK,EAAa,KAAKxK,GAAQ,QAAQ,UAAU,MAAM,GAChDC,EAAsBD,GAAQ,QAAQ,SAAS,KACjDwK,EAAa,KAAKxK,GAAQ,QAAQ,UAAU,MAAM,GAE7C,QAAQ,IAAIwK,CAAY,EAAE,KAAK,MAAM;AAAA,IAAE,CAAS;AAAA,EACzD;AAAA,EAEA,IAAI,KAAa;AACf,QAAI,KAAK,MAAM;AAAI,aAAO,KAAK,MAAM;AAC/B,UAAAC,IAAS,KAAK,QAAQ,IACtBpL,IAAK,KAAK,cAAc,MAAM;AAC7B,WAAA,CAACoL,GAAQpL,CAAE,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,EAC9C;AAAA,EAEA,IAAI,SAAS;AACX,WAAO,CAAC,KAAK;AAAA,EACf;AAAA,EAEA,IAAI,UAAU;AACZ,UAAMlF,IAAW,KAAK,SAAS,OAAO,SAAS,WAAW,KAAK,cAAc,kBACvED,IAAU,KAAK,eAAe;AAE7B,WAAAD,GAA0BC,GAASC,CAAQ;AAAA,EACpD;AAAA,EAEA,IAAI,iBAAiB;AACf,QAAAU,IAAU,OAAO,SAAS,SAAS,KACnC6P,IAAW,KAAK,MAAM,QAAQ;AAS9B,QARCA,MACC,KAAK,SACIA,IAAA,MAEAA,IAAA,MAIX,KAAK,UAAU,KAAK,cAAc;AACpC,YAAM,EAAE,kBAAAC,IAAmB,OAAO,SAAS,UAAU,MAAAC,MAAS,KAAK,cAC7DC,IAAgB,KAAK,OAAO,SAAS,MACrC3Q,IAAU,IAAI,WAAW,EAAE,SAAS2Q,GAAe,UAAUD,GAAM;AAC/D,MAAA/P,IAAAZ;AAAA,QACRC,EAAQ;AAAA,QACRyQ;AAAA,MACC,EAAA;AAAA,IACL;AAEA,WAAO,IAAI,WAAW,EAAE,SAAA9P,GAAS,UAAU6P,EAAU,CAAA;AAAA,EACvD;AAAA,EAEA,IAAI,eAAe;AACjB,WAAOJ,GAAS,IAAI,KAAK,MAAM,UAAU,CAACD,OACjC,EAAE,SAASA,EAAM,MAAM,MAAM,eAAe,EAAQA,EAAM,MAAM,cAAe,EACvF;AAAA,EACH;AAAA,EAEA,IAAI,UAAU;AACL,WAAA,EAAQ,KAAK,IAAI;AAAA,EAC1B;AAAA,EAEA,IAAI,QAAQ;AACH,WAAA,KAAKP,IAAQ,MAAA,KAAW;AAAA,EACjC;AAAA,EAEA,IAAI,MAAMO,GAA0B;AAC5B,UAAAS,IAAqB,KAAKhB,IAAQ,MAAM;AAC9C,QACEgB,KACGT,GAAO,OAAOS,EAAmB,MACjCT,GAAO,cAAc,OAAOS,EAAmB,cAAc,MAC7DA,EAAmB;AAEhB,YAAA,IAAI,MAAM,sIAAsI;AAEpJ,IAAAT,IACG,KAAAP,KAAS,IAAI,QAAQO,CAAK,IAE/B,KAAKP,KAAS;AAAA,EAClB;AAAA,EAOA,SAAS;AACP,QAAK,KAAK;AAER,aAAA,gBAAA9P;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,IAAI,KAAK;AAAA,UACT,WAAU;AAAA,UACV,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAO;AAAA,UACvC,KAAK,KAAK;AAAA,UAEV,UAAC,gBAAAA,EAAAkF,GAAc,UAAd,EAAuB,OAAO,MAC7B,UAAA,gBAAAlF;AAAA,YAACoP;AAAA,YAAA;AAAA,cACC,KAAK,KAAK;AAAA,cACV,YAAY,KAAK;AAAA,cACjB,uBAAuB,KAAK;AAAA,cAE3B,UAAK,KAAA;AAAA,YAAA;AAAA,UAAA,GAEV;AAAA,QAAA;AAAA,MAAA;AAAA,EAGN;AACJ;ACvPO,MAAM2B,GAAS;AAAA,EAClBC,yBAAW;EACH;AAAA,EAER,cAAc;AACV,SAAK,mBAAmB,IAAI,iBAAiB,KAAK,iBAAiB,KAAK,IAAI,CAAC;AACvE,UAAA,EAAC,MAAAC,EAAQ,IAAA;AACV,SAAA,iBAAiB,QAAQA,GAAM;AAAA,MAChC,WAAW;AAAA,IAAA,CACd,GAED,MAAM,KAAKA,EAAK,iBAAiB,MAAM,CAAC,EAAE,QAAQ,CAAQ3L,MAAA;AACjD,WAAA,iBAAiB,QAAQA,GAAM;AAAA,QAChC,YAAY;AAAA,MAAA,CACf;AAAA,IAAA,CACJ,GAEK,MAAA,KAAK2L,EAAK,iBAAiB,MAAM,CAAC,EAAE,QAAQ,KAAK,iBAAiB,KAAK,IAAI,CAAC;AAAA,EACtF;AAAA,EAEA,IAAI1Q,GAAwB;AAClB,UAAA2Q,IAAU,KAAK,WAAW3Q,CAAG,GAE7B4Q,IAAc,KAAKH,GAAK,IAAIE,CAAO;AACzC,QAAI,CAACC;AAAoB;AAErB,QAAAC;AACJ,WAAID,EAAY,SAAS,GAAG,KAAKA,EAAY,SAAS,GAAG,IAC3CC,IAAAD,EAAY,MAAM,MAAM,EAAE,IAAI,CAAUE,MAAAA,EAAO,MAAM,GAAG,CAAqB,IAE7ED,IAAAD,GAGPC;AAAA,EACX;AAAA,EAEA,IAAI7Q,GAAwB6Q,GAAuC;AACzD,UAAAF,IAAU,KAAK,WAAW3Q,CAAG,GAC7B4Q,IAAc,KAAK,eAAeC,CAAO;AAE1C,SAAAJ,GAAK,IAAIE,GAASC,CAAW,GAC7B,KAAA,kBAAkBD,GAASC,CAAW;AAAA,EAC/C;AAAA,EAEA,IAAI5Q,GAAwB;AAClB,UAAA2Q,IAAU,KAAK,WAAW3Q,CAAG;AAE5B,WAAA,KAAKyQ,GAAK,IAAIE,CAAO;AAAA,EAChC;AAAA,EAEA,OAAO3Q,GAAwB;AACrB,UAAA2Q,IAAU,KAAK,WAAW3Q,CAAG;AAE9B,SAAAyQ,GAAK,OAAOE,CAAO,GACxB,SAAS,KAAK,cAAc,QAAQA,CAAO,GAAG,GAAG;EACrD;AAAA,EAEA,QAAQ;AACK,aAAA,KAAK,iBAAiB,MAAM,EAAE,QAAQ,CAAQ5L,MAAAA,EAAK,QAAQ;AAAA,EACxE;AAAA,EAEA,UAAU;AACC,WAAA,KAAK0L,GAAK;EACrB;AAAA,EAEA,CAAC,OAAO,QAAQ,IAAI;AAChB,WAAO,KAAK;EAChB;AAAA,EAEA,IAAI,OAAO;AACP,WAAO,KAAKA,GAAK;AAAA,EACrB;AAAA,EAEQ,iBAAiBM,GAA6B;AAClD,eAAWC,KAAYD,GAAW;AAC1B,UAAAC,EAAS,SAAS,cAAc;AAChC,cAAMjM,IAAOiM,EAAS;AAEtB,aAAK,iBAAiBjM,CAAuB;AAAA,MACjD;AAEA,UAAIiM,EAAS,SAAS;AAAa;AAE1B,MAAAA,EAAA,aAAa,QAAQ,CAACjM,MAAS;AAChC,YAAAA,EAAK,aAAa,QAAQ;AAC1B,gBAAM,CAAC6K,CAAI,IAAI,MAAM,KAAM7K,EAAyB,UAAU,EAAE,OAAO,CAAAkM,MAAaA,EAAU,aAAa,SAAS,GAG9GjR,IAFqB,CAAC4P,EAAK,UAAyBA,EAAK,KAAK,EAE/C,KAAK,GAAG;AAC7B,UAAI,KAAKa,GAAK,IAAIzQ,CAAG,KACZ,KAAAyQ,GAAK,OAAOzQ,CAAG;AAAA,QAE5B;AAAA,MAAA,CACH,GACQgR,EAAA,WAAW,QAAQ,CAAQjM,MAAA;AAC5B,QAAAA,EAAK,aAAa,UAClB,KAAK,iBAAiBA,CAAuB;AAAA,MACjD,CACH;AAAA,IACL;AAAA,EACJ;AAAA,EAEQ,iBAAiBA,GAAuB;AAC5C,UAAM,CAAC6K,CAAI,IAAI,MAAM,KAAM7K,EAAyB,UAAU,EAAE,OAAO,CAAAkM,MAAaA,EAAU,aAAa,SAAS,GAC9G,CAACJ,CAAO,IAAI,MAAM,KAAM9L,EAAyB,UAAU,EAAE,OAAO,CAAAkM,MAAaA,EAAU,aAAa,SAAS,GAGjHjR,IAFqB,CAAC4P,EAAK,UAAyBA,EAAK,KAAK,EAE/C,KAAK,GAAG;AAC7B,SAAKa,GAAK,IAAIzQ,GAAK6Q,GAAS,KAAK;AAAA,EACrC;AAAA,EAEQ,WAAW7Q,GAAwB;AACnC,QAAA2Q;AACA,WAAA,OAAO3Q,KAAQ,WACf2Q,IAAU,QAAQ3Q,CAAG,KAEX2Q,IAAA3Q,EAAI,KAAK,GAAG,GAGnB2Q;AAAA,EACX;AAAA,EAEQ,eAAeE,GAAkD;AACrE,QAAI,CAACA;AAAgB;AAEjB,QAAAD;AACA,WAAA,OAAOC,KAAY,WACLD,IAAAC,IAEAD,IAAAC,EAAQ,IAAI,CAAgBK,MAAAA,EAAa,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,GAGxEN;AAAA,EACX;AAAA,EAEQ,kBAAkB5Q,GAAc6Q,GAAkB;AAChD,UAAAM,IAAO,SAAS,cAAc,QAAQnR,CAAG,GAAG,KAAK,SAAS,cAAc,MAAM,GAC9EoR,IAAWpR,EAAI,MAAM,GAAG;AAEzB,IAAAmR,EAAA,aAAa,GAAGC,CAAQ,GACzBP,IAAcM,EAAA,aAAa,WAAWN,CAAO,IAC5CM,EAAK,gBAAgB,SAAS,GAE9BA,EAAK,iBACG,SAAA,KAAK,YAAYA,CAAI;AAAA,EAEtC;AACJ;ACjJO,MAAeE,GAAkE;AAAA,EAEpF,OAAe,mBAAmD;AAAA,EAClD,WAAW,IAAIb;EAE/B,cAAc;AACJ,UAAAc,IAAgBD,GAAe,kBAAkB,MAAM;AACzD,KAAA,CAACC,KAAiB,CAACA,EAAc,kBAClBD,GAAA,mBAAmB,IAAI,QAAQ,IAAI;AAAA,EAC1D;AAAA,EAIA,iBAAiBzB,GAAcC,GAA8CpM,GAAyD;AAClI,gBAAK,OAAO,iBAAiBmM,GAAMC,GAAUpM,CAAO,GAC7C,MAAM,KAAK,OAAO,oBAAoBmM,GAAMC,GAAUpM,CAAO;AAAA,EACxE;AAAA,EAIA,oBAAoBmM,GAAcC,GAA8CpM,GAAmD;AAC/H,WAAO,KAAK,OAAO,oBAAoBmM,GAAMC,GAAUpM,CAAO;AAAA,EAClE;AAAA,EAEA,cAAc7C,GAAc;AACjB,WAAA,KAAK,OAAO,gBAAgBA,CAAK;AAAA,EAC5C;AAAA,EAEA,IAAI,SAAgC;AACzB,WAAA,KAAK,OAAO,QAAQ,cAAc;AAAA,EAC7C;AAAA,EAEA,IAAI,WAAW;AACX,WAAO,KAAK,OAAO;AAAA,EACvB;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK,OAAO;AAAA,EACvB;AAAA,EAEA,IAAI,iBAAiB;AACjB,WAAO,KAAK,OAAO;AAAA,EACvB;AAAA,EAEO,iBAAiB+O,GAAkB;AACtC,WAAO,KAAK,OAAO,cAAcA,CAAQ,GAAG,cAAc;AAAA,EAC9D;AAAA,EAEA,IAAY,eAAe;AACvB,WAAO,EAAQ,SAAS,eAAe,GAAG,KAAK,QAAQ,EAAE;AAAA,EAC7D;AACJ;AC/CO,SAAS4B,KAA+D;AACvE,QAAA7B,IAAS8B,GAAW7M,EAAa;AACvC,MAAI+K;AACF,WAAOA,EAAO;AAER,QAAA,IAAI,MAAM,2EAA2E;AAE/F;AAEO,SAAS+B,KAAmD;AACjE,SAAOD,GAAW7M,EAAa;AACjC;AAEO,SAAS+M,KAAY;AAC1B,SAAAC,GAAc,QAAQ,GACfH,GAAW5C,EAAa;AACjC;AAEO,SAASgD,KAAwC;AAChD,QAAA1L,IAAYsL,GAAW5M,EAAgB;AAC7C,MAAIsB;AACK,WAAAA;AAED,QAAA,IAAI,MAAM,sEAAsE;AAE1F;AAEgB,SAAA2L,GAAmC7R,GAAQ8R,GAA4E;AACrI,QAAM9L,IAAQ4L,MACRG,IAAUD,aAAyB,WAAWA,EAAA,IAAkBA,GAEhEE,IAAWC,GAAOjM,CAAK;AAC7B,EAAAkM,GAAU,MAAM;AACd,IAAAF,EAAS,UAAUhM;AAAA,EAAA,GAClB,CAACA,CAAK,CAAC;AAEJ,QAAAmM,IAAWC,GAAY,CAACC,MAAqC;AACjE,UAAM,EAAE,QAAA7R,GAAQ,WAAA8R,MAAcN,EAAS;AACvC,IAAIK,aAAiB,aACnBA,IAAQA,EAAM7R,EAAOR,CAAG,KAAK+R,CAAO,IACtCO,EAAU,EAAE,CAACtS,CAAG,GAAGqS,EAAO,CAAA;AAAA,EAAA,GACzB,CAACN,GAAS/R,CAAG,CAAC;AAIV,SAAA,CAFOgG,EAAM,OAAOhG,CAAG,KAEb+R,GAASI,CAAQ;AACpC;ACtDO,MAAMI,KAAc,YACdC,KAAe,KACfC,KAAe,GACfC,KAAoB,GACpBC,KAAoB;"}
1
+ {"version":3,"file":"index.js","sources":["../src/SharedElementSceneContext.ts","../src/SharedElement.tsx","../src/common/utils.ts","../src/common/events.ts","../src/ScreenTransitionLayerContext.tsx","../src/ScreenTransitionProvider.tsx","../src/RouterContext.ts","../src/RoutePropContext.ts","../src/SharedElementScene.ts","../src/ScreenBase.tsx","../src/common/types.ts","../../web-animations-extension/build/index.js","../src/SharedElementTransitionLayer.tsx","../src/MotionContext.ts","../src/ScreenTransitionLayer.tsx","../src/RouterBase.tsx","../src/MetaData.ts","../src/NavigationBase.ts","../src/common/hooks.ts","../src/common/constants.ts"],"sourcesContent":["import { createContext } from \"react\";\nimport { SharedElementScene } from \"./SharedElementScene\";\n\nexport const SharedElementSceneContext = createContext<SharedElementScene>(null!);","import { Component, createRef } from 'react';\nimport { SharedElementTransitionType, StyleKeyList } from './common/types';\nimport { SharedElementSceneContext } from './SharedElementSceneContext';\n\ninterface SharedElementConfig extends OptionalEffectTiming {\n type?: SharedElementTransitionType;\n transformOrigin?: React.CSSProperties[\"transformOrigin\"];\n styles?: StyleKeyList;\n deepClone?: boolean;\n}\n\ninterface SharedElementProps {\n id: string;\n children: React.ReactElement;\n disabled?: boolean;\n config?: SharedElementConfig;\n}\n\ninterface SharedElementState {}\n\nexport class SharedElement extends Component<SharedElementProps, SharedElementState> {\n public readonly ref = createRef<HTMLDivElement>();\n static readonly contextType = SharedElementSceneContext;\n declare context: React.ContextType<typeof SharedElementSceneContext>;\n\n componentDidMount(): void {\n this.scene.addNode(this);\n }\n\n componentDidUpdate(prevProps: SharedElementProps) {\n if (this.props.id !== prevProps.id) {\n this.scene.removeNode(prevProps.id.toString());\n this.scene.addNode(this);\n }\n }\n\n componentWillUnmount(): void {\n this.scene.removeNode(this.id);\n }\n\n get styles(): StyleKeyList {\n if (this.props.config?.styles) {\n return this.props.config.styles;\n }\n return [];\n }\n\n get canTransition() {\n return !this.props.disabled\n && this.scene.canTransition;\n }\n\n get scene() {\n return this.context;\n }\n\n get id() {\n return `shared-element-${this.props.id.toString()}`;\n }\n\n get transitionType(): SharedElementTransitionType {\n return this.props.config?.type ?? this.scene.previousScene?.nodes.get(this.id)?.transitionType ?? \"morph\";\n }\n\n getBoundingClientRect() {\n return this.ref.current?.firstElementChild?.getBoundingClientRect() ?? new DOMRect();\n }\n\n public clone() {\n if (!this.ref.current) return null;\n const deepClone = this.props.config?.deepClone ?? true;\n return this.ref.current.firstElementChild?.cloneNode(deepClone) as HTMLElement;\n }\n\n public hide() {\n if (!this.ref.current) return;\n this.ref.current.style.visibility = 'hidden';\n }\n\n public unhide() {\n if (!this.ref.current) return;\n this.ref.current.style.visibility = 'visible';\n }\n\n render() {\n return (\n <div\n ref={this.ref}\n id={this.id}\n style={{ display: \"contents\" }}\n >\n {this.props.children}\n </div>\n );\n }\n}","import { cloneElement, lazy as ReactLazy } from 'react';\nimport { ClonedElementType, ElementPropType, LazyExoticComponent, MatchedRoute, PathPattern } from './types';\n\nexport function resolveBaseURLFromPattern(pattern: string, pathname: string) {\n if (!pattern.endsWith('*')) pattern += '**'; // allows us to match nested routes\n const origin = window.location.origin;\n const baseURLMatch = new URLPattern(pattern, origin).exec(pathname, origin);\n if (!baseURLMatch) return null;\n\n const groups = Object.keys(baseURLMatch.pathname.groups)\n .filter((key) => !isNaN(Number(key)))\n .map((key) => baseURLMatch.pathname.groups[key])\n .filter((group) => group !== undefined);\n const nestedPathnameGroup = groups.at(-1) ?? '';\n // derive concrete baseURL\n return new URL(pathname.replace(nestedPathnameGroup, ''), window.location.origin);\n}\n\nexport function matchRoute(\n pathnamePattern: string,\n pathname: string,\n baseURLPattern: string = `${window.location.origin}/`,\n caseSensitive: boolean = true\n): MatchedRoute | null {\n if (!caseSensitive) {\n pathnamePattern = pathnamePattern.toLowerCase();\n pathname = pathname.toLowerCase();\n }\n\n const baseURL = resolveBaseURLFromPattern(baseURLPattern, pathname)?.href;\n if (!baseURL) return null;\n\n const match = new URLPattern({ baseURL, pathname: pathnamePattern }).exec({ pathname, baseURL });\n const params = match?.pathname.groups ?? {};\n if (match) {\n return {\n params,\n caseSensitive,\n };\n }\n return null;\n}\n\nexport function includesRoute(pathnamePatterns: PathPattern[], pathname: string, baseURL: string = window.location.origin) {\n return pathnamePatterns.some(({ pattern, caseSensitive }) => matchRoute(pattern, pathname, baseURL, caseSensitive));\n}\n\nexport function dispatchEvent<T>(event: CustomEvent<T> | Event, target: HTMLElement | EventTarget = window) {\n return new Promise<boolean>((resolve) => {\n queueMicrotask(() => resolve(\n target.dispatchEvent(event)\n ));\n });\n}\n\nexport function lazy<T extends React.ComponentType<any>>(\n factory: () => Promise<{ default: T }>\n): LazyExoticComponent<T> {\n const Component = ReactLazy(factory) as LazyExoticComponent<T>;\n Component.load = async () => {\n Component.module ??= await factory();\n return Component.module;\n };\n return Component;\n}\n\nexport function isNavigationSupported() {\n return Boolean(window.navigation);\n}\n\nexport function isURLPatternSupported() {\n // @ts-ignore: Property 'UrlPattern' does not exist \n return Boolean(globalThis.URLPattern);\n}\n\nexport async function polyfillURLPattern() {\n const { URLPattern } = await import(/*webpackIgnore: true*/ 'urlpattern-polyfill');\n // @ts-ignore: Property 'UrlPattern' does not exist \n globalThis.URLPattern = URLPattern;\n}\n\nexport async function polyfillNavigation() {\n const { applyPolyfill } = await import(/*webpackIgnore: true*/ '@virtualstate/navigation');\n applyPolyfill({\n history: true,\n interceptEvents: true,\n patch: true,\n persist: true,\n persistState: true,\n });\n}\n\nexport async function PromiseAllDynamic<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>[]> {\n const awaited = [];\n for (const value of values) {\n awaited.push(await value);\n }\n\n return awaited;\n}\n\nexport function toCamelCase(value: string) {\n return value.replace(/-([a-z])/g, (g) => g[1].toUpperCase());\n}\n\nexport function cloneAndInject<\n C extends React.CElement<any, any>,\n IP extends Partial<ElementPropType<C>>\n>(element: C, injectProps: IP) {\n return cloneElement(element, injectProps) as ClonedElementType<C, IP>;\n}","import { LoadNavigationTransition } from \"./types\";\nimport { PromiseAllDynamic } from \"./utils\";\n\nexport class TransitionStartEvent extends Event {\n\tconstructor() {\n\t\tsuper('transition-start');\n\t}\n}\n\nexport class TransitionCancelEvent extends Event {\n\tconstructor() {\n\t\tsuper('transition-cancel');\n\t}\n}\n\nexport class TransitionEndEvent extends Event {\n\tconstructor() {\n\t\tsuper('transition-end');\n\t}\n}\n\nexport class MotionProgressStartEvent extends Event {\n\tconstructor() {\n\t\tsuper('motion-progress-start');\n\t}\n}\n\nexport class MotionProgressEvent extends Event {\n\treadonly progress: number;\n\n\tconstructor(progress: number) {\n\t\tsuper('motion-progress');\n\t\tthis.progress = progress;\n\t}\n}\n\nexport class MotionProgressEndEvent extends Event {\n\tconstructor() {\n\t\tsuper('motion-progress-end');\n\t}\n}\n\nexport class LoadEvent extends Event implements Omit<NavigateEvent, 'navigationType' | 'commit'> {\n\t#navigationType = \"load\" as const;\n\t#userInitiated: boolean = false;\n\t#canIntercept: boolean = true;\n\t#hashChange: boolean = false;\n\t#formData: FormData | null = null;\n\t#downloadRequest: string | null = null;\n\t#destination: NavigationDestination;\n\t#signal: AbortSignal;\n\t#abortable = new AbortController();\n\t#intercepted = false;\n\t#thenables: Promise<void>[] = [];\n\t#transition: LoadNavigationTransition | null = null;\n\treadonly hasUAVisualTransition = false;\n\n\tconstructor() {\n\t\tsuper('navigate', { cancelable: false, bubbles: false, composed: false });\n\t\tconst currentEntry = window.navigation.currentEntry;\n\t\tif (!currentEntry) throw new Error(\"Current entry is null\");\n\t\tthis.#destination = {\n\t\t\tgetState() {\n\t\t\t\treturn currentEntry.getState();\n\t\t\t},\n\t\t\turl: currentEntry.url ?? new URL(window.location.href).href,\n\t\t\tkey: currentEntry.key,\n\t\t\tindex: currentEntry.index,\n\t\t\tid: currentEntry.id,\n\t\t\tsameDocument: true\n\t\t};\n\n\t\tthis.#signal = this.#abortable.signal;\n\t\twindow.navigation.addEventListener('navigate', this.#onNavigate, { signal: this.#signal });\n\t}\n\n\t#onNavigate = (e: Event) => {\n\t\tif (e !== this) {\n\t\t\tthis.#abortable.abort();\n\t\t} else if (!this.#thenables.length) {\n\t\t\twindow.navigation.removeEventListener('navigate', this.#onNavigate);\n\t\t}\n\t}\n\n\tintercept(options?: NavigationInterceptOptions | undefined): void {\n\t\tif (this.#intercepted) throw new DOMException(\"Failed to execute 'intercept' on 'NavigateEvent': intercept() may only be called while the navigate event is being dispatched.\");\n\t\tlet finish: Function | null = null;\n\t\tif (!this.#transition) {\n\t\t\tthis.#transition = {\n\t\t\t\tfinished: new Promise((resolve) => finish = resolve),\n\t\t\t\tfrom: window.navigation.currentEntry!,\n\t\t\t\tnavigationType: \"load\" as const\n\t\t\t};\n\t\t}\n\t\tconst thenable = options?.handler?.();\n\t\tif (thenable) this.#thenables.push(thenable);\n\t\tif (this.#thenables.length === 1) {\n\t\t\tPromiseAllDynamic(this.#thenables).then(() => {\n\t\t\t\tthis.#intercepted = true;\n\t\t\t\twindow.removeEventListener('navigate', this.#onNavigate);\n\t\t\t\tfinish?.();\n\t\t\t});\n\t\t}\n\t}\n\n\tscroll(): void {\n\t\tthrow new Error(\"Method not implemented.\");\n\t}\n\n\tget transition() {\n\t\treturn this.#transition;\n\t}\n\n\tget navigationType() {\n\t\treturn this.#navigationType;\n\t}\n\n\tget userInitiated() {\n\t\treturn this.#userInitiated;\n\t}\n\n\tget canIntercept() {\n\t\treturn this.#canIntercept;\n\t}\n\n\tget hashChange() {\n\t\treturn this.#hashChange;\n\t}\n\n\tget formData() {\n\t\treturn this.#formData;\n\t}\n\n\tget downloadRequest() {\n\t\treturn this.#downloadRequest;\n\t}\n\n\tget destination() {\n\t\treturn this.#destination;\n\t}\n\n\tget signal() {\n\t\treturn this.#signal;\n\t}\n}","import { createContext } from \"react\";\nimport { ScreenTransitionLayer } from \"./ScreenTransitionLayer\";\n\nexport const ScreenTransitionLayerContext = createContext<ScreenTransitionLayer>(null!);\n","import { ScreenTransitionLayerContext } from './ScreenTransitionLayerContext';\nimport { AnimationEffectFactory } from './common/types';\nimport { NavigationBase } from './NavigationBase';\nimport { Component, ElementType, createRef } from 'react';\n\ninterface ScreenTransitionProviderProps {\n id: string;\n animation?: AnimationEffectFactory;\n children: React.ReactNode\n navigation: NavigationBase;\n renderAs: ElementType;\n focused: boolean;\n}\n\ninterface ScreenTransitionProviderState {\n zIndex: React.CSSProperties['zIndex'];\n}\n\nexport class ScreenTransitionProvider extends Component<ScreenTransitionProviderProps, ScreenTransitionProviderState> {\n public readonly ref = createRef<HTMLElement>();\n static readonly contextType = ScreenTransitionLayerContext;\n declare context: React.ContextType<typeof ScreenTransitionLayerContext>;\n public index = 0;\n public exiting = false;\n\n state: ScreenTransitionProviderState = {\n zIndex: 'unset',\n };\n\n private onAnimationEnd = () => {\n if (this.ref.current) {\n this.ref.current.style.willChange = 'auto';\n this.ref.current.style.pointerEvents = 'auto';\n }\n };\n\n private onAnimationStart = () => {\n if (this.ref.current) {\n this.ref.current.style.willChange = 'transform, opacity';\n this.ref.current.style.pointerEvents = 'none';\n }\n };\n\n componentDidMount() {\n this.props.navigation.addEventListener('transition-start', this.onAnimationStart);\n this.props.navigation.addEventListener('transition-end', this.onAnimationEnd);\n this.props.navigation.addEventListener('transition-cancel', this.onAnimationEnd);\n }\n\n componentWillUnmount() {\n this.props.navigation.removeEventListener('transition-start', this.onAnimationStart);\n this.props.navigation.removeEventListener('transition-end', this.onAnimationEnd);\n this.props.navigation.removeEventListener('transition-cancel', this.onAnimationEnd);\n }\n\n public get animationEffect() {\n const animationEffectFactory = this.props.animation;\n const { animation, direction, hasUAVisualTransition } = this.context;\n const { timeline, playbackRate } = animation;\n const { index, exiting, ref } = this;\n const screens = this.context.screens.map(screen => screen.current?.name);\n\n return animationEffectFactory?.({\n ref: ref.current,\n index,\n screens,\n exiting,\n timeline,\n direction,\n playbackRate,\n hasUAVisualTransition,\n }) ?? null;\n }\n\n setZIndex(zIndex: React.CSSProperties['zIndex']) {\n return new Promise<void>(resolve => this.setState({ zIndex }, resolve));\n }\n\n render() {\n const Element = this.props.renderAs;\n const inert = !this.props.focused ? '' : undefined;\n return (\n <Element\n id={this.props.id}\n className=\"screen-transition-provider\"\n ref={this.ref}\n {...{ inert }}\n style={{\n gridArea: '1 / 1',\n width: '100%',\n height: '100%',\n transformOrigin: 'center center',\n zIndex: this.state.zIndex,\n }}\n >\n {this.props.children}\n </Element>\n );\n }\n}","import { createContext } from 'react';\nimport { ScreenBase } from './ScreenBase';\nimport { RouterBase } from './RouterBase';\n\nexport const NestedRouterContext = createContext<{parentRouter: RouterBase, parentScreen: ScreenBase} | null>(null);\nexport const RouterContext = createContext<RouterBase>(null!);","import { createContext } from \"react\";\nimport { RoutePropBase } from \"./common/types\";\n\nexport const RoutePropContext = createContext<RoutePropBase>(null!);","import { SharedElement } from \"./SharedElement\";\n\nexport class SharedElementScene {\n\tpublic readonly id: string;\n\tpublic readonly nodes = new Map<string, SharedElement>();\n\tpublic getScreenRect: () => DOMRect = () => new DOMRect();\n\tpublic keepAlive: boolean = false;\n\tpublic previousScene: SharedElementScene | null = null;\n\tpublic canTransition: boolean = true; // should be false if page animation already started\n\n\tconstructor(id: string) {\n\t\tthis.id = id;\n\t}\n\n\taddNode(node: SharedElement | null) {\n\t\tif (!node) return;\n\t\tconsole.assert(!this.nodes.has(node.id), `Duplicate Shared Element ID: ${node.id} in ${this.id}`);\n\t\tthis.nodes.set(node.id, node);\n\t}\n\n\tremoveNode(_id: string) {\n\t\tthis.nodes.delete(_id);\n\t}\n\n\tget xRatio() {\n\t\tconst screenRect = this.getScreenRect();\n\t\tconst xRatio = (screenRect.width / window.innerWidth).toFixed(2);\n\t\treturn parseFloat(xRatio);\n\t}\n\n\tget yRatio() {\n\t\tconst screenRect = this.getScreenRect();\n\t\tconst yRatio = (screenRect.height / window.innerHeight).toFixed(2);\n\t\treturn parseFloat(yRatio);\n\t}\n\n\tget x() {\n\t\treturn this.getScreenRect().x;\n\t}\n\n\tget y() {\n\t\treturn this.getScreenRect().y;\n\t}\n\n\tisEmpty() {\n\t\treturn !Boolean(this.nodes.size);\n\t}\n}","import { Component, ElementType, Suspense, cloneElement, createRef, isValidElement } from 'react';\nimport { ScreenTransitionProvider } from './ScreenTransitionProvider';\nimport {\n AnimationEffectFactory,\n LazyExoticComponent,\n PlainObject,\n RoutePropBase,\n isLazyExoticComponent,\n isNativeLazyExoticComponent\n} from './common/types';\nimport { NestedRouterContext, RouterContext } from './RouterContext';\nimport { RoutePropContext } from './RoutePropContext';\nimport { NavigationBase } from './NavigationBase';\nimport { SharedElementSceneContext } from './SharedElementSceneContext';\nimport { SharedElementScene } from './SharedElementScene';\n\nexport interface ScreenBaseComponentProps<\n R extends RoutePropBase = RoutePropBase,\n N extends NavigationBase = NavigationBase\n> {\n route: R;\n navigation: N;\n}\n\nexport type LifecycleProps<R extends RoutePropBase, N extends NavigationBase = NavigationBase> = ({\n signal: AbortSignal;\n preloading: false;\n} & ScreenBaseComponentProps<R, N>) | ({\n signal?: AbortSignal;\n preloading: true;\n} & Omit<ScreenBaseComponentProps<R, N>, 'route'> & { route: Omit<ScreenBaseComponentProps<R, N>['route'], 'setParams' | 'setConfig'>});\n\nexport interface ScreenBaseConfig<R extends RoutePropBase = RoutePropBase, N extends NavigationBase = NavigationBase> {\n readonly header?: {\n fallback?: React.ReactNode;\n component: React.JSXElementConstructor<any> | LazyExoticComponent<any>\n };\n readonly footer?: {\n fallback?: React.ReactNode;\n component: React.JSXElementConstructor<any> | LazyExoticComponent<any>\n };\n readonly animation?: AnimationEffectFactory;\n readonly onEnter?: (props: LifecycleProps<R, N>) => void | Promise<void>;\n readonly onExit?: (props: LifecycleProps<R, N>) => void | Promise<void>;\n readonly onEntered?: (props: LifecycleProps<R, N>) => void | Promise<void>;\n readonly onExited?: (props: LifecycleProps<R, N>) => void | Promise<void>;\n readonly onLoad?: (props: LifecycleProps<R, N>) => void | Promise<void>;\n}\n\nexport interface ScreenBaseProps {\n path: string;\n component: React.JSXElementConstructor<any> | LazyExoticComponent<any>;\n fallback?: React.ReactNode;\n name?: string;\n defaultParams?: PlainObject;\n caseSensitive?: boolean;\n config?: ScreenBaseConfig;\n}\n\nexport interface ScreenBaseState<C extends ScreenBaseProps['config'] = ScreenBaseProps['config'], P extends PlainObject = PlainObject> {\n focused: boolean;\n config: C;\n params: P;\n elementType: ElementType;\n}\n\nexport abstract class ScreenBase<\n P extends ScreenBaseProps = ScreenBaseProps,\n S extends ScreenBaseState<P['config']> = ScreenBaseState<P['config']>,\n R extends RoutePropBase<P['config']> = RoutePropBase<P['config']>\n> extends Component<P, S> {\n public readonly sharedElementScene: SharedElementScene;\n #transitionProvider = createRef<ScreenTransitionProvider>();\n protected readonly ref = createRef<HTMLDivElement>();\n protected readonly nestedRouterData;\n static readonly contextType = RouterContext;\n declare context: React.ContextType<typeof RouterContext>;\n\n state: S = {\n focused: false,\n config: {},\n params: {},\n elementType: 'div',\n } as S;\n\n constructor(props: P, context: React.ContextType<typeof RouterContext>) {\n super(props);\n\n this.sharedElementScene = new SharedElementScene(`${this.name}-shared-element-scene`);\n this.sharedElementScene.getScreenRect = () => this.ref.current?.getBoundingClientRect() || new DOMRect();\n this.nestedRouterData = { parentScreen: this as ScreenBase, parentRouter: context };\n }\n\n protected setParams(newParams: PlainObject) {\n this.setState(({ params }) => ({ params: { ...params, ...newParams } }));\n }\n\n protected setConfig(newConfig: R['config']) {\n this.setState(({ config }) => ({ config: { ...config, ...newConfig } }));\n }\n\n get focused() {\n return this.state.focused;\n }\n\n public get name() {\n if (this.props.name)\n return this.props.name\n .toLowerCase()\n .replace(/[^\\w-]/g, '-') // Remove non-alphanumeric chars\n .replace(/-+/g, '-') // Replace multiple hyphens with a single onef\n .replace(/^-|-$/g, ''); // Remove leading and trailing hyphens;\n else if (isLazyExoticComponent(this.props.component))\n return this.props.component.module?.default.name.toLowerCase();\n return this.props.component.name.toLowerCase();\n }\n\n blur() {\n return new Promise<void>(resolve => this.setState({ focused: false }, resolve));\n }\n\n focus() {\n return new Promise<void>(resolve => this.setState({ focused: true }, resolve));\n }\n\n async load(signal: AbortSignal) {\n const Component = this.props.component;\n const HeaderComponent = this.props.config?.header?.component;\n const FooterComponent = this.props.config?.footer?.component;\n let result;\n\n if (isLazyExoticComponent(Component)) {\n result = await Component.load();\n } else {\n result = { default: Component };\n }\n\n if (isLazyExoticComponent(HeaderComponent))\n await HeaderComponent.load();\n if (isLazyExoticComponent(FooterComponent))\n await FooterComponent.load();\n\n const navigation = this.context.navigation;\n const route = this.routeProp;\n const preloading = false;\n await this.props.config?.onLoad?.({ navigation, route, signal, preloading });\n\n return result;\n }\n\n protected abstract get routeProp(): R;\n abstract get config(): R['config'];\n abstract get params(): R['params'];\n abstract get resolvedPathname(): string;\n abstract get id(): string;\n\n async onExited(signal: AbortSignal): Promise<void> {\n await this.routeProp.config.onExited?.({\n route: this.routeProp,\n navigation: this.context.navigation,\n preloading: false,\n signal,\n });\n }\n\n async onExit(signal: AbortSignal): Promise<void> {\n await this.routeProp.config.onExit?.({\n route: this.routeProp,\n navigation: this.context.navigation,\n preloading: false,\n signal,\n });\n }\n\n async onEnter(signal: AbortSignal): Promise<void> {\n await this.routeProp.config.onEnter?.({\n route: this.routeProp,\n navigation: this.context.navigation,\n preloading: false,\n signal,\n });\n }\n\n async onEntered(signal: AbortSignal): Promise<void> {\n await this.routeProp.config.onEntered?.({\n route: this.routeProp,\n navigation: this.context.navigation,\n preloading: false,\n signal,\n });\n }\n\n get path() {\n return this.props.path;\n }\n\n get transitionProvider() {\n return this.#transitionProvider;\n }\n\n render() {\n const navigation = this.context.navigation;\n const routeProp = this.routeProp;\n const Component = this.props.component;\n const HeaderComponent = routeProp.config.header?.component;\n const FooterComponent = routeProp.config.footer?.component;\n\n return (\n <ScreenTransitionProvider\n ref={this.#transitionProvider}\n renderAs={this.state.elementType}\n id={`${this.context.id}-${this.name}-transition-provider`}\n animation={routeProp.config.animation}\n navigation={navigation}\n focused={this.state.focused}\n >\n <div\n id={`${this.context.id}-${this.name}`}\n ref={this.ref}\n className=\"screen\"\n style={{\n height: '100%',\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n pointerEvents: 'inherit',\n }}\n >\n <SharedElementSceneContext.Provider value={this.sharedElementScene}>\n <RoutePropContext.Provider value={routeProp}>\n <NestedRouterContext.Provider value={this.nestedRouterData}>\n <Suspense fallback={<ComponentWithRouteProps component={routeProp.config.header?.fallback} route={routeProp} navigation={navigation} />}>\n <ComponentWithRouteProps component={HeaderComponent} route={routeProp} navigation={navigation} />\n </Suspense>\n <Suspense fallback={<ComponentWithRouteProps component={this.props.fallback} route={routeProp} navigation={navigation} />}>\n <ComponentWithRouteProps component={Component} route={routeProp} navigation={navigation} />\n </Suspense>\n <Suspense fallback={<ComponentWithRouteProps component={routeProp.config.footer?.fallback} route={routeProp} navigation={navigation} />}>\n <ComponentWithRouteProps component={FooterComponent} route={routeProp} navigation={navigation} />\n </Suspense>\n </NestedRouterContext.Provider>\n </RoutePropContext.Provider>\n </SharedElementSceneContext.Provider>\n </div>\n </ScreenTransitionProvider>\n );\n }\n}\n\ninterface ComponentWithRoutePropsProps extends ScreenBaseComponentProps<RoutePropBase, NavigationBase> {\n component: React.JSXElementConstructor<any> | LazyExoticComponent<any> | React.ReactNode;\n}\nfunction ComponentWithRouteProps({ component, route, navigation }: ComponentWithRoutePropsProps) {\n if (isLazyExoticComponent(component) && component.module?.default) {\n component = component.module.default;\n }\n const Component = component ?? null;\n if (typeof Component === 'function' || isNativeLazyExoticComponent(Component)) {\n return (\n <Component\n navigation={navigation}\n route={route}\n />\n );\n } else if (isValidElement(Component)) {\n return cloneElement<any>(Component, {\n navigation,\n route,\n });\n }\n return <>{Component}</>;\n}","import { isValidElement } from 'react';\nimport { ScreenBase, ScreenBaseProps } from '../ScreenBase';\nimport {\n MotionProgressEndEvent,\n MotionProgressEvent,\n MotionProgressStartEvent,\n TransitionCancelEvent,\n TransitionEndEvent,\n TransitionStartEvent\n} from './events';\nimport { SharedElement } from '../SharedElement';\nimport { StandardPropertiesHyphen } from 'csstype';\n\nexport type ScreenChild<E extends ScreenBase = ScreenBase> = E extends ScreenBase<infer P> ? React.CElement<P, E> : never;\n\nexport interface AnimationEffectFactoryProps<R extends HTMLElement = HTMLElement> {\n ref: R | null;\n index: number;\n screens: string[];\n exiting: boolean;\n timeline: AnimationTimeline | null;\n playbackRate: number;\n direction: PlaybackDirection;\n hasUAVisualTransition: boolean;\n}\n\nexport type AnimationEffectFactory<R extends HTMLElement = HTMLElement> = (props: AnimationEffectFactoryProps<R>) => AnimationEffect;\n\nexport type MetaTypeKey = 'http-equiv' | 'name' | 'itemprop' | 'property' | 'charset';\nexport type MetaType = [MetaTypeKey, string];\nexport type MetaKey = `${MetaTypeKey}=${string}`;\n\nexport interface LazyExoticComponent<T extends React.ComponentType<any>> extends React.LazyExoticComponent<T> {\n load: () => Promise<{ default: T }>;\n module?: { default: T };\n}\n\nexport type ScreenState<P extends ScreenBaseProps = ScreenBaseProps> = Map<string, Pick<RoutePropBase<P['config'], PlainObject>, 'config' | 'params'>>;\n\nexport interface RoutePropBase<C extends ScreenBaseProps['config'] = {}, P extends PlainObject = PlainObject> {\n path: string;\n resolvedPathname?: string;\n config: NonNullable<C>;\n focused: boolean;\n params: P;\n setParams(params: Partial<P>): void;\n setConfig(config: Partial<NonNullable<C>>): void;\n}\n\nexport function isValidScreenChild<S extends ScreenBase>(value: any): value is ScreenChild<S> {\n if (!isValidElement(value)) return false;\n return Object.getPrototypeOf(value.type) === ScreenBase;\n}\n\nexport type PlainObject<T = any> = { [key: string]: T };\n\nexport interface RouterBaseEventMap extends HTMLElementEventMap {\n 'transition-start': TransitionStartEvent;\n 'transition-cancel': TransitionCancelEvent;\n 'transition-end': TransitionEndEvent;\n 'motion-progress-start': MotionProgressStartEvent;\n 'motion-progress': MotionProgressEvent;\n 'motion-progress-end': MotionProgressEndEvent;\n}\n\nexport type RouterHTMLElement<E extends RouterBaseEventMap, T extends HTMLElement = HTMLDivElement> = T & {\n addEventListener<K extends keyof E>(type: K, listener: (this: T, ev: E[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof E>(type: K, listener: (this: T, ev: E[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n}\n\nexport type CustomElementType = `${string}-${string}`;\n\nexport interface MatchedRoute {\n params: PlainObject<string | undefined>;\n caseSensitive: boolean;\n}\n\nexport interface PathPattern {\n pattern: string;\n caseSensitive: boolean;\n}\n\nexport type AnimationDirection = 'normal' | 'reverse';\n\nenum SharedElementTransitionTypeEnum {\n 'morph',\n 'fade-through',\n 'fade',\n 'cross-fade'\n}\n\nexport type SharedElementTransitionType = keyof typeof SharedElementTransitionTypeEnum;\n\nexport interface SharedElementNode {\n id: string;\n instance: SharedElement;\n}\n\nexport type SharedElementNodeMap = Map<string, SharedElementNode>;\n\nexport type StyleKeyList = (keyof StandardPropertiesHyphen | string)[];\n\nexport function isNativeLazyExoticComponent(value: any): value is React.LazyExoticComponent<any> {\n return typeof value === 'object'\n && value !== null\n && value.$$typeof === Symbol.for('react.lazy');\n}\n\nexport function isLazyExoticComponent(value: any): value is LazyExoticComponent<any> {\n return isNativeLazyExoticComponent(value) && 'load' in value;\n}\n\nexport type StylableElement = Element & { style: CSSStyleDeclaration };\n\nexport function isStylableElement(element: any): element is StylableElement {\n return 'style' in element && element.style instanceof CSSStyleDeclaration;\n}\n\nexport interface LoadNavigationTransition extends Omit<NavigationTransition, 'navigationType'> {\n navigationType: 'load';\n}\n\ndeclare global {\n interface NavigateEvent extends Event {\n commit?(): void; // not in spec yet, see https://github.com/WICG/navigation-api/issues/66\n }\n}\n\nexport type ElementPropType<C> = C extends React.CElement<infer P, infer T> ? P & React.ClassAttributes<T> : never;\nexport type ClonedElementType<C, IP extends Partial<ElementPropType<C>>> = C extends React.CElement<infer P, infer T> ? React.CElement<P & Partial<IP>, T & React.Component<P & IP>> : never;","var Lt = Object.defineProperty;\nvar jt = (o, r, t) => r in o ? Lt(o, r, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[r] = t;\nvar V = (o, r, t) => (jt(o, typeof r != \"symbol\" ? r + \"\" : r, t), t), wt = (o, r, t) => {\n if (!r.has(o))\n throw TypeError(\"Cannot \" + t);\n};\nvar e = (o, r, t) => (wt(o, r, \"read from private field\"), t ? t.call(o) : r.get(o)), d = (o, r, t) => {\n if (r.has(o))\n throw TypeError(\"Cannot add the same private member more than once\");\n r instanceof WeakSet ? r.add(o) : r.set(o, t);\n}, l = (o, r, t, i) => (wt(o, r, \"write to private field\"), i ? i.call(o, t) : r.set(o, t), t);\nvar m = (o, r, t) => (wt(o, r, \"access private method\"), t);\nconst ot = {\n delay: 0,\n direction: \"normal\",\n duration: \"auto\",\n easing: \"linear\",\n endDelay: 0,\n fill: \"auto\",\n iterationStart: 0,\n iterations: 1\n}, St = 1e3, qt = window.Animation, ft = window.KeyframeEffect;\nfunction At(o) {\n return Array.isArray(o);\n}\nfunction Q(o) {\n return typeof o == \"object\" && o === null;\n}\nfunction u(o, r) {\n return Q(o) || typeof o == \"number\" ? o : (r || ([r] = Object.keys(o.type())), o.to(r).value);\n}\nfunction Ft(o, r = ot) {\n let { duration: t = \"auto\", iterations: i = 1, playbackRate: n = 1 } = r;\n if (Q(o))\n return o;\n if (typeof o == \"number\" || o.type().percent === void 0)\n throw new DOMException(\n \"CSSNumericValue must be a percentage for progress based animations.\",\n \"NotSupportedError\"\n );\n if (t === \"auto\")\n t = St;\n else if (t instanceof CSSNumericValue)\n t = t.to(\"ms\").value;\n else if (typeof t == \"string\")\n throw new TypeError(\"Unknown effect duration keyword.\");\n const { delay: s = 0, endDelay: a = 0 } = r, y = t / i * i / Math.abs(n), b = s + y + a;\n return st(\n o.to(\"percent\").value,\n [0, 100],\n [0, b]\n );\n}\nfunction bt(o) {\n if (Q(o) || typeof o == \"number\")\n return o;\n if (o.type().time !== void 0)\n throw new DOMException(\n \"CSSNumericValue must be a time value for time based animations.\",\n \"NotSupportedError\"\n );\n return o.to(\"ms\").value;\n}\nfunction It(o, r) {\n const t = r.length - 1, i = Math.floor(o * t), n = r[i], s = r[Math.min(i + 1, t)], a = o * t - i;\n return n + a * (s - n);\n}\nfunction Bt(o, r, t) {\n let i = 0, n = 0;\n for (const [s, a] of Object.entries(o)) {\n const { min: c, max: y } = r, b = t[s] ?? 1, R = (a - c[s]) / (y[s] - c[s]) * b;\n i += R, n += b;\n }\n return i / n;\n}\nfunction st(o, r, t, i = {}) {\n let n;\n if (typeof o == \"number\" && At(r)) {\n const a = { x: r[0] }, c = { x: r[1] };\n r = { min: a, max: c }, o = { x: o };\n } else\n throw new TypeError(\"Input and input range must have the same dimensions.\");\n if (n = Bt(o, r, i), n = Xt(n, 0, 1), At(t))\n return It(n, t);\n const s = {};\n for (const a of Object.keys(t.min)) {\n const c = t.min[a], y = t.max[a], b = [c, y];\n s[a] = It(n, b);\n }\n return s;\n}\nfunction Qt({ mass: o = 1, stiffness: r = 10, damping: t = 10, velocity: i = 0, steps: n = 100 }) {\n const s = Math.sqrt(r / o), a = t / (2 * Math.sqrt(r * o)), c = a < 1 ? s * Math.sqrt(1 - a * a) : 0, y = a < 1 ? (a * s + -i) / c : -i + s;\n function b(g) {\n return a < 1 ? g = Math.exp(-g * a * s) * (1 * Math.cos(c * g) + y * Math.sin(c * g)) : g = (1 + y * g) * Math.exp(-g * s), 1 - g;\n }\n const M = (() => {\n const g = 1 / n;\n let w = 0;\n for (; ; ) {\n if (Math.abs(1 - b(w)) < 1e-3) {\n const C = w;\n let E = 1;\n for (; w += g, !(Math.abs(1 - b(w)) >= 1e-3); )\n if (E++, E === 16)\n return C;\n }\n w += g;\n }\n })() * 1e3, R = (() => {\n let g = [];\n for (let w = 0; w <= n; w++) {\n const C = w / n, E = b(C);\n g.push(E);\n }\n return `linear(${g.join(\", \")})`;\n })();\n return { duration: M, easing: R };\n}\nfunction Yt(o, r = 100) {\n let t = [];\n for (let i = 0; i <= r; i++) {\n const n = i / r, s = o(n);\n t.push(s);\n }\n return `linear(${t.join(\", \")})`;\n}\nfunction Xt(o, r, t) {\n return o < r ? r : t && o > t ? t : o;\n}\nfunction Dt(o) {\n let {\n duration: r = \"auto\",\n iterations: t = 1,\n playbackRate: i = 1,\n delay: n = 0,\n endDelay: s = 0,\n localTime: a = null,\n progress: c = null\n } = o;\n const y = new CSSUnitValue(100, \"percent\");\n if (r === \"auto\")\n r = St, n = 0, s = 0;\n else if (r instanceof CSSNumericValue)\n r = r.to(\"ms\").value;\n else if (typeof r == \"string\")\n throw TypeError(\"Unknown effect duration keyword.\");\n const b = r / t, M = b * t / Math.abs(i), R = n + M + s;\n r = new CSSUnitValue(b / R * 100, \"percent\");\n const g = CSS.percent(r.to(\"percent\").value * t / Math.abs(i));\n return a !== null && (c = u(a, \"percent\") / y.value), {\n ...o,\n progress: c,\n activeDuration: g,\n duration: r,\n iterations: t,\n delay: n,\n endDelay: s,\n endTime: y\n };\n}\nfunction Pt(o, r) {\n let { activeDuration: t = 0, localTime: i = null, endTime: n = 1 / 0, delay: s = 0 } = o;\n if (n = u(n), t = u(t), i = u(i), i == null || i === void 0)\n return \"idle\";\n const a = Math.max(Math.min(s, n), 0), c = Math.max(Math.min(s + t, n), 0);\n return i < a || r === \"backwards\" && i === a ? \"before\" : i > c || r === \"forwards\" && i === c ? \"after\" : \"active\";\n}\nfunction Wt(o, r) {\n let { localTime: t = null, delay: i = 0, activeDuration: n = 0, fill: s } = o;\n if (n = u(n), t = u(t), t == null || t === void 0)\n return null;\n switch (r) {\n case \"before\":\n return s === \"backwards\" || s === \"both\" ? Math.max(t - i, 0) : null;\n case \"active\":\n return t - i;\n case \"after\":\n return s === \"forwards\" || s === \"both\" ? Math.max(Math.min(t - i, n), 0) : null;\n default:\n return null;\n }\n}\nfunction Kt(o, r, t) {\n const { duration: i = 0, iterations: n = 1, iterationStart: s = 0 } = o;\n if (typeof i != \"number\")\n throw new TypeError(\"Duration cannot be unresolved\");\n let a = 0;\n return i === 0 ? r === \"before\" ? a = 0 : a = n : a = t / bt(i), a + s;\n}\nfunction $t(o, r, t, i) {\n const { iterations: n = 1, iterationStart: s = 0, activeDuration: a = 0 } = o;\n if (Q(t))\n return null;\n let c = 0;\n return t === 1 / 0 && (c = s % 1), c === 0 && (r === \"active\" || r === \"after\") && a === i && n !== 0 && (c = 1), c;\n}\nfunction xt(o, r) {\n const { iterations: t = 1 } = o, i = Wt(o, r);\n if (Q(i))\n return null;\n if (r === \"after\" && t === 1 / 0)\n return 1 / 0;\n const n = Kt(o, r, i);\n return $t(o, r, n, i) === 1 ? Math.floor(n) - 1 : Math.floor(n);\n}\nclass zt extends Event {\n constructor(t) {\n super(\"update\", { bubbles: !1, cancelable: !1, composed: !1 });\n V(this, \"currentTime\");\n this.currentTime = t;\n }\n}\nvar x, K;\nclass v extends EventTarget {\n constructor(t = { type: \"swipe\", axis: \"x\", rangeStart: 0, rangeEnd: window.screen.availWidth, source: document.body }) {\n super();\n d(this, x, void 0);\n d(this, K, void 0);\n t.source.addEventListener(t.type, this.onGesture.bind(this)), l(this, K, CSS.percent(0)), l(this, x, t);\n }\n onGesture(t) {\n const i = e(this, x).source.getBoundingClientRect();\n let n = 0;\n const s = {\n x: t.x - i.left,\n y: t.y - i.top\n };\n switch (e(this, x).type) {\n case \"swipe\": {\n const { rangeStart: a, rangeEnd: c } = e(this, x), y = e(this, x).axis;\n n = st(\n s[y],\n [u(a, \"px\"), u(c, \"px\")],\n [0, 100]\n );\n break;\n }\n case \"pan\": {\n const { rangeStart: a, rangeEnd: c } = e(this, x), { x: y, y: b } = s;\n n = st(\n { x: y, y: b },\n {\n min: { x: u(a.x, \"px\"), y: u(a.y, \"px\") },\n max: { x: u(c.x, \"px\"), y: u(c.y, \"px\") }\n },\n [0, 100],\n { x: 1, y: 1 }\n );\n break;\n }\n case \"pinch\": {\n const { rangeStart: a, rangeEnd: c } = e(this, x), { scale: y } = t;\n n = st(\n y,\n [u(a, \"\"), u(c, \"\")],\n // figure out which unit\n [0, 100]\n );\n break;\n }\n case \"rotate\": {\n const { rangeStart: a, rangeEnd: c } = e(this, x), { rotation: y } = t;\n n = st(\n y,\n [u(a, \"deg\"), u(c, \"deg\")],\n [0, 100]\n );\n }\n }\n l(this, K, CSS.percent(n)), this.dispatchEvent(new zt(e(this, K)));\n }\n addEventListener(t, i, n) {\n super.addEventListener(t, i, n);\n }\n removeEventListener(t, i, n) {\n super.removeEventListener(t, i, n);\n }\n get currentTime() {\n return e(this, K);\n }\n get phase() {\n return \"active\";\n }\n}\nx = new WeakMap(), K = new WeakMap();\nconst G = /* @__PURE__ */ new WeakMap();\nvar tt;\nclass mt extends ft {\n constructor(t, i = null) {\n super(t);\n d(this, tt, null);\n l(this, tt, i);\n }\n get parent() {\n return e(this, tt);\n }\n getTiming() {\n var i;\n const t = super.getTiming();\n if (((i = G.get(this)) == null ? void 0 : i.timeline) instanceof v) {\n if (t.duration === 1 / 0)\n throw TypeError(\"Effect duration cannot be Infinity for non-monotonic timelines.\");\n if (t.iterations === 1 / 0)\n throw TypeError(\"Effect iterations cannot be Infinity for non-monotonic timelines.\");\n }\n return t;\n }\n getComputedTiming() {\n var n;\n const t = super.getComputedTiming();\n if (((n = G.get(this)) == null ? void 0 : n.timeline) instanceof v) {\n if (t.duration === 1 / 0)\n throw TypeError(\"Effect duration cannot be Infinity for non-monotonic timelines.\");\n if (t.iterations === 1 / 0)\n throw TypeError(\"Effect iterations cannot be Infinity for non-monotonic timelines.\");\n return Dt(t);\n }\n return t;\n }\n updateTiming(t) {\n var s;\n const i = super.getTiming();\n t = {\n ...i,\n duration: i.duration instanceof CSSNumericValue ? i.duration.to(\"ms\").value : i.duration,\n ...t\n };\n let n = e(this, tt);\n for (; n; ) {\n const a = n.getTiming();\n t != null && t.delay && (t.delay += a.delay ?? 0), t != null && t.endDelay && (t.endDelay += a.endDelay ?? 0), t != null && t.iterationStart && (t.iterationStart += a.iterationStart ?? 0), t != null && t.iterations && (t.iterations *= a.iterations ?? 1), t != null && t.playbackRate && (t.playbackRate *= a.playbackRate ?? 1), a.duration && typeof a.duration != \"string\" && (t == null ? void 0 : t.duration) === \"auto\" && (t.duration = u(a.duration, \"ms\")), n = n.parent;\n }\n if (((s = G.get(this)) == null ? void 0 : s.timeline) instanceof v) {\n if ((t == null ? void 0 : t.duration) === 1 / 0)\n throw TypeError(\"Effect duration cannot be Infinity for non-monotonic timelines.\");\n if (t != null && t.iterations)\n throw TypeError(\"Effect iterations cannot be Infinity for non-monotonic timelines.\");\n }\n return super.updateTiming(t);\n }\n}\ntt = new WeakMap();\nvar U, $;\nconst at = class at {\n constructor(r) {\n d(this, U, []);\n d(this, $, null);\n l(this, U, r.map((t) => (t instanceof at ? l(t, $, this) : t instanceof ft && (t = new mt(t, this)), t)));\n }\n get parent() {\n return e(this, $);\n }\n get children() {\n const r = e(this, U);\n return {\n length: r.length,\n item(t) {\n return r.at(t) ?? null;\n }\n };\n }\n get firstChild() {\n return e(this, U).at(0) ?? null;\n }\n get lastChild() {\n return e(this, U).at(-1) ?? null;\n }\n clone() {\n return structuredClone(this);\n }\n append(...r) {\n r.forEach((t) => {\n e(this, U).includes(t) || (t instanceof at ? l(t, $, this) : t instanceof ft && (t = new mt(t, this)), e(this, U).push(t));\n });\n }\n prepend(...r) {\n r.forEach((t) => {\n e(this, U).includes(t) || (t instanceof at ? l(t, $, this) : t instanceof ft && (t = new mt(t, this)), e(this, U).unshift(t));\n });\n }\n};\nU = new WeakMap(), $ = new WeakMap();\nlet lt = at;\nclass Y {\n constructor() {\n V(this, \"promise\");\n V(this, \"state\");\n V(this, \"nativeResolve\");\n V(this, \"nativeReject\");\n this.state = \"pending\", this.nativeResolve = this.nativeReject = null, this.promise = new Promise((r, t) => {\n this.nativeResolve = r, this.nativeReject = t;\n });\n }\n resolve(r) {\n var t;\n this.state = \"resolved\", (t = this.nativeResolve) == null || t.call(this, r);\n }\n reject(r) {\n var t;\n this.state = \"rejected\", this.promise.catch(() => {\n }), (t = this.nativeReject) == null || t.call(this, r);\n }\n}\nvar z, dt, Ut;\nclass Ht extends lt {\n constructor(t, i = ot) {\n super(t);\n d(this, dt);\n d(this, z, void 0);\n l(this, z, {\n ...ot,\n ...i\n });\n }\n prepend(...t) {\n super.prepend(...t), t.forEach((i) => i.updateTiming());\n }\n append(...t) {\n super.append(...t), t.forEach((i) => i.updateTiming());\n }\n getTiming() {\n return e(this, z);\n }\n getComputedTiming() {\n var w, C;\n const t = this.getTiming(), i = { ...t }, { delay: n = 0 } = ((w = this.children.item(0)) == null ? void 0 : w.getComputedTiming()) ?? {}, { endDelay: s = 0, endTime: a = 0 } = ((C = this.children.item(this.children.length - 1)) == null ? void 0 : C.getComputedTiming()) ?? {};\n t.delay = t.delay ? t.delay + n : n, t.endDelay = t.endDelay ? t.endDelay + s : s, i.endTime = a;\n for (let E = 0; E < this.children.length; E++) {\n const A = this.children.item(E);\n if (!A)\n continue;\n let {\n duration: I = \"auto\",\n activeDuration: Mt = 0\n } = A.getComputedTiming();\n i.activeDuration = i.activeDuration ? u(i.activeDuration, \"ms\") + u(Mt, \"ms\") : Mt, t.duration = t.duration instanceof CSSNumericValue ? t.duration.to(\"ms\").value : t.duration, I = I instanceof CSSNumericValue ? I.to(\"ms\").value : I, typeof I != \"string\" && (t.duration === \"auto\" ? t.duration = u(I, \"ms\") : typeof t.duration != \"string\" && (t.duration = t.duration ? t.duration + I : I));\n }\n const { timeline: c, startTime: y, currentTime: b } = G.get(this) ?? {}, M = c instanceof v ? \"percent\" : \"ms\";\n let { duration: R = 0, iterations: g = 1 } = i;\n if (R === \"auto\" && (R = 0), typeof R == \"string\")\n throw new TypeError(\"Unknown effect duration keyword.\");\n return i.duration = R, i.activeDuration = bt(R) * g, i.startTime = y ?? void 0, i.localTime = b, i.currentIteration = xt(i, Pt(i, e(this, dt, Ut))), c instanceof v ? Dt(i) : (c instanceof DocumentTimeline && (i.progress = b && u(b, M) / u(a, M)), i);\n }\n updateTiming(t) {\n l(this, z, {\n ...e(this, z),\n ...t\n });\n for (let i = 0; i < this.children.length; i++) {\n const n = this.children.item(i);\n n == null || n.updateTiming();\n }\n }\n}\nz = new WeakMap(), dt = new WeakSet(), Ut = function() {\n const { playbackRate: t = 1 } = G.get(this) ?? {};\n return t < 0 ? \"backwards\" : \"forwards\";\n};\nvar f, D, et, T, k, N, h, p, S, B, j, it, O, ut, kt, H, rt, X, Z, pt, Ot, Tt, _t, yt, Gt, F, W, nt, ct, Rt, _, q, P, L, ht, gt, Et;\nconst Ct = class Ct extends EventTarget {\n constructor(t, i) {\n super();\n d(this, ut);\n d(this, H);\n d(this, X);\n d(this, pt);\n d(this, Tt);\n d(this, yt);\n d(this, F);\n d(this, ct);\n d(this, _);\n d(this, P);\n V(this, \"id\", \"\");\n V(this, \"oncancel\", null);\n V(this, \"onfinish\", null);\n V(this, \"onremove\", null);\n d(this, f, void 0);\n d(this, D, void 0);\n d(this, et, \"active\");\n d(this, T, {\n task: null,\n playbackRate: null\n });\n d(this, k, new Y());\n d(this, N, new Y());\n d(this, h, null);\n d(this, p, null);\n d(this, S, []);\n d(this, B, null);\n d(this, j, !1);\n d(this, it, 0);\n d(this, O, 1);\n d(this, nt, () => {\n m(this, F, W).call(this);\n });\n d(this, ht, () => {\n var s;\n if (e(this, N).state !== \"pending\" || this.playState !== \"finished\")\n return;\n e(this, N).resolve(this);\n const t = this.currentTime, i = (s = this.timeline) == null ? void 0 : s.currentTime, n = new AnimationPlaybackEvent(\n \"finish\",\n {\n get currentTime() {\n return t;\n },\n get timelineTime() {\n return i;\n }\n }\n );\n requestAnimationFrame(() => {\n var a;\n this.dispatchEvent(n), (a = this.onfinish) == null || a.call(this, n);\n });\n });\n d(this, gt, () => {\n var s, a;\n const t = this.currentTime, i = (s = this.timeline) == null ? void 0 : s.currentTime, n = new AnimationPlaybackEvent(\n \"cancel\",\n {\n get currentTime() {\n return t;\n },\n get timelineTime() {\n return i;\n }\n }\n );\n this.dispatchEvent(n), (a = this.oncancel) == null || a.call(this, n);\n });\n d(this, Et, () => {\n var i;\n const t = new Event(\"remove\");\n this.dispatchEvent(t), (i = this.onremove) == null || i.call(this, t);\n });\n e(this, k).resolve(this), l(this, D, t ?? null), l(this, f, i ?? document.timeline), e(this, D) && G.set(e(this, D), this), m(this, ct, Rt).call(this), i instanceof v && i.addEventListener(\"update\", e(this, nt));\n }\n reverse() {\n var c;\n const { endTime: t = 0 } = ((c = e(this, D)) == null ? void 0 : c.getComputedTiming()) ?? {}, i = e(this, T).playbackRate ?? e(this, O), n = u(this.currentTime), s = t === 1 / 0, a = i !== 0 && (i < 0 || n && n > 0 || !s);\n if (!e(this, f) || !a) {\n a && (e(this, T).playbackRate = -i);\n return;\n }\n if (e(this, f).currentTime === null)\n throw new DOMException(\n \"Cannot reverse an animation with no active timeline\",\n \"InvalidStateError\"\n );\n this.updatePlaybackRate(-i), this.play();\n }\n play() {\n const t = this.playState === \"paused\" && this.pending;\n let i = this.currentTime;\n (e(this, T).playbackRate ?? this.playbackRate) === 0 && i === null && l(this, p, 0), i === null && l(this, j, !0), (this.playState === \"finished\" || t) && (l(this, h, null), l(this, p, null), l(this, j, !0)), e(this, p) && l(this, h, null), e(this, T).task && (e(this, T).task = null), !(e(this, h) !== null && e(this, p) === null && !t && e(this, T).playbackRate === null) && (m(this, F, W).call(this), m(this, H, rt).call(this), e(this, T).task = \"play\", m(this, _, q).call(this, !1));\n }\n pause() {\n this.playState !== \"paused\" && (this.currentTime === null && l(this, j, !0), e(this, T).task && (e(this, T).task = null), m(this, H, rt).call(this), e(this, T).task = \"pause\");\n }\n persist() {\n e(this, S).forEach((t) => t.persist()), l(this, et, \"persisted\");\n }\n finish() {\n var s;\n const { endTime: t = 0 } = ((s = this.effect) == null ? void 0 : s.getComputedTiming()) ?? {}, i = e(this, T).playbackRate ?? e(this, O);\n if (i === 0 || i > 0 && t === 1 / 0)\n throw new DOMException(\"InvalidStateError\");\n m(this, P, L).call(this);\n let n;\n if (i > 0 ? n = t : n = 0, m(this, ut, kt).call(this, n), this.startTime === null && e(this, f) !== null && e(this, f).currentTime !== null && n !== null) {\n const a = e(this, f) instanceof v ? \"percent\" : \"ms\";\n n = u(n, a);\n const c = u(e(this, f).currentTime, a);\n l(this, h, c - n / i);\n }\n e(this, T).task === \"pause\" && e(this, h) !== null && (l(this, p, null), m(this, X, Z).call(this), e(this, k).resolve(this)), e(this, T).task === \"play\" && e(this, h) !== null && (m(this, X, Z).call(this), e(this, k).resolve(this)), m(this, _, q).call(this, !0), e(this, S).forEach((a) => a.finish());\n }\n commitStyles() {\n e(this, S).forEach((t) => {\n t.effect instanceof mt && (t.effect.target === null || t.effect.pseudoElement !== null) || t.commitStyles();\n });\n }\n cancel() {\n this.playState !== \"idle\" && (m(this, P, L).call(this), e(this, k).reject(new DOMException(\"The user aborted a request\", \"AbortError\")), m(this, X, Z).call(this), l(this, k, new Y()), e(this, N).state === \"pending\" && e(this, N).reject(new DOMException(\"The user aborted a request\", \"AbortError\")), l(this, N, new Y()), e(this, S).forEach((t) => t.cancel())), l(this, h, null), l(this, p, null);\n }\n updatePlaybackRate(t) {\n var n;\n e(this, T).playbackRate = t;\n const i = this.playState;\n if (e(this, k).state !== \"pending\")\n switch (i) {\n case \"idle\":\n case \"paused\":\n m(this, P, L).call(this);\n break;\n case \"finished\": {\n const s = e(this, f) instanceof v ? \"percent\" : \"ms\", a = ((n = e(this, f)) == null ? void 0 : n.currentTime) ?? null;\n if (t === 0)\n l(this, h, u(a, s));\n else if (a !== null) {\n let c = null;\n c = (u(a, s) - (e(this, h) ?? 0)) * this.playbackRate, e(this, h) !== null && c !== null && l(this, h, (u(a, s) - c) / t);\n }\n m(this, P, L).call(this), m(this, _, q).call(this, !1), m(this, F, W).call(this);\n break;\n }\n default:\n this.play();\n }\n }\n addEventListener(t, i, n) {\n super.addEventListener(t, i, n);\n }\n removeEventListener(t, i, n) {\n super.removeEventListener(t, i, n);\n }\n set playbackRate(t) {\n l(this, O, t), e(this, S).forEach((i) => {\n i.playbackRate *= t;\n });\n }\n set startTime(t) {\n l(this, h, u(t)), e(this, S).forEach((i) => i.startTime = t);\n }\n set currentTime(t) {\n var s;\n const i = e(this, f) instanceof v ? \"percent\" : \"ms\", n = u(((s = e(this, f)) == null ? void 0 : s.currentTime) ?? null, i);\n if (Q(t) && !Q(n))\n throw new TypeError(\"currentTime may not be changed from resolved to unresolved.\");\n l(this, j, !1), e(this, p) !== null || e(this, h) === null || n === null || this.playbackRate === 0 ? l(this, p, u(t, i)) : l(this, h, n - u(t, i) / this.playbackRate), (e(this, f) === null || n === null) && l(this, h, null), l(this, B, null), m(this, ut, kt).call(this, t), e(this, T).task === \"pause\" && (l(this, p, u(t, i)), m(this, P, L).call(this), l(this, h, null), m(this, X, Z).call(this), e(this, k).resolve(this)), m(this, _, q).call(this, !0);\n }\n set timeline(t) {\n var C, E;\n const i = this.timeline;\n if (i === t)\n return;\n e(this, f) instanceof v && e(this, f).removeEventListener(\"update\", e(this, nt));\n const n = this.playState, s = i instanceof v ? \"percent\" : \"ms\", a = u(this.currentTime, s), { progress: c = null, endTime: y = 0 } = ((C = e(this, D)) == null ? void 0 : C.getComputedTiming()) ?? {}, b = u(y, s), M = i instanceof v, R = t instanceof v, g = t instanceof DocumentTimeline, w = this.pending;\n if (R)\n l(this, f, t), t.addEventListener(\"update\", e(this, nt)), m(this, P, L).call(this), l(this, j, !0), l(this, h, null), l(this, p, null), (n === \"running\" || n === \"finished\") && ((!e(this, k) || e(this, k).state === \"resolved\") && m(this, H, rt).call(this), e(this, T).task = \"play\", e(this, S).forEach((A) => A.pause())), n === \"paused\" && c !== null && l(this, p, c * b), w && ((!e(this, k) || e(this, k).state === \"resolved\") && m(this, H, rt).call(this), n === \"paused\" ? e(this, T).task = \"pause\" : e(this, T).task = \"play\"), e(this, h) !== null && l(this, p, null), m(this, _, q).call(this, !1);\n else if (g) {\n if (l(this, f, t), M) {\n if (a !== null && c !== null) {\n const { endTime: A = 0 } = ((E = e(this, D)) == null ? void 0 : E.getComputedTiming()) ?? {}, I = u(A, \"ms\");\n this.currentTime = c * I;\n }\n switch (n) {\n case \"paused\":\n e(this, S).forEach((A) => A.pause());\n break;\n case \"running\":\n case \"finished\":\n e(this, S).forEach((A) => A.play());\n }\n }\n } else\n throw TypeError(\"Unsupported timeline: \" + t);\n }\n set effect(t) {\n if (t !== e(this, D)) {\n if (this.pending && m(this, X, Z).call(this), e(this, D) && G.delete(e(this, D)), t) {\n const i = G.get(t);\n i && (i.effect = null), G.set(t, this);\n }\n l(this, D, t), m(this, ct, Rt).call(this), m(this, _, q).call(this, !1);\n }\n }\n get ready() {\n return e(this, k).promise;\n }\n get finished() {\n return e(this, N).promise;\n }\n get playState() {\n var a;\n let { endTime: t = 0 } = ((a = this.effect) == null ? void 0 : a.getComputedTiming()) ?? {};\n const i = e(this, f) instanceof v ? \"percent\" : \"ms\", n = u(this.startTime, i), s = u(this.currentTime, i);\n return t = u(t, i), s === null && n === null && e(this, T).task === null ? \"idle\" : e(this, T).task === \"pause\" || n === null && e(this, T).task !== \"play\" ? \"paused\" : s !== null && (e(this, O) > 0 && s >= t || e(this, O) < 0 && s <= 0) ? \"finished\" : \"running\";\n }\n get playbackRate() {\n return e(this, O);\n }\n get replaceState() {\n return e(this, et);\n }\n get pending() {\n return e(this, k).state === \"pending\";\n }\n get currentTime() {\n var s;\n const t = ((s = this.timeline) == null ? void 0 : s.currentTime) ?? null;\n if (e(this, p)) {\n if (typeof t == \"number\")\n return e(this, p);\n const a = e(this, f) instanceof v ? \"percent\" : \"ms\";\n return new CSSUnitValue(e(this, p), a);\n }\n if (t === null || e(this, h) === null)\n return null;\n const i = e(this, f) instanceof v ? \"percent\" : \"ms\";\n let n = (u(t, i) - e(this, h)) * this.playbackRate;\n return n === -0 && (n = 0), typeof t == \"number\" ? n : new CSSUnitValue(n, i);\n }\n get startTime() {\n var n;\n if (e(this, h) === null)\n return null;\n if (typeof (((n = this.timeline) == null ? void 0 : n.currentTime) ?? null) == \"number\")\n return e(this, h);\n const i = e(this, f) instanceof v ? \"percent\" : \"ms\";\n return new CSSUnitValue(e(this, h), i);\n }\n get timeline() {\n return e(this, f);\n }\n get effect() {\n return e(this, D);\n }\n};\nf = new WeakMap(), D = new WeakMap(), et = new WeakMap(), T = new WeakMap(), k = new WeakMap(), N = new WeakMap(), h = new WeakMap(), p = new WeakMap(), S = new WeakMap(), B = new WeakMap(), j = new WeakMap(), it = new WeakMap(), O = new WeakMap(), ut = new WeakSet(), kt = function(t) {\n var n;\n const i = u(((n = e(this, f)) == null ? void 0 : n.currentTime) ?? null);\n if (t === null && i !== null)\n throw new TypeError();\n t === null || i === null || (t = u(t), l(this, j, !1), e(this, p) !== null || e(this, h) === null || e(this, f) instanceof v && e(this, f).phase === \"inactive\" || e(this, O) === 0 ? l(this, p, t) : l(this, h, i - t / e(this, O)), e(this, f) instanceof v && e(this, f).phase === \"inactive\" && l(this, h, null), l(this, B, null));\n}, H = new WeakSet(), rt = function() {\n e(this, k).state !== \"pending\" && l(this, k, new Y()), cancelAnimationFrame(e(this, it)), l(this, it, requestAnimationFrame(() => {\n var i;\n (((i = e(this, f)) == null ? void 0 : i.currentTime) ?? null) !== null && (m(this, yt, Gt).call(this), e(this, T).task === \"play\" && (e(this, h) !== null || e(this, p) !== null) ? m(this, pt, Ot).call(this) : e(this, T).task === \"pause\" && m(this, Tt, _t).call(this), Promise.all(e(this, S).map((n) => n.finished)).then(e(this, ht)), Promise.all(e(this, S).map((n) => new Promise((s) => n.onremove = s))).then(e(this, Et)), Promise.all(e(this, S).map((n) => new Promise((s) => n.oncancel = s))).then(e(this, gt)).then(() => l(this, et, \"removed\")));\n }));\n}, X = new WeakSet(), Z = function() {\n cancelAnimationFrame(e(this, it)), e(this, T).task = null;\n}, pt = new WeakSet(), Ot = function() {\n var n;\n const t = ((n = this.timeline) == null ? void 0 : n.currentTime) ?? null;\n if (t === null)\n return;\n const i = e(this, f) instanceof v ? \"percent\" : \"ms\";\n if (e(this, p) !== null)\n m(this, P, L).call(this), this.playbackRate === 0 ? l(this, h, u(t, i)) : (l(this, h, u(t, i) - e(this, p) / this.playbackRate), l(this, p, null));\n else if (e(this, h) !== null && e(this, T).playbackRate !== null) {\n const s = (u(t, i) - e(this, h)) * this.playbackRate;\n m(this, P, L).call(this);\n const a = this.playbackRate;\n a === 0 ? (l(this, p, null), l(this, h, u(t, i))) : l(this, h, u(t, i) - s / a);\n }\n e(this, k).state === \"pending\" && e(this, k).resolve(this), m(this, _, q).call(this, !1), m(this, F, W).call(this), e(this, T).task = null, this.timeline instanceof DocumentTimeline && e(this, S).forEach((s) => s.play());\n}, Tt = new WeakSet(), _t = function() {\n var s;\n const t = ((s = this.timeline) == null ? void 0 : s.currentTime) ?? null;\n if (t === null)\n return;\n const i = e(this, f) instanceof v ? \"percent\" : \"ms\", n = t;\n e(this, h) !== null && e(this, p) === null && l(this, p, (u(n, i) - e(this, h)) * this.playbackRate), m(this, P, L).call(this), l(this, h, null), e(this, k).resolve(this), m(this, _, q).call(this, !1), m(this, F, W).call(this), e(this, T).task = null, e(this, S).forEach((a) => a.pause());\n}, yt = new WeakSet(), Gt = function() {\n if (e(this, j) && !(!e(this, f) || !e(this, f).currentTime) && !(this.playState === \"idle\" || this.playState === \"paused\" && e(this, p) !== null)) {\n if (e(this, f) instanceof v) {\n const t = e(this, T).playbackRate ?? this.playbackRate;\n l(this, h, t >= 0 ? 0 : 100);\n } else\n l(this, h, u(e(this, f).currentTime, \"ms\"));\n l(this, p, null);\n }\n}, F = new WeakSet(), W = function() {\n var a;\n const t = ((a = e(this, f)) == null ? void 0 : a.currentTime) ?? null;\n if (t === null)\n return;\n const i = e(this, D), n = e(this, f) instanceof v ? Ft(t, i == null ? void 0 : i.getTiming()) : bt(t);\n let s = null;\n if (e(this, h) !== null) {\n const y = u(t, \"percent\") === (this.playbackRate < 0 ? 0 : 100) ? this.playbackRate < 0 ? 1e-3 : -1e-3 : 0;\n s = (n - e(this, h)) * this.playbackRate, s += y;\n } else if (e(this, p) !== null)\n s = e(this, p);\n else\n return;\n e(this, S).forEach((c) => c.currentTime = s);\n}, nt = new WeakMap(), ct = new WeakSet(), Rt = function() {\n var n;\n let t = e(this, D);\n const i = [];\n if (t instanceof lt)\n for (let s = 0; s < t.children.length; s++) {\n const a = new Ct(t.children.item(s));\n if (t instanceof Ht && s > 0) {\n const { endTime: c = null } = ((n = i[s - 1].effect) == null ? void 0 : n.getComputedTiming()) ?? {};\n a.startTime = u(c, \"ms\");\n }\n i.push(a);\n }\n else {\n const s = e(this, f) instanceof v ? document.timeline : e(this, f);\n i.push(new qt(t, s));\n }\n l(this, S, i);\n}, _ = new WeakSet(), q = function(t) {\n var c, y;\n const i = ((c = e(this, f)) == null ? void 0 : c.currentTime) ?? null, n = e(this, f) instanceof v ? \"percent\" : \"ms\";\n let s = u(this.currentTime, n);\n if (s && e(this, h) !== null && !this.pending) {\n let { delay: b = 0, endDelay: M = 0, iterations: R = 1, duration: g = \"auto\" } = ((y = e(this, D)) == null ? void 0 : y.getTiming()) ?? {};\n const w = e(this, T).playbackRate ?? this.playbackRate;\n if (g === \"auto\")\n g = e(this, f) instanceof v ? St : 0;\n else if (g instanceof CSSNumericValue)\n g = g.to(\"ms\").value;\n else if (typeof g == \"string\")\n throw new TypeError(\"Unknown effect duration keyword.\");\n const C = b + g * R + M;\n let E = u(e(this, B), n);\n w > 0 && s >= C && e(this, B) !== null ? ((E === null || E < C) && (E = C), l(this, p, t ? s : E)) : w < 0 && s <= 0 ? ((E === null || E > 0) && (E = 0), l(this, p, t ? s : E)) : w !== 0 && (t && e(this, p) !== null && (i !== null ? l(this, h, u(i, n) - e(this, p) / w) : l(this, h, null)), l(this, p, null));\n }\n m(this, F, W).call(this), l(this, B, this.currentTime), this.playState === \"finished\" ? e(this, N).state === \"pending\" && e(this, ht).call(this) : e(this, N).state === \"resolved\" && l(this, N, new Y());\n}, P = new WeakSet(), L = function() {\n e(this, T).playbackRate && (this.playbackRate = e(this, T).playbackRate), e(this, T).playbackRate = null;\n}, ht = new WeakMap(), gt = new WeakMap(), Et = new WeakMap();\nlet Nt = Ct;\nvar J, vt, Vt;\nclass Zt extends lt {\n constructor(t, i = ot) {\n super(t);\n d(this, vt);\n d(this, J, void 0);\n l(this, J, {\n ...ot,\n ...i\n }), t.forEach((n) => n.updateTiming());\n }\n prepend(...t) {\n super.prepend(...t), t.forEach((i) => i.updateTiming());\n }\n append(...t) {\n super.append(...t), t.forEach((i) => i.updateTiming());\n }\n getTiming() {\n return e(this, J);\n }\n getComputedTiming() {\n const t = this.getTiming(), i = { ...t };\n for (let R = 0; R < this.children.length; R++) {\n const g = this.children.item(R);\n if (!g)\n continue;\n let {\n delay: w = 0,\n endDelay: C = 0,\n duration: E = \"auto\",\n activeDuration: A = 0,\n endTime: I = 0\n } = g.getComputedTiming();\n t.delay = t.delay ? Math.min(t.delay, w) : w, t.endDelay = t.endDelay ? Math.max(t.endDelay, C) : C, i.endTime = i.endTime ? Math.max(u(i.endTime, \"ms\"), u(I, \"ms\")) : I, i.activeDuration = i.activeDuration ? Math.max(u(i.activeDuration, \"ms\"), u(A, \"ms\")) : A, t.duration = t.duration instanceof CSSNumericValue ? t.duration.to(\"ms\").value : t.duration, E = E instanceof CSSNumericValue ? E.to(\"ms\").value : E, typeof E != \"string\" && (t.duration === \"auto\" ? t.duration = u(E, \"ms\") : typeof t.duration != \"string\" && (t.duration = t.duration ? Math.max(t.duration, E) : E));\n }\n const { timeline: n, startTime: s, currentTime: a } = G.get(this) ?? {}, c = n instanceof v ? \"percent\" : \"ms\";\n let { duration: y = 0, iterations: b = 1, endTime: M = 0 } = i;\n if (y === \"auto\" && (y = 0), typeof y == \"string\")\n throw new TypeError(\"Unknown effect duration keyword.\");\n return i.duration = y, i.activeDuration = bt(y) * b, i.startTime = s ?? void 0, i.localTime = a, i.currentIteration = xt(i, Pt(i, e(this, vt, Vt))), n instanceof v ? Dt(i) : (n instanceof DocumentTimeline && (i.progress = a && u(a, c) / u(M, c)), i);\n }\n updateTiming(t) {\n l(this, J, {\n ...e(this, J),\n ...t\n });\n for (let i = 0; i < this.children.length; i++) {\n const n = this.children.item(i);\n n == null || n.updateTiming();\n }\n }\n}\nJ = new WeakMap(), vt = new WeakSet(), Vt = function() {\n const { playbackRate: t = 1 } = G.get(this) ?? {};\n return t < 0 ? \"backwards\" : \"forwards\";\n};\nexport {\n Nt as Animation,\n v as GestureTimeline,\n zt as GestureTimelineUpdateEvent,\n lt as GroupEffect,\n mt as KeyframeEffect,\n Zt as ParallelEffect,\n Wt as calculateActiveTime,\n xt as calculateCurrentIterationIndex,\n Kt as calculateOverallProgress,\n $t as calculateSimpleIterationProgress,\n Xt as clamp,\n Dt as computedTimingToPercent,\n u as cssNumberishToNumber,\n Yt as easingToLinear,\n Pt as getPhase,\n st as interpolate,\n Ft as msFromPercent,\n bt as msFromTime,\n Qt as springToLinear\n};\n//# sourceMappingURL=index.js.map\n","import { StylableElement, StyleKeyList, isStylableElement } from './common/types';\nimport { Component, RefObject, createRef } from 'react';\nimport { NavigationBase } from './NavigationBase';\nimport { ScreenBase } from './ScreenBase';\nimport { ParallelEffect } from 'web-animations-extension';\nimport { SharedElement } from './SharedElement';\nimport { toCamelCase } from './common/utils';\n\ninterface SharedElementTransitionLayerProps {\n navigation: NavigationBase;\n direction: \"forwards\" | \"backwards\";\n}\n\ninterface SharedElementTransitionLayerState { }\n\nexport class SharedElementTransitionLayer extends Component<SharedElementTransitionLayerProps, SharedElementTransitionLayerState> {\n public readonly ref = createRef<HTMLDialogElement>();\n #outgoingScreen: RefObject<ScreenBase> | null = null;\n #incomingScreen: RefObject<ScreenBase> | null = null;\n\n state: SharedElementTransitionLayerState = {\n transitioning: false\n }\n\n set outgoingScreen(outgoingScreen: RefObject<ScreenBase> | null) {\n this.#outgoingScreen = outgoingScreen;\n }\n\n set incomingScreen(incomingScreen: RefObject<ScreenBase> | null) {\n this.#incomingScreen = incomingScreen;\n }\n\n get outgoingScreen() {\n return this.#outgoingScreen;\n }\n\n get incomingScreen() {\n return this.#incomingScreen;\n }\n\n getKeyframeProperties(element: Element, styleList: StyleKeyList) {\n const computedStyles: Record<string, string> = {};\n const computedStyle = window.getComputedStyle(element);\n for (const key of styleList) {\n let transformedKey;\n if (key === \"offset\")\n transformedKey = \"cssOffset\";\n else if (key === \"float\")\n transformedKey = \"cssFloat\";\n else\n transformedKey = toCamelCase(key);\n computedStyles[transformedKey] = computedStyle.getPropertyValue(key);\n }\n return computedStyles;\n }\n\n copyStyles(srcElement: Element | null | undefined, cloneElement: StylableElement, styleList: StyleKeyList) {\n if (!isStylableElement(srcElement)) return;\n const computedStyles = window.getComputedStyle(srcElement);\n for (const key of styleList) {\n const value = computedStyles.getPropertyValue(key);\n const priority = computedStyles.getPropertyPriority(key);\n cloneElement.style.setProperty(key, value, priority);\n }\n }\n\n getAnimationEffect<T extends { instance: SharedElement, clone: HTMLElement, rect: DOMRect }>(start: T, end: T) {\n const keyframeEffects = new Array<KeyframeEffect>();\n const config: KeyframeEffectOptions = {\n fill: \"both\" as const,\n duration: \"auto\",\n easing: \"ease\",\n };\n const transitionType = end.instance.transitionType;\n const startTransform = `translate(${start.rect.x}px, ${start.rect.y}px)`;\n const endTransform = `translate(${end.rect.x}px, ${end.rect.y}px)`;\n switch (transitionType) {\n case \"fade\":\n keyframeEffects.push(\n new KeyframeEffect(\n start.clone,\n [\n { transform: startTransform, opacity: 1 },\n { transform: endTransform, opacity: 0 }\n ],\n config\n ),\n );\n keyframeEffects.push(\n new KeyframeEffect(\n end.clone,\n [\n { transform: startTransform },\n { transform: endTransform }\n ],\n config\n ),\n\n );\n break;\n case \"fade-through\":\n keyframeEffects.push(\n new KeyframeEffect(\n start.clone,\n [\n { transform: startTransform, opacity: 1 },\n { opacity: 0, offset: 0.5 },\n { transform: endTransform, opacity: 0 }\n ],\n config\n ),\n\n );\n keyframeEffects.push(\n new KeyframeEffect(\n end.clone,\n [\n { transform: startTransform, opacity: 0 },\n { opacity: 0, offset: 0.5 },\n { transform: endTransform, opacity: 1 }\n ],\n config\n ),\n\n );\n break;\n case \"cross-fade\":\n end.clone.style.mixBlendMode = \"plus-lighter\";\n keyframeEffects.push(\n new KeyframeEffect(\n start.clone,\n [\n { transform: startTransform, opacity: 1 },\n { transform: endTransform, opacity: 0 }\n ],\n config\n ),\n\n );\n keyframeEffects.push(\n new KeyframeEffect(\n end.clone,\n [\n { transform: startTransform },\n { transform: endTransform }\n ],\n config\n ),\n\n );\n break;\n case \"morph\": {\n const styleList = Array.from(new Set([...start.instance.styles, ...end.instance.styles]));\n keyframeEffects.push(\n new KeyframeEffect(\n end.clone,\n [\n {\n ...Object.fromEntries((start.instance.ref.current?.firstElementChild as HTMLElement).attributeStyleMap),\n transform: startTransform,\n width: `${start.rect.width}px`,\n height: `${start.rect.height}px`,\n },\n {\n ...Object.fromEntries((end.instance.ref.current?.firstElementChild as HTMLElement).attributeStyleMap),\n ...this.getKeyframeProperties(end.instance.ref.current?.firstElementChild as HTMLElement, styleList),\n transform: endTransform,\n width: `${end.rect.width}px`,\n height: `${end.rect.height}px`,\n }\n ],\n config\n )\n );\n break;\n }\n }\n return new ParallelEffect(keyframeEffects);\n }\n\n get animationEffect() {\n const currentScene = this.outgoingScreen?.current?.sharedElementScene;\n const nextScene = this.incomingScreen?.current?.sharedElementScene;\n if (!currentScene || !nextScene) return null;\n if (currentScene === nextScene) return null;\n currentScene.previousScene = null;\n nextScene.previousScene = currentScene;\n const parallelEffects = new Array<ParallelEffect>();\n for (const [id, end] of Array.from(nextScene.nodes.entries())) {\n const endRect = end.getBoundingClientRect();\n const start = currentScene.nodes.get(id);\n if (!start?.canTransition || !end.canTransition) continue;\n const startRect = start.getBoundingClientRect();\n const endClone = end.clone();\n const startClone = start.clone();\n if (!startClone || !endClone) continue;\n const styleList = Array.from(new Set([...start.styles, ...end.styles]));\n if (end.transitionType !== \"morph\") {\n startClone.id = `${id}-start`;\n startClone.style.position = \"absolute\";\n startClone.style.gridArea = \"1 / 1\";\n startClone.style.margin = \"0\";\n this.copyStyles(start.ref.current?.firstElementChild, startClone, styleList);\n this.copyStyles(end.ref.current?.firstElementChild, endClone, styleList);\n startClone.style.width = `${startRect.width}px`;\n startClone.style.height = `${startRect.height}px`;\n endClone.style.width = `${endRect.width}px`;\n endClone.style.height = `${endRect.height}px`;\n this.ref.current?.prepend(startClone);\n } else {\n this.copyStyles(start.ref.current?.firstElementChild, endClone, styleList);\n endClone.style.width = `${startRect.width}px`;\n endClone.style.height = `${startRect.height}px`;\n }\n\n endClone.id = `${id}${end.transitionType === \"morph\" ? '' : '-end'}`;\n endClone.style.position = \"absolute\";\n endClone.style.gridArea = \"1 / 1\";\n endClone.style.margin = \"0\";\n this.ref.current?.prepend(endClone);\n start.hide();\n end.hide();\n const onFinish = async () => {\n if (this.props.direction === \"forwards\")\n end.unhide();\n else\n start.unhide();\n endClone.remove();\n startClone.remove();\n };\n this.props.navigation.addEventListener('transition-end', onFinish, { once: true });\n this.props.navigation.addEventListener('transition-cancel', onFinish, { once: true });\n\n parallelEffects.push(this.getAnimationEffect(\n { instance: start, clone: startClone, rect: startRect },\n { instance: end, clone: endClone, rect: endRect }\n ));\n }\n\n return new ParallelEffect(parallelEffects);\n }\n\n render() {\n return (\n <dialog className=\"shared-element-layer\" ref={this.ref} style={{\n maxWidth: 'unset',\n maxHeight: 'unset',\n width: '100vw',\n height: '100vh',\n contain: 'strict',\n padding: 0,\n border: 'none',\n backgroundColor: 'transparent',\n isolation: 'isolate',\n }}>\n <style>\n {`\n .shared-element-layer::backdrop {display: none}\n .shared-element-layer[open] {display:grid}\n `}\n </style>\n </dialog>\n );\n }\n}","import { createContext } from \"react\";\n\nexport const MotionContext = createContext(0);","import { Component, RefObject, createRef } from 'react';\nimport { MotionProgressEvent, TransitionCancelEvent, TransitionEndEvent, TransitionStartEvent } from './common/events';\nimport { SharedElementTransitionLayer } from './SharedElementTransitionLayer';\nimport { ParallelEffect, Animation } from 'web-animations-extension';\nimport { ScreenTransitionLayerContext } from './ScreenTransitionLayerContext';\nimport { ScreenChild } from './common/types';\nimport { NavigationBase } from './NavigationBase';\nimport { ScreenBase } from './ScreenBase';\nimport { MotionContext } from './MotionContext';\n\ninterface ScreenTransitionLayerProps {\n children: ScreenChild | ScreenChild[];\n navigation: NavigationBase;\n hasUAVisualTransition: boolean;\n}\n\ninterface ScreenTransitionLayerState {\n gestureNavigating: boolean;\n progress: number;\n}\n\nexport class ScreenTransitionLayer extends Component<ScreenTransitionLayerProps, ScreenTransitionLayerState> {\n public readonly sharedElementTransitionLayer = createRef<SharedElementTransitionLayer>();\n public readonly animation: Animation = new Animation();\n #direction: PlaybackDirection = 'normal';\n #screens: RefObject<ScreenBase>[] = [];\n\n state: ScreenTransitionLayerState = {\n gestureNavigating: false,\n progress: 1,\n };\n\n private onAnimationFrame() {\n const progress = this.animation.effect?.getComputedTiming().progress;\n\n if (progress)\n this.onProgress(progress);\n\n if (this.animation.playState === 'running')\n requestAnimationFrame(this.onAnimationFrame.bind(this));\n }\n\n private onTransitionCancel() {\n this.props.navigation.dispatchEvent(new TransitionCancelEvent());\n }\n\n private onTransitionStart() {\n this.props.navigation.dispatchEvent(new TransitionStartEvent());\n\n this.onAnimationFrame();\n }\n\n private onTransitionEnd() {\n this.props.navigation.dispatchEvent(new TransitionEndEvent());\n }\n\n private onProgress(progress: number) {\n this.setState({ progress });\n this.props.navigation.dispatchEvent(new MotionProgressEvent(progress));\n }\n\n get screens() {\n return this.#screens;\n }\n\n set screens(screens: RefObject<ScreenBase>[]) {\n this.#screens = screens;\n }\n\n set direction(direction: PlaybackDirection) {\n this.#direction = direction;\n this.animation.effect?.updateTiming({ direction });\n }\n\n get direction() {\n return this.#direction;\n }\n\n get hasUAVisualTransition() {\n return this.props.hasUAVisualTransition;\n }\n\n public transition() {\n const effect = new ParallelEffect(\n this.screens.map(screen => {\n return screen.current?.transitionProvider?.current?.animationEffect ?? null;\n }).filter((effect): effect is AnimationEffect => effect !== null)\n );\n\n const sharedElementEffect = this.sharedElementTransitionLayer.current?.animationEffect;\n const duration = effect.getComputedTiming().duration;\n if (sharedElementEffect) {\n sharedElementEffect.updateTiming({\n duration: duration instanceof CSSNumericValue ? duration.to('ms').value : duration,\n });\n effect.append(sharedElementEffect);\n this.sharedElementTransitionLayer.current?.ref.current?.showModal();\n }\n\n this.animation.effect = effect;\n\n this.animation.play();\n this.onTransitionStart();\n\n this.animation.oncancel = () => {\n this.sharedElementTransitionLayer.current?.ref.current?.close();\n this.onTransitionCancel();\n this.animation.effect = null;\n };\n this.animation.finished.then(() => {\n this.animation.commitStyles();\n this.onTransitionEnd();\n this.sharedElementTransitionLayer.current?.ref.current?.close();\n this.animation.effect = null;\n });\n\n return this.animation;\n }\n\n render() {\n return (\n <ScreenTransitionLayerContext.Provider value={this}>\n <SharedElementTransitionLayer\n ref={this.sharedElementTransitionLayer}\n navigation={this.props.navigation}\n direction={this.animation.playbackRate > 0 ? 'forwards' : 'backwards'}\n />\n <div\n className=\"screen-transition-layer\"\n style={{\n width: '100%',\n height: '100%',\n display: 'grid',\n contain: 'layout',\n isolation: 'isolate',\n '--motion-progress': this.state.progress,\n } as React.CSSProperties}\n >\n <MotionContext.Provider value={this.state.progress}>\n {this.props.children}\n </MotionContext.Provider>\n </div>\n </ScreenTransitionLayerContext.Provider>\n );\n }\n}","import { NavigationBase } from './NavigationBase';\nimport { ScreenTransitionLayer } from './ScreenTransitionLayer';\nimport {\n ScreenChild,\n RouterBaseEventMap,\n RouterHTMLElement,\n isLazyExoticComponent,\n isValidScreenChild\n} from './common/types';\nimport { NestedRouterContext, RouterContext } from './RouterContext';\nimport { dispatchEvent, matchRoute, resolveBaseURLFromPattern } from './common/utils';\nimport { Component, createRef, isValidElement, Children } from 'react';\nimport { ScreenBase, ScreenBaseConfig } from './ScreenBase';\nimport { LoadEvent } from './common/events';\n\ntype ScreenType<T> = T extends ScreenChild<infer S> | ScreenChild<infer S>[] ? S : never;\n\nexport interface RouterBaseConfig {\n screenConfig?: ScreenBaseConfig;\n basePath?: string;\n}\n\nexport interface RouterBaseProps<S extends ScreenBase = ScreenBase> {\n id?: string;\n config?: RouterBaseConfig;\n children: ScreenChild<S> | ScreenChild<S>[];\n}\n\nexport interface RouterBaseState {}\n\nexport abstract class RouterBase<P extends RouterBaseProps = RouterBaseProps, S extends RouterBaseState = RouterBaseState, E extends RouterBaseEventMap = RouterBaseEventMap> extends Component<P, S> {\n protected readonly ref = createRef<RouterHTMLElement<E>>();\n protected screenTransitionLayer = createRef<ScreenTransitionLayer>();\n public abstract readonly navigation: NavigationBase;\n public readonly parent: RouterBase | null = null;\n #child: WeakRef<RouterBase> | null = null;\n private loadDispatched = false;\n private hasUAVisualTransition = false;\n public readonly parentScreen: ScreenBase | null = null;\n private static rootRouterRef: WeakRef<RouterBase> | null = null;\n static readonly contextType = NestedRouterContext;\n declare context: React.ContextType<typeof NestedRouterContext>;\n\n constructor(props: P, context: React.ContextType<typeof NestedRouterContext>) {\n super(props);\n\n this.parentScreen = context?.parentScreen ?? null;\n this.parent = context?.parentRouter ?? null;\n if (this.parent) {\n this.parent.child = this;\n }\n if (this.isRoot) {\n RouterBase.rootRouterRef = new WeakRef(this);\n }\n }\n\n componentDidMount() {\n if (this.isRoot) {\n window.navigation.addEventListener('navigate', this.handleNavigationDispatch);\n }\n\n if (!this.loadDispatched) {\n window.navigation.dispatchEvent(new LoadEvent());\n this.loadDispatched = true;\n }\n }\n\n componentWillUnmount() {\n if (this.isRoot) {\n window.navigation.removeEventListener('navigate', this.handleNavigationDispatch);\n }\n }\n\n private handleNavigationDispatch = (e: NavigateEvent) => {\n const activeRouters = [...this.#activeRoutersIter()];\n // travel down router tree to find a router that can intercept\n const interceptor = activeRouters.findLast(router => router.canIntercept(e));\n if (interceptor) {\n interceptor.intercept(e);\n this.hasUAVisualTransition = e.hasUAVisualTransition;\n }\n };\n\n *#activeRoutersIter() {\n let router: RouterBase | null = this;\n while (router) {\n yield router;\n router = router.child;\n }\n }\n\n getRouterById(routerId: string, target?: RouterBase): RouterBase | null {\n const router = target ?? RouterBase.rootRouterRef?.deref();\n if (router!.id === routerId) {\n return router ?? null;\n } else if (router?.child) {\n return this.getRouterById(routerId, router!.child);\n } else {\n return null;\n }\n }\n\n dispatchEvent(event: Event) {\n const ref = this.ref.current ?? undefined;\n return dispatchEvent(event, ref);\n }\n\n addEventListener<K extends keyof E>(type: K, listener: (this: RouterHTMLElement<E>, ev: E[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void {\n return this.ref.current?.addEventListener(type, listener, options);\n }\n\n removeEventListener<K extends keyof E>(type: K, listener: (this: RouterHTMLElement<E>, ev: E[K]) => any, options?: boolean | EventListenerOptions | undefined): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions) {\n return this.ref.current?.removeEventListener(type, listener, options);\n }\n\n protected screenChildFromPathname(pathname: string) {\n for (const child of Children.toArray(this.props.children)) {\n if (!isValidScreenChild<ScreenType<P['children']>>(child)) continue;\n const matchInfo = matchRoute(\n child.props.path,\n pathname,\n this.baseURLPattern.pathname,\n child.props.caseSensitive\n );\n if (matchInfo)\n return {\n child ,\n matchInfo,\n };\n }\n\n return null;\n }\n\n protected preloadScreen(screen: ScreenChild) {\n const config = screen.props.config;\n const preloadTasks = [];\n if (isLazyExoticComponent(screen.props.component))\n preloadTasks.push(screen.props.component.load());\n if (isLazyExoticComponent(config?.header?.component))\n preloadTasks.push(config?.header?.component.load());\n if (isLazyExoticComponent(config?.footer?.component))\n preloadTasks.push(config?.footer?.component.load());\n\n return Promise.all(preloadTasks).then(() => { return; });\n }\n\n get id(): string {\n if (this.props.id) return this.props.id;\n const prefix = this.parent?.id;\n const id = this.parentScreen?.id ?? 'root';\n return [prefix, id].filter(Boolean).join('-');\n }\n\n get isRoot() {\n return !this.parent;\n }\n\n get baseURL() {\n const pathname = this.isRoot ? window.location.pathname : this.parentScreen?.resolvedPathname!;\n const pattern = this.baseURLPattern.pathname;\n\n return resolveBaseURLFromPattern(pattern, pathname)!;\n }\n\n get baseURLPattern() {\n let baseURL = window.location.origin + '/';\n let basePath = this.props.config?.basePath;\n if (!basePath) {\n if (this.isRoot) {\n basePath = '/';\n } else {\n basePath = '.';\n }\n }\n\n if (this.parent && this.parentScreen) {\n const { resolvedPathname = window.location.pathname, path } = this.parentScreen;\n const parentBaseURL = this.parent.baseURL?.href;\n const pattern = new URLPattern({ baseURL: parentBaseURL, pathname: path });\n baseURL = resolveBaseURLFromPattern(\n pattern.pathname,\n resolvedPathname\n )!.href;\n }\n\n return new URLPattern({ baseURL, pathname: basePath });\n }\n\n get pathPatterns() {\n return Children.map(this.props.children, (child) => {\n return { pattern: child.props.path, caseSensitive: Boolean(child.props.caseSensitive) };\n });\n }\n\n get mounted() {\n return Boolean(this.ref.current);\n }\n\n get child() {\n return this.#child?.deref() ?? null;\n }\n\n set child(child: RouterBase | null) {\n const currentChildRouter = this.#child?.deref();\n if (\n currentChildRouter\n && child?.id !== currentChildRouter.id\n && child?.parentScreen?.id === currentChildRouter.parentScreen?.id\n && currentChildRouter.mounted\n ) {\n throw new Error('It looks like you have two navigators at the same level. Try simplifying your navigation structure by using a nested router instead.');\n }\n if (child)\n this.#child = new WeakRef(child);\n else\n this.#child = null;\n }\n\n protected abstract canIntercept(navigateEvent: NavigateEvent): boolean;\n protected abstract shouldIntercept(navigateEvent: NavigateEvent): boolean;\n protected abstract intercept(navigateEvent: NavigateEvent): void;\n protected abstract get screens(): P['children'];\n\n render() {\n if (!this.navigation) return;\n return (\n <div\n id={this.id}\n className=\"react-motion-router\"\n style={{ width: '100%', height: '100%' }}\n ref={this.ref}\n >\n <RouterContext.Provider value={this}>\n <ScreenTransitionLayer\n ref={this.screenTransitionLayer}\n navigation={this.navigation}\n hasUAVisualTransition={this.hasUAVisualTransition}\n >\n {this.screens}\n </ScreenTransitionLayer>\n </RouterContext.Provider>\n </div>\n );\n }\n}","import { MetaKey, MetaType, MetaTypeKey } from \"./common/types\";\n\nexport class MetaData {\n #map = new Map<MetaKey, string | undefined>();\n private mutationObserver: MutationObserver;\n\n constructor() {\n this.mutationObserver = new MutationObserver(this.observeMutations.bind(this));\n const {head} = document;\n this.mutationObserver.observe(head, {\n childList: true\n });\n\n Array.from(head.querySelectorAll('meta')).forEach(node => {\n this.mutationObserver.observe(node, {\n attributes: true\n });\n });\n\n Array.from(head.querySelectorAll('meta')).forEach(this.metaDataFromNode.bind(this));\n }\n\n get(key: string | MetaType) {\n const metaKey = this.getMetaKey(key);\n\n const metaContent = this.#map.get(metaKey);\n if (!metaContent) return undefined;\n\n let content: string | [string, string][];\n if (metaContent.includes(',') && metaContent.includes('=')) {\n content = metaContent.split(/,\\s*/).map(keyVal => keyVal.split('=') as [string, string]);\n } else {\n content = metaContent;\n }\n\n return content;\n }\n\n set(key: string | MetaType, content?: string | [string, string][]) {\n const metaKey = this.getMetaKey(key);\n const metaContent = this.getMetaContent(content);\n\n this.#map.set(metaKey, metaContent);\n this.updateMetaElement(metaKey, metaContent);\n }\n\n has(key: string | MetaType) {\n const metaKey = this.getMetaKey(key);\n\n return this.#map.has(metaKey);\n }\n\n delete(key: string | MetaType) {\n const metaKey = this.getMetaKey(key);\n\n this.#map.delete(metaKey);\n document.head.querySelector(`meta[${metaKey}]`)?.remove();\n }\n\n clear() {\n document.head.querySelectorAll('meta').forEach(node => node.remove());\n }\n\n entries() {\n return this.#map.entries();\n }\n\n [Symbol.iterator]() {\n return this.entries();\n }\n\n get size() {\n return this.#map.size;\n }\n \n private observeMutations(mutations: MutationRecord[]) {\n for (const mutation of mutations) {\n if (mutation.type === 'attributes') {\n const node = mutation.target;\n\n this.metaDataFromNode(node as HTMLMetaElement);\n }\n\n if (mutation.type !== 'childList') return;\n\n mutation.removedNodes.forEach((node) => {\n if (node.nodeName === 'META') {\n const [type] = Array.from((node as HTMLMetaElement).attributes).filter(attribute => attribute.nodeName !== \"content\");\n const metaType: MetaType = [type.nodeName as MetaTypeKey, type.value];\n\n const key = metaType.join('=') as MetaKey;\n if (this.#map.has(key)) {\n this.#map.delete(key);\n }\n }\n });\n mutation.addedNodes.forEach(node => {\n if (node.nodeName === 'META') {\n this.metaDataFromNode(node as HTMLMetaElement);\n }\n });\n }\n }\n\n private metaDataFromNode(node: HTMLMetaElement) {\n const [type] = Array.from((node as HTMLMetaElement).attributes).filter(attribute => attribute.nodeName !== \"content\");\n const [content] = Array.from((node as HTMLMetaElement).attributes).filter(attribute => attribute.nodeName === \"content\");\n const metaType: MetaType = [type.nodeName as MetaTypeKey, type.value];\n\n const key = metaType.join('=') as MetaKey;\n this.#map.set(key, content?.value);\n }\n\n private getMetaKey(key: string | MetaType) {\n let metaKey: MetaKey;\n if (typeof key === \"string\") {\n metaKey = `name=${key}` as MetaKey;\n } else {\n metaKey = key.join('=') as MetaKey;\n }\n\n return metaKey;\n }\n\n private getMetaContent(content: string | [string, string][] | undefined) {\n if (!content) return undefined;\n\n let metaContent: string;\n if (typeof content === \"string\") {\n metaContent = content;\n } else {\n metaContent = content.map(contentTuple => contentTuple.join('=')).join(', ');\n }\n\n return metaContent;\n }\n\n private updateMetaElement(key: MetaKey, content?: string) {\n const meta = document.querySelector(`meta[${key}]`) || document.createElement('meta');\n const metaType = key.split('=') as MetaType;\n\n meta.setAttribute(...metaType);\n if (content) meta.setAttribute('content', content);\n else meta.removeAttribute('content');\n\n if (!meta.parentElement) {\n document.head.appendChild(meta);\n }\n }\n}","import { RouterHTMLElement, RouterBaseEventMap } from \"./common/types\";\nimport { MetaData } from \"./MetaData\";\nimport { RouterBase } from \"./RouterBase\";\n\nexport abstract class NavigationBase<E extends RouterBaseEventMap = RouterBaseEventMap> {\n protected abstract readonly router: RouterBase;\n private static rootNavigatorRef: WeakRef<NavigationBase> | null = null;\n public readonly metaData = new MetaData();\n\n constructor() {\n const rootNavigator = NavigationBase.rootNavigatorRef?.deref();\n if (!rootNavigator || !rootNavigator.isInDocument)\n NavigationBase.rootNavigatorRef = new WeakRef(this);\n }\n\n addEventListener<K extends keyof E>(type: K, listener: (this: RouterHTMLElement<E>, ev: E[K]) => any, options?: boolean | AddEventListenerOptions): () => void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): () => void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): () => void {\n this.router.addEventListener(type, listener, options);\n return () => this.router.removeEventListener(type, listener, options);\n }\n\n removeEventListener<K extends keyof E>(type: K, listener: (this: RouterHTMLElement<E>, ev: E[K]) => any, options?: boolean | EventListenerOptions | undefined): void\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void {\n return this.router.removeEventListener(type, listener, options);\n }\n\n dispatchEvent(event: Event) {\n return this.router.dispatchEvent?.(event);\n }\n\n get parent(): NavigationBase | null {\n return this.router.parent?.navigation ?? null;\n }\n\n get routerId() {\n return this.router.id;\n }\n\n get baseURL() {\n return this.router.baseURL;\n }\n\n get baseURLPattern() {\n return this.router.baseURLPattern;\n }\n\n public getNavigatorById(routerId: string) {\n return this.router.getRouterById(routerId)?.navigation ?? null;\n }\n\n private get isInDocument() {\n return Boolean(document.getElementById(`${this.routerId}`));\n }\n}","import { useCallback, useContext, useDebugValue, useEffect, useRef } from 'react';\nimport { MotionContext } from '../MotionContext';\nimport { NavigationBase } from '../NavigationBase';\nimport { RouterContext } from '../RouterContext';\nimport { RoutePropContext } from '../RoutePropContext';\nimport { RouterBase } from '../RouterBase';\nimport { RoutePropBase } from './types';\n\nexport function useNavigationBase<T extends NavigationBase = NavigationBase>() {\n const router = useContext(RouterContext);\n if (router) {\n return router.navigation as T;\n } else {\n throw new Error('Router is null. You may be trying to call useNavigation outside a Router.');\n }\n}\n\nexport function useRouterBase<T extends RouterBase = RouterBase>() {\n return useContext(RouterContext) as T;\n}\n\nexport function useMotion() {\n useDebugValue('Motion');\n return useContext(MotionContext);\n}\n\nexport function useRouteBase<R extends RoutePropBase>() {\n const routeProp = useContext(RoutePropContext);\n if (routeProp) {\n return routeProp as R;\n } else {\n throw new Error('Router is null. You may be trying to call useRoute outside a Router.');\n }\n}\n\nexport function useParamsBase<K extends string, S>(key: K, initialParams: S | (() => S)): [S, React.Dispatch<React.SetStateAction<S>>] {\n const route = useRouteBase();\n const initial = initialParams instanceof Function ? initialParams() : initialParams;\n\n const routeRef = useRef(route);\n useEffect(() => {\n routeRef.current = route;\n }, [route]);\n\n const setParam = useCallback((param: S | ((prevState: S) => S)) => {\n const { params, setParams } = routeRef.current;\n if (param instanceof Function)\n param = param(params[key] ?? initial);\n setParams({ [key]: param });\n }, [initial, key]);\n\n const param = route.params[key];\n\n return [param ?? initial, setParam] as const;\n}","export const MAX_Z_INDEX = 2147483647;\nexport const MAX_PROGRESS = 100;\nexport const MIN_PROGRESS = 0;\nexport const MIN_NORM_PROGRESS = 0;\nexport const MAX_NORM_PROGRESS = 1;"],"names":["SharedElementSceneContext","createContext","SharedElement","Component","createRef","prevProps","deepClone","jsx","resolveBaseURLFromPattern","pattern","pathname","origin","baseURLMatch","nestedPathnameGroup","key","group","matchRoute","pathnamePattern","baseURLPattern","caseSensitive","baseURL","match","params","includesRoute","pathnamePatterns","dispatchEvent","event","target","resolve","lazy","factory","ReactLazy","isNavigationSupported","isURLPatternSupported","polyfillURLPattern","URLPattern","polyfillNavigation","applyPolyfill","PromiseAllDynamic","values","awaited","value","toCamelCase","g","cloneAndInject","element","injectProps","cloneElement","TransitionStartEvent","TransitionCancelEvent","TransitionEndEvent","MotionProgressStartEvent","MotionProgressEvent","progress","MotionProgressEndEvent","LoadEvent","#navigationType","#userInitiated","#canIntercept","#hashChange","#formData","#downloadRequest","#destination","#signal","#abortable","#intercepted","#thenables","#transition","currentEntry","#onNavigate","e","options","finish","thenable","ScreenTransitionLayerContext","ScreenTransitionProvider","animationEffectFactory","animation","direction","hasUAVisualTransition","timeline","playbackRate","index","exiting","ref","screens","screen","zIndex","Element","inert","NestedRouterContext","RouterContext","RoutePropContext","SharedElementScene","id","node","_id","xRatio","yRatio","ScreenBase","#transitionProvider","props","context","newParams","newConfig","config","isLazyExoticComponent","signal","HeaderComponent","FooterComponent","result","navigation","route","preloading","routeProp","jsxs","Suspense","ComponentWithRouteProps","component","isNativeLazyExoticComponent","isValidElement","Fragment","isValidScreenChild","isStylableElement","Lt","jt","o","r","t","V","wt","d","l","i","m","ot","St","qt","ft","At","Q","u","Ft","n","s","a","y","b","st","bt","It","Bt","c","R","Xt","Dt","M","Pt","Wt","Kt","$t","xt","zt","x","K","v","G","tt","mt","$","at","lt","Y","z","dt","Ut","Ht","w","C","E","A","I","Mt","f","D","et","T","k","N","h","p","S","B","j","it","O","ut","kt","H","rt","X","Z","pt","Ot","Tt","_t","yt","Gt","F","W","nt","ct","Rt","_","q","P","L","ht","gt","Et","Ct","Nt","J","vt","Vt","Zt","SharedElementTransitionLayer","#outgoingScreen","#incomingScreen","outgoingScreen","incomingScreen","styleList","computedStyles","computedStyle","transformedKey","srcElement","priority","start","end","keyframeEffects","transitionType","startTransform","endTransform","ParallelEffect","currentScene","nextScene","parallelEffects","endRect","startRect","endClone","startClone","onFinish","MotionContext","ScreenTransitionLayer","Animation","#direction","#screens","effect","sharedElementEffect","duration","RouterBase","#child","interceptor","#activeRoutersIter","router","routerId","type","listener","child","Children","matchInfo","preloadTasks","prefix","basePath","resolvedPathname","path","parentBaseURL","currentChildRouter","MetaData","#map","head","metaKey","metaContent","content","keyVal","mutations","mutation","attribute","contentTuple","meta","metaType","NavigationBase","rootNavigator","useNavigationBase","useContext","useRouterBase","useMotion","useDebugValue","useRouteBase","useParamsBase","initialParams","initial","routeRef","useRef","useEffect","setParam","useCallback","param","setParams","MAX_Z_INDEX","MAX_PROGRESS","MIN_PROGRESS","MIN_NORM_PROGRESS","MAX_NORM_PROGRESS"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-motion-router/core",
3
- "version": "2.0.0-beta.sha-7a69b61",
3
+ "version": "2.0.0-beta.sha-6a48afe",
4
4
  "main": "build/index.js",
5
5
  "types": "build/index.d.ts",
6
6
  "type": "module",
@@ -47,5 +47,5 @@
47
47
  "csstype": "^3.1.3",
48
48
  "playwright": "^1.49.0"
49
49
  },
50
- "gitHead": "7a69b61cb16c6dffe6e6e000f954094b156a71ea"
50
+ "gitHead": "6a48afe5e0af64909c6af5232f4ff8120a2e7295"
51
51
  }