@react-motion-router/stack 2.0.0-beta.sha-c1cce91 → 2.0.0-beta.sha-6f2a71f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/Screen.d.ts +5 -5
- package/build/index.js +14 -10
- package/build/index.js.map +1 -1
- package/package.json +2 -2
package/build/Screen.d.ts
CHANGED
|
@@ -26,8 +26,8 @@ export declare class Screen extends ScreenBase<ScreenProps, ScreenState, RoutePr
|
|
|
26
26
|
static getDerivedStateFromProps(props: ScreenProps): {
|
|
27
27
|
elementType: string;
|
|
28
28
|
};
|
|
29
|
-
protected setParams(
|
|
30
|
-
protected setConfig(
|
|
29
|
+
protected setParams(newParams: PlainObject): void;
|
|
30
|
+
protected setConfig(newConfig: NonNullable<ScreenProps["config"]>): void;
|
|
31
31
|
protected get router(): Router;
|
|
32
32
|
get internalProps(): ScreenInternalProps;
|
|
33
33
|
get resolvedPathname(): string;
|
|
@@ -61,8 +61,8 @@ export declare class Screen extends ScreenBase<ScreenProps, ScreenState, RoutePr
|
|
|
61
61
|
gestureDisabled?: boolean;
|
|
62
62
|
};
|
|
63
63
|
protected get routeProp(): {
|
|
64
|
-
setParams: (
|
|
65
|
-
setConfig: (
|
|
64
|
+
setParams: (newParams: PlainObject) => void;
|
|
65
|
+
setConfig: (newConfig: NonNullable<ScreenProps["config"]>) => void;
|
|
66
66
|
path: string;
|
|
67
67
|
resolvedPathname: string;
|
|
68
68
|
focused: boolean;
|
|
@@ -94,7 +94,7 @@ export declare class Screen extends ScreenBase<ScreenProps, ScreenState, RoutePr
|
|
|
94
94
|
gestureDisabled?: boolean;
|
|
95
95
|
};
|
|
96
96
|
};
|
|
97
|
-
protected setHistoryState(newState: PlainObject): void;
|
|
97
|
+
protected setHistoryState(newState: PlainObject | ((prevState: PlainObject) => PlainObject)): void;
|
|
98
98
|
private onClickOutside;
|
|
99
99
|
onEnter(signal: AbortSignal): Promise<void>;
|
|
100
100
|
onExited(signal: AbortSignal): Promise<void>;
|
package/build/index.js
CHANGED
|
@@ -1296,13 +1296,13 @@ class Screen extends core_namespaceObject.ScreenBase {
|
|
|
1296
1296
|
else
|
|
1297
1297
|
return { elementType: "div" };
|
|
1298
1298
|
}
|
|
1299
|
-
setParams(
|
|
1300
|
-
super.setParams(
|
|
1301
|
-
this.setHistoryState({ params });
|
|
1299
|
+
setParams(newParams) {
|
|
1300
|
+
super.setParams(newParams);
|
|
1301
|
+
this.setHistoryState(({ params }) => ({ params: { ...params, ...newParams } }));
|
|
1302
1302
|
}
|
|
1303
|
-
setConfig(
|
|
1304
|
-
super.setConfig(
|
|
1305
|
-
this.setHistoryState({ config });
|
|
1303
|
+
setConfig(newConfig) {
|
|
1304
|
+
super.setConfig(newConfig);
|
|
1305
|
+
this.setHistoryState(({ config }) => ({ config: { ...config, ...newConfig } }));
|
|
1306
1306
|
}
|
|
1307
1307
|
get router() {
|
|
1308
1308
|
return this.context;
|
|
@@ -1362,8 +1362,12 @@ class Screen extends core_namespaceObject.ScreenBase {
|
|
|
1362
1362
|
setHistoryState(newState) {
|
|
1363
1363
|
if (!this.state.focused)
|
|
1364
1364
|
return;
|
|
1365
|
+
const prevState = this.#historyEntry.getState() ?? {};
|
|
1366
|
+
if (newState instanceof Function) {
|
|
1367
|
+
newState = newState(prevState);
|
|
1368
|
+
}
|
|
1365
1369
|
const state = {
|
|
1366
|
-
...
|
|
1370
|
+
...prevState ?? {},
|
|
1367
1371
|
...newState
|
|
1368
1372
|
};
|
|
1369
1373
|
window.navigation.updateCurrentEntry({ state });
|
|
@@ -1946,15 +1950,15 @@ var jsx_runtime = __webpack_require__(322);
|
|
|
1946
1950
|
|
|
1947
1951
|
|
|
1948
1952
|
function useNavigation() {
|
|
1949
|
-
(0,external_react_.useDebugValue)("
|
|
1953
|
+
(0,external_react_.useDebugValue)("Stack.Navigation");
|
|
1950
1954
|
return (0,core_namespaceObject.useNavigationBase)();
|
|
1951
1955
|
}
|
|
1952
1956
|
function useRouter() {
|
|
1953
|
-
(0,external_react_.useDebugValue)("
|
|
1957
|
+
(0,external_react_.useDebugValue)("Stack.Router");
|
|
1954
1958
|
return (0,core_namespaceObject.useRouterBase)();
|
|
1955
1959
|
}
|
|
1956
1960
|
function useRoute() {
|
|
1957
|
-
(0,external_react_.useDebugValue)("
|
|
1961
|
+
(0,external_react_.useDebugValue)("Stack.Route");
|
|
1958
1962
|
return (0,core_namespaceObject.useRouteBase)();
|
|
1959
1963
|
}
|
|
1960
1964
|
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACa,MAAM,mBAAO,CAAC,GAAO,6KAA6K;AAC/M,kBAAkB,UAAU,eAAe,qBAAqB,6BAA6B,0BAA0B,0DAA0D,4EAA4E,OAAO,wDAAwD,yBAAgB,GAAG,WAAW,GAAG,yBAAY;;;;;;;;ACV5V;;AAEb,IAAI,IAAqC;AACzC,EAAE,yCAAqE;AACvE,EAAE,KAAK,EAEN;;;;;;;;ACNY;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uCAAuC,mBAAO,CAAC,GAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;ACZa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oDAAoD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;AC7Ca;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uCAAuC,mBAAO,CAAC,GAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;ACda;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,GAAG,qBAAqB;AAC3C,uCAAuC,mBAAO,CAAC,GAAgB;AAC/D;AACA;AACA;AACA;AACA,CAAC,sDAAsD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;;;;;;;ACvDa;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,uBAAuB;AAC/C,uCAAuC,mBAAO,CAAC,GAAgB;AAC/D;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;AClDa;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB,GAAG,wBAAwB;AACjD,uCAAuC,mBAAO,CAAC,GAAgB;AAC/D;AACA;AACA;AACA;AACA,CAAC,4DAA4D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;;;;;;;ACzDa;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,uBAAuB;AAC/C,uCAAuC,mBAAO,CAAC,GAAgB;AAC/D;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;AChDa;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uCAAuC,mBAAO,CAAC,GAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;ACba;AACb;AACA;AACA,mCAAmC,oCAAoC,gBAAgB;AACvF,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB,GAAG,mBAAmB,GAAG,wBAAwB,GAAG,qBAAqB,GAAG,kBAAkB,GAAG,uBAAuB,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,qBAAqB,GAAG,kBAAkB,GAAG,uBAAuB,GAAG,sBAAsB,GAAG,sBAAsB,GAAG,oBAAoB,GAAG,gBAAgB;AAClX,uCAAuC,mBAAO,CAAC,GAAyB;AACxE,oBAAoB;AACpB,yCAAyC,mBAAO,CAAC,GAA2B;AAC5E,sBAAsB;AACtB,mCAAmC,mBAAO,CAAC,EAAqB;AAChE,gBAAgB;AAChB,yCAAyC,mBAAO,CAAC,GAA2B;AAC5E,sBAAsB;AACtB,kCAAkC,mBAAO,CAAC,GAAuB;AACjE,kBAAkB;AAClB,iDAAgD,EAAE,qCAAqC,sCAAsC,EAAC;AAC9H,mDAAkD,EAAE,qCAAqC,wCAAwC,EAAC;AAClI,gCAAgC,mBAAO,CAAC,GAAqB;AAC7D,gBAAgB;AAChB,+CAA8C,EAAE,qCAAqC,kCAAkC,EAAC;AACxH,iDAAgD,EAAE,qCAAqC,oCAAoC,EAAC;AAC5H,kCAAkC,mBAAO,CAAC,GAAuB;AACjE,kBAAkB;AAClB,iDAAgD,EAAE,qCAAqC,sCAAsC,EAAC;AAC9H,mDAAkD,EAAE,qCAAqC,wCAAwC,EAAC;AAClI,mCAAmC,mBAAO,CAAC,GAAwB;AACnE,mBAAmB;AACnB,kDAAiD,EAAE,qCAAqC,wCAAwC,EAAC;AACjI,oDAAmD,EAAE,qCAAqC,0CAA0C,EAAC;AACrI,gBAAgB,mBAAO,CAAC,EAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wDAAwD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;;;;;;;AC5Va;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,YAAY,GAAG,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe;AACf;;;;;;;ACrFA,eAAe,YAAY,6BAA6B;AACxD;AACA;;;;;;SCFA;SACA;;SAEA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;;SAEA;SACA;;SAEA;SACA;SACA;;;;;UCtBA;UACA;UACA;UACA;UACA,yCAAyC,wCAAwC;UACjF;UACA;UACA;;;;;UCPA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA,eAAe,YAAY,6BAA6B;AAC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","sources":["webpack://@react-motion-router/stack/../../node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://@react-motion-router/stack/../../node_modules/react/jsx-runtime.js","webpack://@react-motion-router/stack/../../node_modules/web-gesture-events/Gestures/DoubleTapEvent.js","webpack://@react-motion-router/stack/../../node_modules/web-gesture-events/Gestures/GestureEvent.js","webpack://@react-motion-router/stack/../../node_modules/web-gesture-events/Gestures/LongPressEvent.js","webpack://@react-motion-router/stack/../../node_modules/web-gesture-events/Gestures/PanEvent.js","webpack://@react-motion-router/stack/../../node_modules/web-gesture-events/Gestures/PinchEvent.js","webpack://@react-motion-router/stack/../../node_modules/web-gesture-events/Gestures/RotateEvent.js","webpack://@react-motion-router/stack/../../node_modules/web-gesture-events/Gestures/SwipeEvent.js","webpack://@react-motion-router/stack/../../node_modules/web-gesture-events/Gestures/TapEvent.js","webpack://@react-motion-router/stack/../../node_modules/web-gesture-events/index.js","webpack://@react-motion-router/stack/../../node_modules/web-gesture-events/utils.js","webpack://@react-motion-router/stack/external module \"react\"","webpack://@react-motion-router/stack/webpack/bootstrap","webpack://@react-motion-router/stack/webpack/runtime/define property getters","webpack://@react-motion-router/stack/webpack/runtime/hasOwnProperty shorthand","webpack://@react-motion-router/stack/external module \"@react-motion-router/core\"","webpack://@react-motion-router/stack/./src/common/events.ts","webpack://@react-motion-router/stack/./src/HistoryEntry.ts","webpack://@react-motion-router/stack/./src/Navigation.ts","webpack://@react-motion-router/stack/./src/common/utils.ts","webpack://@react-motion-router/stack/./src/Screen.tsx","webpack://@react-motion-router/stack/./src/common/types.ts","webpack://@react-motion-router/stack/external module \"web-animations-extension\"","webpack://@react-motion-router/stack/./src/common/constants.ts","webpack://@react-motion-router/stack/./src/common/promise-wrapper.ts","webpack://@react-motion-router/stack/./src/Router.tsx","webpack://@react-motion-router/stack/./src/common/hooks.ts","webpack://@react-motion-router/stack/./src/Anchor.tsx","webpack://@react-motion-router/stack/./src/animation-configs/keyframe-presets.ts","webpack://@react-motion-router/stack/./src/animation-configs/keyframe-options-presets.ts","webpack://@react-motion-router/stack/./src/animation-configs/animation-presets.ts","webpack://@react-motion-router/stack/./src/GestureRegion.tsx","webpack://@react-motion-router/stack/./src/index.ts"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst GestureEvent_1 = __importDefault(require(\"./GestureEvent\"));\r\nclass DoubleTapEvent extends GestureEvent_1.default {\r\n constructor(touchEvent) {\r\n super('doubletap', touchEvent);\r\n }\r\n}\r\nexports.default = DoubleTapEvent;\r\n//# sourceMappingURL=DoubleTapEvent.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar GestureEventTypeEnum;\r\n(function (GestureEventTypeEnum) {\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"tap\"] = 0] = \"tap\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"longpress\"] = 1] = \"longpress\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"pinchstart\"] = 2] = \"pinchstart\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"pinch\"] = 3] = \"pinch\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"pinchend\"] = 4] = \"pinchend\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"rotatestart\"] = 5] = \"rotatestart\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"rotate\"] = 6] = \"rotate\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"rotateend\"] = 7] = \"rotateend\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"swipestart\"] = 8] = \"swipestart\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"swipe\"] = 9] = \"swipe\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"swipeend\"] = 10] = \"swipeend\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"panstart\"] = 11] = \"panstart\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"pan\"] = 12] = \"pan\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"panend\"] = 13] = \"panend\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"doubletap\"] = 14] = \"doubletap\";\r\n})(GestureEventTypeEnum || (GestureEventTypeEnum = {}));\r\nclass GestureEvent extends TouchEvent {\r\n constructor(type, touchEvent) {\r\n super(type, {\r\n touches: Array.from(touchEvent.touches),\r\n targetTouches: Array.from(touchEvent.targetTouches),\r\n changedTouches: Array.from(touchEvent.changedTouches),\r\n ctrlKey: touchEvent.ctrlKey,\r\n shiftKey: touchEvent.shiftKey,\r\n altKey: touchEvent.altKey,\r\n metaKey: touchEvent.metaKey,\r\n bubbles: true,\r\n cancelable: true\r\n });\r\n if (type.includes(\"end\") || touchEvent.type.includes(\"end\")) {\r\n this.gestureTarget = touchEvent.changedTouches[0].target;\r\n this.x = touchEvent.changedTouches[0].clientX;\r\n this.y = touchEvent.changedTouches[0].clientY;\r\n return;\r\n }\r\n this.gestureTarget = touchEvent.touches[0].target;\r\n this.x = touchEvent.touches[0].clientX;\r\n this.y = touchEvent.touches[0].clientY;\r\n }\r\n}\r\nexports.default = GestureEvent;\r\n//# sourceMappingURL=GestureEvent.js.map","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst GestureEvent_1 = __importDefault(require(\"./GestureEvent\"));\r\nclass LongPressEvent extends GestureEvent_1.default {\r\n constructor(touchEvent, duration) {\r\n super('longpress', touchEvent);\r\n this.duration = 0;\r\n this.duration = duration;\r\n }\r\n}\r\nexports.default = LongPressEvent;\r\n//# sourceMappingURL=LongPressEvent.js.map","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PanEndEvent = exports.PanStartEvent = void 0;\r\nconst GestureEvent_1 = __importDefault(require(\"./GestureEvent\"));\r\nvar PanLifecycleStateEnum;\r\n(function (PanLifecycleStateEnum) {\r\n PanLifecycleStateEnum[PanLifecycleStateEnum[\"start\"] = 0] = \"start\";\r\n PanLifecycleStateEnum[PanLifecycleStateEnum[\"end\"] = 1] = \"end\";\r\n})(PanLifecycleStateEnum || (PanLifecycleStateEnum = {}));\r\nclass PanEventBase extends GestureEvent_1.default {\r\n constructor(touchEvent, panData, state) {\r\n let eventType;\r\n switch (state) {\r\n case \"start\":\r\n eventType = \"panstart\";\r\n break;\r\n case \"end\":\r\n eventType = \"panend\";\r\n break;\r\n default:\r\n eventType = \"pan\";\r\n }\r\n super(eventType, touchEvent);\r\n this.velocity = panData.velocity;\r\n this.translation = {\r\n x: panData.translation.x,\r\n y: panData.translation.y,\r\n magnitude: panData.translation.magnitude,\r\n clientX: panData.translation.clientX,\r\n clientY: panData.translation.clientY,\r\n clientMagnitude: panData.translation.clientMagnitude\r\n };\r\n }\r\n}\r\nclass PanEvent extends PanEventBase {\r\n constructor(touchEvent, panData) {\r\n super(touchEvent, panData);\r\n }\r\n}\r\nexports.default = PanEvent;\r\nclass PanStartEvent extends PanEventBase {\r\n constructor(touchEvent, panData) {\r\n super(touchEvent, panData, \"start\");\r\n }\r\n}\r\nexports.PanStartEvent = PanStartEvent;\r\nclass PanEndEvent extends PanEventBase {\r\n constructor(touchEvent, panData) {\r\n super(touchEvent, panData, \"end\");\r\n }\r\n}\r\nexports.PanEndEvent = PanEndEvent;\r\n//# sourceMappingURL=PanEvent.js.map","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PinchEndEvent = exports.PinchStartEvent = void 0;\r\nconst GestureEvent_1 = __importDefault(require(\"./GestureEvent\"));\r\nvar PinchLifecycleStateEnum;\r\n(function (PinchLifecycleStateEnum) {\r\n PinchLifecycleStateEnum[PinchLifecycleStateEnum[\"start\"] = 0] = \"start\";\r\n PinchLifecycleStateEnum[PinchLifecycleStateEnum[\"end\"] = 1] = \"end\";\r\n})(PinchLifecycleStateEnum || (PinchLifecycleStateEnum = {}));\r\nclass PinchEventBase extends GestureEvent_1.default {\r\n constructor(touchEvent, pinchData, state) {\r\n let eventType;\r\n switch (state) {\r\n case \"start\":\r\n eventType = \"pinchstart\";\r\n break;\r\n case \"end\":\r\n eventType = \"pinchend\";\r\n break;\r\n default:\r\n eventType = \"pinch\";\r\n }\r\n super(eventType, touchEvent);\r\n Object.defineProperty(this, 'scale', {\r\n value: pinchData.scale,\r\n writable: false\r\n });\r\n }\r\n}\r\nclass PinchEvent extends PinchEventBase {\r\n constructor(touchEvent, pinchData) {\r\n super(touchEvent, pinchData);\r\n }\r\n}\r\nexports.default = PinchEvent;\r\nclass PinchStartEvent extends PinchEventBase {\r\n constructor(touchEvent, pinchData) {\r\n super(touchEvent, pinchData, \"start\");\r\n }\r\n}\r\nexports.PinchStartEvent = PinchStartEvent;\r\nclass PinchEndEvent extends PinchEventBase {\r\n constructor(touchEvent, pinchData) {\r\n super(touchEvent, pinchData, \"end\");\r\n }\r\n}\r\nexports.PinchEndEvent = PinchEndEvent;\r\n//# sourceMappingURL=PinchEvent.js.map","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RotateEndEvent = exports.RotateStartEvent = void 0;\r\nconst GestureEvent_1 = __importDefault(require(\"./GestureEvent\"));\r\nvar RotateLifecycleStateEnum;\r\n(function (RotateLifecycleStateEnum) {\r\n RotateLifecycleStateEnum[RotateLifecycleStateEnum[\"start\"] = 0] = \"start\";\r\n RotateLifecycleStateEnum[RotateLifecycleStateEnum[\"end\"] = 1] = \"end\";\r\n})(RotateLifecycleStateEnum || (RotateLifecycleStateEnum = {}));\r\nclass RotateEventBase extends GestureEvent_1.default {\r\n constructor(touchEvent, rotationData, state) {\r\n let eventType;\r\n switch (state) {\r\n case \"start\":\r\n eventType = \"rotatestart\";\r\n break;\r\n case \"end\":\r\n eventType = \"rotateend\";\r\n break;\r\n default:\r\n eventType = \"rotate\";\r\n }\r\n super(eventType, touchEvent);\r\n this.anchor = {\r\n x: rotationData.anchor.x,\r\n y: rotationData.anchor.y,\r\n clientX: rotationData.anchor.clientX,\r\n clientY: rotationData.anchor.clientY\r\n };\r\n Object.defineProperty(this, 'rotation', {\r\n value: rotationData.rotation,\r\n writable: false\r\n });\r\n this.rotationDeg = rotationData.rotationDeg;\r\n }\r\n}\r\nclass RotateEvent extends RotateEventBase {\r\n constructor(touchEvent, rotationData) {\r\n super(touchEvent, rotationData);\r\n }\r\n}\r\nexports.default = RotateEvent;\r\nclass RotateStartEvent extends RotateEventBase {\r\n constructor(touchEvent, rotationData) {\r\n super(touchEvent, rotationData, \"start\");\r\n }\r\n}\r\nexports.RotateStartEvent = RotateStartEvent;\r\nclass RotateEndEvent extends RotateEventBase {\r\n constructor(touchEvent, rotationData) {\r\n super(touchEvent, rotationData, \"end\");\r\n }\r\n}\r\nexports.RotateEndEvent = RotateEndEvent;\r\n//# sourceMappingURL=RotateEvent.js.map","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SwipeEndEvent = exports.SwipeStartEvent = void 0;\r\nconst GestureEvent_1 = __importDefault(require(\"./GestureEvent\"));\r\nvar SwipeLifecycleStateEnum;\r\n(function (SwipeLifecycleStateEnum) {\r\n SwipeLifecycleStateEnum[SwipeLifecycleStateEnum[\"start\"] = 0] = \"start\";\r\n SwipeLifecycleStateEnum[SwipeLifecycleStateEnum[\"end\"] = 1] = \"end\";\r\n})(SwipeLifecycleStateEnum || (SwipeLifecycleStateEnum = {}));\r\nclass SwipeEventBase extends GestureEvent_1.default {\r\n constructor(touchEvent, swipeData, state) {\r\n let eventType;\r\n switch (state) {\r\n case \"start\":\r\n eventType = \"swipestart\";\r\n break;\r\n case \"end\":\r\n eventType = \"swipeend\";\r\n break;\r\n default:\r\n eventType = \"swipe\";\r\n }\r\n super(eventType, touchEvent);\r\n this.velocity = swipeData.velocity;\r\n this.direction = swipeData.direction;\r\n }\r\n}\r\nclass SwipeEvent extends SwipeEventBase {\r\n constructor(touchEvent, swipeData) {\r\n super(touchEvent, swipeData);\r\n }\r\n}\r\nexports.default = SwipeEvent;\r\nclass SwipeStartEvent extends SwipeEventBase {\r\n constructor(touchEvent, swipeData) {\r\n super(touchEvent, swipeData, \"start\");\r\n }\r\n}\r\nexports.SwipeStartEvent = SwipeStartEvent;\r\nclass SwipeEndEvent extends SwipeEventBase {\r\n constructor(touchEvent, swipeData) {\r\n super(touchEvent, swipeData, \"end\");\r\n }\r\n}\r\nexports.SwipeEndEvent = SwipeEndEvent;\r\n//# sourceMappingURL=SwipeEvent.js.map","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst GestureEvent_1 = __importDefault(require(\"./GestureEvent\"));\r\nclass TapEvent extends GestureEvent_1.default {\r\n constructor(touchEvent) {\r\n super('tap', touchEvent);\r\n this.duration = 0;\r\n }\r\n}\r\nexports.default = TapEvent;\r\n//# sourceMappingURL=TapEvent.js.map","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RotateEndEvent = exports.RotateEvent = exports.RotateStartEvent = exports.PinchEndEvent = exports.PinchEvent = exports.PinchStartEvent = exports.PanEndEvent = exports.PanEvent = exports.PanStartEvent = exports.SwipeEndEvent = exports.SwipeEvent = exports.SwipeStartEvent = exports.DoubleTapEvent = exports.LongPressEvent = exports.GestureEvent = exports.TapEvent = void 0;\r\nconst GestureEvent_1 = __importDefault(require(\"./Gestures/GestureEvent\"));\r\nexports.GestureEvent = GestureEvent_1.default;\r\nconst LongPressEvent_1 = __importDefault(require(\"./Gestures/LongPressEvent\"));\r\nexports.LongPressEvent = LongPressEvent_1.default;\r\nconst TapEvent_1 = __importDefault(require(\"./Gestures/TapEvent\"));\r\nexports.TapEvent = TapEvent_1.default;\r\nconst DoubleTapEvent_1 = __importDefault(require(\"./Gestures/DoubleTapEvent\"));\r\nexports.DoubleTapEvent = DoubleTapEvent_1.default;\r\nconst SwipeEvent_1 = __importStar(require(\"./Gestures/SwipeEvent\"));\r\nexports.SwipeEvent = SwipeEvent_1.default;\r\nObject.defineProperty(exports, \"SwipeEndEvent\", { enumerable: true, get: function () { return SwipeEvent_1.SwipeEndEvent; } });\r\nObject.defineProperty(exports, \"SwipeStartEvent\", { enumerable: true, get: function () { return SwipeEvent_1.SwipeStartEvent; } });\r\nconst PanEvent_1 = __importStar(require(\"./Gestures/PanEvent\"));\r\nexports.PanEvent = PanEvent_1.default;\r\nObject.defineProperty(exports, \"PanEndEvent\", { enumerable: true, get: function () { return PanEvent_1.PanEndEvent; } });\r\nObject.defineProperty(exports, \"PanStartEvent\", { enumerable: true, get: function () { return PanEvent_1.PanStartEvent; } });\r\nconst PinchEvent_1 = __importStar(require(\"./Gestures/PinchEvent\"));\r\nexports.PinchEvent = PinchEvent_1.default;\r\nObject.defineProperty(exports, \"PinchEndEvent\", { enumerable: true, get: function () { return PinchEvent_1.PinchEndEvent; } });\r\nObject.defineProperty(exports, \"PinchStartEvent\", { enumerable: true, get: function () { return PinchEvent_1.PinchStartEvent; } });\r\nconst RotateEvent_1 = __importStar(require(\"./Gestures/RotateEvent\"));\r\nexports.RotateEvent = RotateEvent_1.default;\r\nObject.defineProperty(exports, \"RotateEndEvent\", { enumerable: true, get: function () { return RotateEvent_1.RotateEndEvent; } });\r\nObject.defineProperty(exports, \"RotateStartEvent\", { enumerable: true, get: function () { return RotateEvent_1.RotateStartEvent; } });\r\nconst utils_1 = require(\"./utils\");\r\nvar CartesianDirectionEnum;\r\n(function (CartesianDirectionEnum) {\r\n CartesianDirectionEnum[CartesianDirectionEnum[\"right\"] = 0] = \"right\";\r\n CartesianDirectionEnum[CartesianDirectionEnum[\"up\"] = 1] = \"up\";\r\n CartesianDirectionEnum[CartesianDirectionEnum[\"left\"] = 2] = \"left\";\r\n CartesianDirectionEnum[CartesianDirectionEnum[\"down\"] = 3] = \"down\";\r\n})(CartesianDirectionEnum || (CartesianDirectionEnum = {}));\r\nclass GestureProvider {\r\n constructor() {\r\n this.touchStart = new TouchEvent('touchstart') || {};\r\n this.touchMove = new TouchEvent('touchmove') || {};\r\n this.touchEnd = new TouchEvent('touchend') || {};\r\n this.touchCancel = new TouchEvent('touchcancel') || {};\r\n this.velocity = 0;\r\n this.dxDy = new utils_1.Vec2(0, 0);\r\n this.scale = 1;\r\n this.rotation = 0;\r\n this.rotationDeg = 0;\r\n this.anchor = new utils_1.Vec2(0, 0);\r\n this.octant = 0;\r\n this.isPanning = false;\r\n this.isPinching = false;\r\n this.isSwiping = false;\r\n this.isRotating = false;\r\n this.touchStartTime = 0;\r\n this.touchEndTime = 0;\r\n this.lastTouchTime = 0;\r\n this.taps = 0;\r\n this.scaleBase = 0;\r\n this.touchMoved = false;\r\n this.touchDown = false;\r\n this.shouldFire = false;\r\n this.pointers = 0;\r\n this.isLongPress = false;\r\n this.longPressTimeout = 0;\r\n this.touchStartListener = this.onTouchStart.bind(this);\r\n this.touchMoveListener = this.onTouchMove.bind(this);\r\n this.touchEndListener = this.onTouchEnd.bind(this);\r\n this.touchCancelListener = this.onTouchCancel.bind(this);\r\n this.currentTarget = window;\r\n this.config = {\r\n longPressDuration: 500,\r\n tapDelay: 500,\r\n minPointers: 1,\r\n numberOfTaps: 0\r\n };\r\n if (!GestureProvider.listening) {\r\n if (TouchEvent)\r\n window.addEventListener('touchstart', this.touchStartListener, true);\r\n GestureProvider.listening = true;\r\n }\r\n }\r\n bind(target) {\r\n this.unbind(this.currentTarget);\r\n target.addEventListener('touchmove', this.touchMoveListener, true);\r\n target.addEventListener('touchend', this.touchEndListener, true);\r\n target.addEventListener('touchcancel', this.touchCancelListener, true);\r\n this.currentTarget = target;\r\n }\r\n unbind(target) {\r\n target.removeEventListener('touchmove', this.touchMoveListener);\r\n target.removeEventListener('touchend', this.touchEndListener);\r\n target.removeEventListener('touchcancel', this.touchCancelListener);\r\n }\r\n clean() {\r\n this.touchMoved = false;\r\n this.touchStartTime = 0;\r\n this.touchDown = false;\r\n this.scaleBase = 0;\r\n if (this.longPressTimeout && !this.isLongPress) {\r\n clearTimeout(this.longPressTimeout);\r\n this.longPressTimeout = 0;\r\n }\r\n this.isLongPress = false;\r\n }\r\n onPointerLeave(touchEnd) {\r\n if (!touchEnd.touches.length) {\r\n if (this.isSwiping) {\r\n const swipeEndEvent = new SwipeEvent_1.SwipeEndEvent(touchEnd, {\r\n velocity: this.velocity,\r\n direction: CartesianDirectionEnum[(0, utils_1.closest)(this.octant, [0, 1, 2, 3])]\r\n });\r\n this.dispatchEvent(swipeEndEvent);\r\n this.isSwiping = false;\r\n }\r\n if (this.isPanning) {\r\n const panEndEvent = new PanEvent_1.PanEndEvent(touchEnd, {\r\n translation: this.dxDy,\r\n velocity: this.velocity\r\n });\r\n this.dispatchEvent(panEndEvent);\r\n this.isPanning = false;\r\n }\r\n }\r\n if (touchEnd.touches.length === 1) {\r\n this.scaleBase = 0;\r\n if (this.isPinching) {\r\n const pinchEndEvent = new PinchEvent_1.PinchEndEvent(touchEnd, {\r\n scale: this.scale\r\n });\r\n this.dispatchEvent(pinchEndEvent);\r\n this.isPinching = false;\r\n }\r\n if (this.isRotating) {\r\n const rotateEndEvent = new RotateEvent_1.RotateEndEvent(touchEnd, {\r\n rotation: this.rotation,\r\n rotationDeg: this.rotationDeg,\r\n anchor: this.anchor\r\n });\r\n this.dispatchEvent(rotateEndEvent);\r\n this.isRotating = false;\r\n }\r\n }\r\n }\r\n dispatchEvent(gestureEvent) {\r\n queueMicrotask(() => {\r\n this.currentTarget.dispatchEvent(gestureEvent);\r\n });\r\n }\r\n onTouchStart(touchStart) {\r\n if (this.currentTarget !== touchStart.touches[0].target) {\r\n this.clean();\r\n this.unbind(this.currentTarget);\r\n this.pointers = this.touchEnd.touches.length;\r\n this.taps = 0;\r\n }\r\n this.touchStart = touchStart;\r\n const minPointers = parseInt(touchStart.touches[0].target.dataset.minpointers || '0') || this.config.minPointers;\r\n if (this.touchStart.touches.length < minPointers) {\r\n this.shouldFire = false;\r\n return;\r\n }\r\n this.shouldFire = true;\r\n this.touchStartTime = touchStart.timeStamp;\r\n this.touchDown = true;\r\n if (!this.pointers)\r\n this.bind(touchStart.touches[0].target);\r\n this.pointers = this.touchStart.touches.length;\r\n const longPressDuration = parseFloat(this.currentTarget.dataset.longpressduration || '0') || this.config.longPressDuration;\r\n if (!this.longPressTimeout) {\r\n this.longPressTimeout = setTimeout(() => {\r\n if (!this.touchMoved && this.touchDown) {\r\n const touchDuration = Date.now() - this.touchStartTime;\r\n const longPressEvent = new LongPressEvent_1.default(this.touchStart, touchDuration);\r\n this.dispatchEvent(longPressEvent);\r\n this.isLongPress = true;\r\n this.longPressTimeout = 0;\r\n }\r\n }, longPressDuration);\r\n }\r\n if (this.touchStart.touches.length > 1) {\r\n const originPointerPrimary = new utils_1.Vec2(this.touchStart.touches[0].clientX, this.touchStart.touches[0].clientY);\r\n const originPointerSecondary = new utils_1.Vec2(this.touchStart.touches[1].clientX, this.touchStart.touches[1].clientY);\r\n this.scaleBase = originPointerPrimary.substract(originPointerSecondary).magnitude;\r\n }\r\n else\r\n this.scaleBase = 0;\r\n }\r\n onTouchMove(touchMove) {\r\n if (!this.shouldFire)\r\n return;\r\n this.touchMoved = true;\r\n this.touchMove = touchMove;\r\n if (touchMove.touches.length > 1 && this.touchStart.touches.length > 1) {\r\n if (touchMove.touches[1].clientX !== this.touchStart.touches[1].clientX\r\n || touchMove.touches[1].clientY !== this.touchStart.touches[1].clientY) {\r\n const currentPointerPrimary = new utils_1.Vec2(this.touchMove.touches[0].clientX, this.touchMove.touches[0].clientY);\r\n const currentPointerSecondary = new utils_1.Vec2(this.touchMove.touches[1].clientX, this.touchMove.touches[1].clientY);\r\n const originPointerPrimary = new utils_1.Vec2(this.touchStart.touches[0].clientX, this.touchStart.touches[0].clientY);\r\n const distance = currentPointerPrimary.substract(currentPointerSecondary);\r\n if (this.scaleBase && Math.abs(this.scaleBase - distance.magnitude) > 10) {\r\n const scaleFactor = distance.magnitude / this.scaleBase;\r\n this.scale = scaleFactor;\r\n if (this.isPinching) {\r\n const pinchEvent = new PinchEvent_1.default(touchMove, {\r\n scale: scaleFactor\r\n });\r\n this.dispatchEvent(pinchEvent);\r\n }\r\n else {\r\n const pinchStartEvent = new PinchEvent_1.PinchStartEvent(touchMove, {\r\n scale: scaleFactor\r\n });\r\n this.dispatchEvent(pinchStartEvent);\r\n this.isPinching = true;\r\n }\r\n }\r\n this.anchor = currentPointerPrimary;\r\n let rotationAngle = Math.atan2((originPointerPrimary.clientY - currentPointerSecondary.clientY), (originPointerPrimary.clientX - currentPointerSecondary.clientX));\r\n rotationAngle < 0 ? rotationAngle += 1.5708 : rotationAngle -= 1.5708;\r\n this.rotation = rotationAngle;\r\n this.rotationDeg = rotationAngle * 180 / Math.PI;\r\n this.anchor = this.anchor;\r\n if (this.isRotating) {\r\n const rotateEvent = new RotateEvent_1.default(touchMove, {\r\n anchor: this.anchor,\r\n rotation: this.rotation,\r\n rotationDeg: this.rotationDeg\r\n });\r\n this.dispatchEvent(rotateEvent);\r\n }\r\n else {\r\n const rotateStartEvent = new RotateEvent_1.RotateStartEvent(touchMove, {\r\n anchor: this.anchor,\r\n rotation: this.rotation,\r\n rotationDeg: this.rotationDeg\r\n });\r\n this.dispatchEvent(rotateStartEvent);\r\n this.isRotating = true;\r\n }\r\n }\r\n }\r\n const origin = new utils_1.Vec2(this.touchStart.touches[0].clientX, this.touchStart.touches[0].clientY);\r\n const currentPosition = new utils_1.Vec2(this.touchMove.touches[0].clientX, this.touchMove.touches[0].clientY);\r\n const dxDy = currentPosition.substract(origin);\r\n const length = dxDy.magnitude;\r\n const normalised = {\r\n x: dxDy.x / length,\r\n y: dxDy.y / length\r\n };\r\n const angle = Math.atan2(normalised.y, normalised.x);\r\n this.octant = Math.round(4 * angle / (2 * Math.PI) + 4) % 4;\r\n const dt = (touchMove.timeStamp - this.touchStart.timeStamp) / 1000;\r\n const velocity = dxDy.magnitude / dt;\r\n if (this.isSwiping) {\r\n const swipeEvent = new SwipeEvent_1.default(touchMove, {\r\n direction: CartesianDirectionEnum[(0, utils_1.closest)(this.octant, [0, 1, 2, 3])],\r\n velocity: velocity\r\n });\r\n this.dispatchEvent(swipeEvent);\r\n }\r\n else {\r\n const swipeStartEvent = new SwipeEvent_1.SwipeStartEvent(touchMove, {\r\n direction: CartesianDirectionEnum[(0, utils_1.closest)(this.octant, [0, 1, 2, 3])],\r\n velocity: velocity\r\n });\r\n this.dispatchEvent(swipeStartEvent);\r\n this.isSwiping = true;\r\n }\r\n this.dxDy = dxDy;\r\n this.velocity = velocity;\r\n if (this.isPanning) {\r\n const panEvent = new PanEvent_1.default(touchMove, {\r\n translation: dxDy,\r\n velocity: velocity\r\n });\r\n this.dispatchEvent(panEvent);\r\n }\r\n else {\r\n const panStartEvent = new PanEvent_1.PanStartEvent(touchMove, {\r\n translation: dxDy,\r\n velocity: velocity\r\n });\r\n this.dispatchEvent(panStartEvent);\r\n this.isPanning = true;\r\n }\r\n }\r\n onTouchEnd(touchEnd) {\r\n const numberOfTaps = parseInt(this.currentTarget.dataset.numberoftaps || '0') || this.config.numberOfTaps;\r\n this.taps++;\r\n this.shouldFire = Boolean(this.taps > numberOfTaps);\r\n if (this.shouldFire) {\r\n this.touchEnd = touchEnd;\r\n this.touchEndTime = touchEnd.timeStamp;\r\n const maxTapDelay = parseFloat(this.currentTarget.dataset.tapdelay || '0') || this.config.tapDelay;\r\n if (!this.touchMoved && !this.isLongPress) {\r\n if (this.taps === 1 || (this.touchEndTime - this.lastTouchTime) < maxTapDelay) {\r\n if (this.taps % 2 === numberOfTaps) {\r\n const doubleTapEvent = new DoubleTapEvent_1.default(touchEnd);\r\n this.dispatchEvent(doubleTapEvent);\r\n this.taps = 0;\r\n }\r\n const tapEvent = new TapEvent_1.default(touchEnd);\r\n this.dispatchEvent(tapEvent);\r\n }\r\n else {\r\n this.taps = 0;\r\n }\r\n }\r\n }\r\n this.pointers = this.touchEnd.touches.length;\r\n this.lastTouchTime = this.touchEndTime;\r\n this.onPointerLeave(touchEnd);\r\n this.unbind(this.currentTarget);\r\n this.clean();\r\n }\r\n onTouchCancel(touchCancel) {\r\n if (!this.shouldFire)\r\n return;\r\n this.touchCancel = touchCancel;\r\n this.unbind(this.currentTarget);\r\n this.clean();\r\n }\r\n}\r\nexports.default = GestureProvider;\r\nGestureProvider.listening = false;\r\nif (TouchEvent)\r\n window.gestureProvider = new GestureProvider();\r\n//# sourceMappingURL=index.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.closest = exports.Vec2 = exports.assert = void 0;\r\nfunction assert(condition, message) {\r\n if (!condition) {\r\n throw new Error(message);\r\n }\r\n}\r\nexports.assert = assert;\r\nclass Vec2 {\r\n constructor(_x, _y) {\r\n this._x = 0;\r\n this._y = 0;\r\n this._clientX = 0;\r\n this._clientY = 0;\r\n this._clientX = _x;\r\n this._clientY = _y;\r\n this._x = this.translateX(_x);\r\n this._y = this.translateY(_y);\r\n }\r\n translateY(_y) {\r\n return -(_y - window.innerHeight / 2);\r\n }\r\n translateX(_x) {\r\n return _x - window.innerWidth / 2;\r\n }\r\n get x() {\r\n return this._x;\r\n }\r\n get y() {\r\n return this._y;\r\n }\r\n get clientX() {\r\n return this._clientX;\r\n }\r\n get clientY() {\r\n return this._clientY;\r\n }\r\n set x(_x) {\r\n this._clientX = _x;\r\n this._x = this.translateX(_x);\r\n }\r\n set y(_y) {\r\n this._clientY = _y;\r\n this._y = this.translateY(_y);\r\n }\r\n add(vector) {\r\n this._x += vector.x;\r\n this._y += vector.y;\r\n this._clientX += vector.clientX;\r\n this._clientY += vector.clientY;\r\n return this;\r\n }\r\n substract(vector) {\r\n this._x -= vector.x;\r\n this._y -= vector.y;\r\n this._clientX -= vector.clientX;\r\n this._clientY -= vector.clientY;\r\n return this;\r\n }\r\n dot(vector) {\r\n const scalar = (this._x * vector.x) + (this._y * vector.y);\r\n return scalar;\r\n }\r\n get magnitude() {\r\n return Math.sqrt(Math.pow(this._x, 2) + Math.pow(this._y, 2));\r\n }\r\n get clientMagnitude() {\r\n return Math.sqrt(Math.pow(this._clientX, 2) + Math.pow(this._clientY, 2));\r\n }\r\n}\r\nexports.Vec2 = Vec2;\r\nfunction closest(needle, haystack) {\r\n return haystack.reduce((a, b) => {\r\n let a_diff = Math.abs(a - needle);\r\n let b_diff = Math.abs(b - needle);\r\n if (a_diff === b_diff) {\r\n return a > b ? a : b;\r\n }\r\n else {\r\n return b_diff < a_diff ? b : a;\r\n }\r\n });\r\n}\r\nexports.closest = closest;\r\n//# sourceMappingURL=utils.js.map","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_react__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"NavigationBase\"]: () => __WEBPACK_EXTERNAL_MODULE__react_motion_router_core_d1cff82c__.NavigationBase, [\"RouterBase\"]: () => __WEBPACK_EXTERNAL_MODULE__react_motion_router_core_d1cff82c__.RouterBase, [\"ScreenBase\"]: () => __WEBPACK_EXTERNAL_MODULE__react_motion_router_core_d1cff82c__.ScreenBase, [\"cloneAndInject\"]: () => __WEBPACK_EXTERNAL_MODULE__react_motion_router_core_d1cff82c__.cloneAndInject, [\"includesRoute\"]: () => __WEBPACK_EXTERNAL_MODULE__react_motion_router_core_d1cff82c__.includesRoute, [\"isValidScreenChild\"]: () => __WEBPACK_EXTERNAL_MODULE__react_motion_router_core_d1cff82c__.isValidScreenChild, [\"matchRoute\"]: () => __WEBPACK_EXTERNAL_MODULE__react_motion_router_core_d1cff82c__.matchRoute, [\"resolveBaseURLFromPattern\"]: () => __WEBPACK_EXTERNAL_MODULE__react_motion_router_core_d1cff82c__.resolveBaseURLFromPattern, [\"useNavigationBase\"]: () => __WEBPACK_EXTERNAL_MODULE__react_motion_router_core_d1cff82c__.useNavigationBase, [\"useRouteBase\"]: () => __WEBPACK_EXTERNAL_MODULE__react_motion_router_core_d1cff82c__.useRouteBase, [\"useRouterBase\"]: () => __WEBPACK_EXTERNAL_MODULE__react_motion_router_core_d1cff82c__.useRouterBase });","import { GestureEvent } from \"web-gesture-events\";\nimport { NavigateOptions, NavigationProps } from \"./types\";\n\nexport class NavigateEvent extends Event {\n\treadonly routerId: string;\n\treadonly route: string;\n\treadonly props: NavigationProps;\n\treadonly navigationType: NonNullable<NavigateOptions[\"type\"]>;\n\treadonly signal: AbortSignal;\n\treadonly committed: Promise<NavigationHistoryEntry>;\n\treadonly transition: NavigationTransition;\n\n\tconstructor(\n\t\trouterId: string,\n\t\troute: string,\n\t\tprops: NavigationProps,\n\t\ttype: NavigateOptions[\"type\"],\n\t\tsignal: AbortSignal,\n\t\tcommitted: Promise<NavigationHistoryEntry>,\n\t\ttransition: NavigationTransition\n\t) {\n\t\tsuper('navigate');\n\t\tthis.routerId = routerId;\n\t\tthis.route = route;\n\t\tthis.props = props;\n\t\tthis.navigationType = type ?? \"push\";\n\t\tthis.signal = signal;\n\t\tthis.committed = committed;\n\t\tthis.transition = transition;\n\t}\n}\n\nexport class BackEvent extends Event {\n\treadonly routerId: string;\n\treadonly signal: AbortSignal;\n\treadonly committed: Promise<NavigationHistoryEntry>;\n\treadonly transition: NavigationTransition;\n\n\tconstructor(routerId: string, signal: AbortSignal, committed: Promise<NavigationHistoryEntry>, transition: NavigationTransition) {\n\t\tsuper('back');\n\t\tthis.routerId = routerId;\n\t\tthis.signal = signal;\n\t\tthis.committed = committed;\n\t\tthis.transition = transition;\n\t}\n}\n\nexport class ForwardEvent extends Event {\n\treadonly routerId: string;\n\treadonly signal: AbortSignal;\n\treadonly committed: Promise<NavigationHistoryEntry>;\n\treadonly transition: NavigationTransition;\n\n\tconstructor(routerId: string, signal: AbortSignal, committed: Promise<NavigationHistoryEntry>, transition: NavigationTransition) {\n\t\tsuper('forward');\n\t\tthis.routerId = routerId;\n\t\tthis.signal = signal;\n\t\tthis.committed = committed;\n\t\tthis.transition = transition;\n\t}\n}\n\nexport class GestureStartEvent extends Event {\n\treadonly source: GestureEvent;\n\n\tconstructor(source: GestureEvent) {\n\t\tsuper('gesture-start');\n\t\tthis.source = source;\n\t}\n}\n\nexport class GestureEndEvent extends Event {\n\treadonly source: GestureEvent;\n\n\tconstructor(source: GestureEvent) {\n\t\tsuper('gesture-end');\n\t\tthis.source = source;\n\t}\n}\n\nexport class GestureCancelEvent extends Event {\n\tconstructor() {\n\t\tsuper('gesture-cancel');\n\t}\n}","export class HistoryEntry implements Omit<NavigationHistoryEntry, 'url'> {\n\treadonly routerId: string;\n\t#nativeEntry: NavigationHistoryEntry;\n\treadonly index: number;\n\n\tconstructor(nativeEntry: NavigationHistoryEntry, routerId: string, index: number) {\n\t\tthis.#nativeEntry = nativeEntry;\n\t\tthis.routerId = routerId;\n\t\tthis.index = index;\n\t}\n\n\tset ondispose(handler: ((this: NavigationHistoryEntry, ev: Event) => any) | null) {\n\t\tthis.#nativeEntry.ondispose = handler;\n\t}\n\n\tget ondispose() {\n\t\treturn this.#nativeEntry.ondispose;\n\t}\n\n\tget id() {\n\t\treturn this.#nativeEntry.id;\n\t}\n\n\tget globalIndex() {\n\t\treturn this.#nativeEntry.index;\n\t}\n\n\tget url() {\n\t\tif (!this.#nativeEntry.url) return null;\n\t\treturn new URL(this.#nativeEntry.url);\n\t}\n\n\tget key() {\n\t\treturn this.#nativeEntry.key;\n\t}\n\n\tget sameDocument() {\n\t\treturn this.#nativeEntry.sameDocument;\n\t}\n\n\taddEventListener<K extends keyof NavigationHistoryEntryEventMap>(type: K, listener: (this: NavigationHistoryEntry, ev: NavigationHistoryEntryEventMap[K]) => any, options?: boolean | AddEventListenerOptions): () => void;\n\taddEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): () => void;\n\taddEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): () => void {\n\t\tthis.#nativeEntry.addEventListener(type, listener, options);\n\n\t\treturn () => this.#nativeEntry.removeEventListener(type, listener, options);\n\t}\n\n\tremoveEventListener<K extends keyof NavigationHistoryEntryEventMap>(type: K, listener: (this: NavigationHistoryEntry, ev: NavigationHistoryEntryEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n\tremoveEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n\tremoveEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void {\n\t\tthis.#nativeEntry.addEventListener(type, listener, options);\n\t}\n\n\tdispatchEvent(event: Event): boolean {\n\t\treturn this.#nativeEntry.dispatchEvent(event);\n\t}\n\n\tgetState<T>() {\n\t\treturn this.#nativeEntry.getState() as T;\n\t}\n}","import {\n NavigationBase,\n includesRoute,\n resolveBaseURLFromPattern,\n} from '@react-motion-router/core';\nimport { GoBackOptions, GoForwardOptions, NavigateOptions, NavigationBaseOptions, NavigationProps, RouterEventMap } from './common/types';\nimport { BackEvent, ForwardEvent, NavigateEvent } from './common/events';\nimport { HistoryEntry } from './HistoryEntry';\nimport { Router } from './Router';\n\nexport class Navigation extends NavigationBase<RouterEventMap> {\n protected readonly router: Router;\n\n constructor(router: Router) {\n super();\n this.router = router;\n }\n\n replace(route: string, props: NavigationProps = {}, options: NavigationBaseOptions = {}) {\n return this.navigate(route, props, { ...options, type: \"replace\" });\n }\n\n push(route: string, props: NavigationProps = {}, options: NavigationBaseOptions = {}) {\n return this.navigate(route, props, { ...options, type: \"push\" });\n }\n\n reload(props: NavigationProps = {}) {\n return window.navigation.reload({ state: props });\n }\n\n traverseTo(key: string, options: NavigationBaseOptions = {}) {\n const result = window.navigation.traverseTo(key);\n const transition = window.navigation.transition!;\n\n const fromIndex = transition.from.index;\n const destinationIndex = window.navigation.entries().findIndex(entry => entry.key === key);\n\n const controller = new AbortController();\n controller.signal.addEventListener('abort', () => this.traverseTo(transition.from.key), { once: true });\n options.signal?.addEventListener('abort', controller.abort, { once: true });\n\n let event;\n if (fromIndex > destinationIndex) {\n event = this.createBackEvent(controller.signal, result.committed, transition);\n } else {\n event = this.createForwardEvent(controller.signal, result.committed, transition);\n }\n this.dispatchEvent?.(event);\n\n return result;\n }\n\n navigate(\n route: string,\n props: NavigationProps = {},\n options: NavigateOptions = {}\n ) {\n const { type: history = \"push\" } = options;\n\n const url = new URL(route, this.baseURL);\n const result = window.navigation.navigate(url.href, { history, state: props });\n const transition = window.navigation.transition!;\n\n const controller = new AbortController();\n controller.signal.addEventListener('abort', () => this.goBack(), { once: true });\n options.signal?.addEventListener('abort', controller.abort, { once: true });\n\n const event = this.createNavigateEvent(route, props, history, controller.signal, result.committed, transition);\n this.dispatchEvent?.(event);\n\n return result;\n }\n\n goBack(options: GoBackOptions = {}) {\n if (!this.canGoBack()) return;\n\n const result = window.navigation.traverseTo(this.previous.key);\n const transition = window.navigation.transition!;\n\n const controller = new AbortController();\n controller.signal.addEventListener('abort', () => this.goForward(), { once: true });\n options.signal?.addEventListener('abort', controller.abort, { once: true });\n\n const event = this.createBackEvent(controller.signal, result.committed, transition);\n this.dispatchEvent?.(event);\n\n return result;\n }\n\n goForward(options: GoForwardOptions = {}) {\n if (!this.canGoForward()) return;\n\n const result = window.navigation.traverseTo(this.next.key);\n const transition = window.navigation.transition!;\n\n const controller = new AbortController();\n controller.signal.addEventListener('abort', () => this.goBack(), { once: true });\n options.signal?.addEventListener('abort', controller.abort, { once: true });\n\n const event = this.createForwardEvent(controller.signal, result.committed, transition);\n this.dispatchEvent?.(event);\n\n return result;\n }\n\n private createBackEvent(\n signal: AbortSignal,\n committed: Promise<NavigationHistoryEntry>,\n transition: NavigationTransition\n ) {\n if (!this.routerId) throw new Error(\"Router ID is not set\");\n return new BackEvent(this.routerId, signal, committed, transition);\n }\n\n private createForwardEvent(\n signal: AbortSignal,\n committed: Promise<NavigationHistoryEntry>,\n transition: NavigationTransition\n ) {\n if (!this.routerId) throw new Error(\"Router ID is not set\");\n return new ForwardEvent(this.routerId, signal, committed, transition);\n }\n\n private createNavigateEvent(\n route: string,\n props: NavigationProps,\n type: NavigateOptions[\"type\"],\n signal: AbortSignal,\n committed: Promise<NavigationHistoryEntry>,\n transition: NavigationTransition\n ) {\n if (!this.routerId) throw new Error(\"Router ID is not set\");\n return new NavigateEvent(\n this.routerId,\n route,\n props,\n type,\n signal,\n committed,\n transition\n );\n }\n\n get committed() {\n return this.router.committed;\n }\n\n get transition() {\n return this.router.state.transition;\n }\n\n get globalEntries() {\n return window.navigation.entries();\n }\n\n get entries() {\n const nestedPathPatterns = this.router.pathPatterns.filter(({ pattern }) => pattern.endsWith(\"**\"));\n let inNestedScope = false;\n return this.globalEntries\n .filter(entry => {\n if (!entry.url) return false;\n const url = new URL(entry.url);\n if (!resolveBaseURLFromPattern(this.baseURLPattern.pathname, url.pathname))\n return false;\n\n if (includesRoute(nestedPathPatterns, url.pathname, this.baseURLPattern.pathname)) {\n if (inNestedScope)\n return false;\n\n return inNestedScope = true; // technically in nested scope but include the first entry (the entry intercepted by the parent router)\n } else {\n inNestedScope = false;\n return true; // not in nested scope, so include\n }\n })\n .map((entry, index) => {\n return new HistoryEntry(entry, this.routerId, index);\n });\n }\n\n get index() {\n const globalCurrentIndex = window.navigation.currentEntry?.index ?? -1;\n const firstEntryGlobalIndex = this.entries.at(0)?.globalIndex ?? -1;\n const lastEntryGlobalIndex = this.entries.at(-1)?.globalIndex ?? -1;\n if (globalCurrentIndex <= firstEntryGlobalIndex)\n return 0;\n else if (globalCurrentIndex >= lastEntryGlobalIndex)\n return this.entries.length - 1;\n else {\n const scopedEntries = this.globalEntries.slice(firstEntryGlobalIndex, globalCurrentIndex + 1);\n return this.entries.findLastIndex(entry => {\n return scopedEntries.findLastIndex(globalEntry => entry.key === globalEntry.key) > -1;\n });\n }\n }\n\n get previous(): HistoryEntry | null {\n return this.entries[this.index - 1] ?? null;\n }\n\n get next(): HistoryEntry | null {\n return this.entries[this.index + 1] ?? null;\n }\n\n get current() {\n return this.entries[this.index];\n }\n\n canGoBack(this: Navigation): this is Navigation & { previous: HistoryEntry } {\n return Boolean(this.previous?.sameDocument);\n }\n\n canGoForward(this: Navigation): this is Navigation & { next: HistoryEntry } {\n return Boolean(this.next?.sameDocument);\n }\n}","import { PlainObject } from \"@react-motion-router/core\";\n\nexport function searchParamsToObject(searchParams: URLSearchParams) {\n\tconst entries = searchParams.entries();\n\tconst result: PlainObject<string> = {};\n\n\tfor (const [key, value] of entries) { // each 'entry' is a [key, value] tuple\n\t\tlet parsedValue = '';\n\t\ttry {\n\t\t\tparsedValue = JSON.parse(value);\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Non JSON serialisable value was passed as URL route param.\");\n\t\t\tparsedValue = value;\n\t\t}\n\t\tresult[key] = parsedValue;\n\t}\n\treturn Object.keys(result).length ? result : undefined;\n}\n\nexport function searchParamsFromObject(params: { [key: string]: any }) {\n\ttry {\n\t\tfor (const [key, value] of Object.entries(params)) {\n\t\t\tparams[key] = JSON.stringify(value);\n\t\t}\n\t\treturn new URLSearchParams(params).toString();\n\t} catch (e) {\n\t\tconsole.error(e);\n\t\tconsole.warn(\"Non JSON serialisable value was passed as query param.\");\n\t}\n\treturn '';\n}\n\nexport function isGesture(info?: unknown) {\n\tif (info && typeof info === 'object' && 'gesture' in info)\n\t\treturn Boolean(info.gesture);\n\treturn false;\n}\n\nexport function isRollback(info?: unknown) {\n\tif (info && typeof info === 'object' && 'rollback' in info)\n\t\treturn Boolean(info.rollback);\n\treturn false;\n}\n\nexport function deepEquals<T>(obj1: T, obj2: T): boolean {\n\tif (obj1 === obj2) {\n\t\treturn true;\n\t}\n\n\tif (obj1 === null || obj2 === null || typeof obj1 !== 'object' || typeof obj2 !== 'object') {\n\t\treturn false;\n\t}\n\n\tconst keys1 = Object.keys(obj1) as (keyof T)[];\n\tconst keys2 = Object.keys(obj2) as (keyof T)[];\n\n\tif (keys1.length !== keys2.length) {\n\t\treturn false;\n\t}\n\n\tfor (let key of keys1) {\n\t\tif (!keys2.includes(key) || !deepEquals(obj1[key], obj2[key])) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}","import { ScreenBase } from '@react-motion-router/core';\nimport type { PlainObject, RouterContext, ScreenBaseProps, ScreenBaseState, ScreenBaseComponentProps, ScreenBaseConfig } from '@react-motion-router/core';\nimport { Navigation } from './Navigation';\nimport { HistoryEntryState, RouteProp, ScreenInternalProps, SwipeDirection } from './common/types';\nimport { Router } from './Router';\nimport { searchParamsToObject } from './common/utils';\nimport { HistoryEntry } from './HistoryEntry';\n\nexport interface ScreenComponentProps<T extends PlainObject = {}> extends ScreenBaseComponentProps<RouteProp<T>, Navigation> { }\n\nexport interface ScreenConfig extends ScreenBaseConfig<RouteProp> {\n title?: string;\n presentation?: \"default\" | \"dialog\" | \"modal\";\n keepAlive?: boolean;\n gestureDirection?: SwipeDirection;\n gestureAreaWidth?: number;\n gestureMinFlingVelocity?: number;\n gestureHysteresis?: number;\n gestureDisabled?: boolean;\n}\n\nexport interface ScreenProps extends ScreenBaseProps {\n config?: ScreenConfig;\n}\n\nexport interface ScreenState extends ScreenBaseState { }\n\nexport class Screen extends ScreenBase<ScreenProps, ScreenState, RouteProp> {\n #historyEntry: HistoryEntry;\n\n constructor(props: ScreenProps, context: React.ContextType<typeof RouterContext>) {\n super(props, context);\n\n const router = context as Router;\n const id = this.internalProps.id;\n const historyEntry = router.navigation.entries.find(entry => entry.key === id);\n if (!historyEntry)\n throw new Error(`No history entry found for: ${id}`);\n this.#historyEntry = historyEntry;\n }\n\n static getDerivedStateFromProps(props: ScreenProps) {\n if (\n props.config?.presentation === \"dialog\"\n || props.config?.presentation === \"modal\"\n )\n return { elementType: \"dialog\" };\n else\n return { elementType: \"div\" };\n }\n\n protected setParams(params: PlainObject): void {\n super.setParams(params);\n this.setHistoryState({ params });\n }\n\n protected setConfig(config: NonNullable<ScreenProps[\"config\"]>): void {\n super.setConfig(config);\n this.setHistoryState({ config });\n }\n\n protected get router() {\n return this.context as Router;\n }\n\n get internalProps() {\n return this.props as unknown as ScreenInternalProps;\n }\n\n get resolvedPathname() {\n return this.internalProps.resolvedPathname;\n }\n\n get historyEntryState() {\n const entry = this.#historyEntry;\n if (entry?.url) {\n const state = entry.getState<HistoryEntryState>() ?? {};\n const queryParams = searchParamsToObject(entry.url.searchParams);\n state.params = {\n ...state.params,\n ...queryParams\n };\n\n return state;\n }\n return {};\n }\n\n get id() {\n return this.internalProps.id.toString();\n }\n\n get params() {\n return {\n ...this.props.defaultParams,\n ...this.historyEntryState.params,\n ...this.state.params\n };\n }\n\n get config() {\n return {\n ...this.props.config,\n ...this.historyEntryState.config,\n ...this.state.config\n };\n }\n\n protected get routeProp() {\n const setParams = this.setParams.bind(this);\n const setConfig = this.setConfig.bind(this);\n const{ path } = this.props;\n const { focused } = this.state;\n const { params, config, resolvedPathname } = this;\n return {\n setParams,\n setConfig,\n path,\n resolvedPathname,\n focused,\n params,\n config\n };\n }\n\n protected setHistoryState(newState: PlainObject) {\n if (!this.state.focused) return;\n const state = {\n ...window.navigation.currentEntry?.getState() ?? {},\n ...newState\n };\n window.navigation.updateCurrentEntry({ state });\n }\n\n private onClickOutside(e: MouseEvent) {\n if (!this.transitionProvider.current?.ref.current) return;\n const navigation = this.context?.navigation as Navigation | undefined;\n const rect = this.transitionProvider.current.ref.current.getBoundingClientRect();\n const isInDialog = (\n rect.top <= e.clientY\n && e.clientY <= rect.top + rect.height\n && rect.left <= e.clientX\n && e.clientX <= rect.left + rect.width\n );\n if (!isInDialog)\n navigation?.goBack();\n }\n\n onEnter(signal: AbortSignal) {\n if (\n this.transitionProvider.current?.ref.current instanceof HTMLDialogElement\n && this.transitionProvider.current.ref.current.open === false\n ) {\n const navigation = this.context?.navigation as Navigation | undefined;\n if (this.props.config?.presentation === \"modal\") {\n this.transitionProvider.current.ref.current.showModal();\n } else {\n this.transitionProvider.current.ref.current.show();\n }\n this.transitionProvider.current.ref.current.style.maxHeight = 'unset';\n this.transitionProvider.current.ref.current.style.maxWidth = 'unset';\n this.transitionProvider.current.ref.current.style.width = 'max-content';\n this.transitionProvider.current.ref.current.style.height = 'max-content';\n if (this.ref.current) {\n this.ref.current.style.width = 'max-content';\n this.ref.current.style.height = 'max-content';\n }\n\n const onClickOutside = this.onClickOutside.bind(this);\n\n // closed by form submit or ESC key\n this.transitionProvider.current?.ref.current.addEventListener('close', function () {\n if (this.returnValue !== \"screen-exit\") {\n this.style.display = \"block\";\n navigation?.goBack();\n }\n\n navigation?.removeEventListener('click', onClickOutside);\n }, { once: true });\n\n navigation?.addEventListener('click', onClickOutside);\n }\n\n return super.onEnter(signal);\n };\n\n onExited(signal: AbortSignal) {\n if (this.transitionProvider.current?.ref.current instanceof HTMLDialogElement) {\n this.transitionProvider.current.ref.current.close(\"screen-exit\");\n }\n\n return super.onExited(signal);\n }\n}","import { PlainObject, RoutePropBase, RouterBaseEventMap } from \"@react-motion-router/core\";\nimport { ScreenProps } from \"../Screen\";\nimport { RefObject } from \"react\";\nimport { BackEvent, ForwardEvent, GestureCancelEvent, GestureEndEvent, GestureStartEvent, NavigateEvent } from \"./events\";\n\nexport interface NavigationBaseOptions {\n\tsignal?: AbortSignal;\n}\n\nexport interface NavigateOptions extends NavigationBaseOptions {\n\ttype?: \"push\" | \"replace\";\n}\n\nexport interface GoBackOptions extends NavigationBaseOptions { }\nexport interface GoForwardOptions extends NavigationBaseOptions { }\n\nexport interface NavigationProps {\n\tparams?: Record<any, any>;\n\tconfig?: ScreenProps[\"config\"]\n}\n\nexport type Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never };\n\nexport type XOR<T, U> = (T | U) extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;\n\nexport interface HistoryEntryState {\n\tconfig?: ScreenProps[\"config\"];\n\tparams?: PlainObject;\n}\n\nexport function isRefObject<T>(value?: React.LegacyRef<T>): value is RefObject<T> {\n\tif (\n\t\tvalue !== null\n\t\t&& typeof value === 'object'\n\t\t&& value.hasOwnProperty('current')\n\t) return true;\n\treturn false;\n}\n\nexport interface RouterEventMap extends RouterBaseEventMap {\n\t\"navigate\": NavigateEvent;\n\t\"back\": BackEvent;\n\t\"forward\": ForwardEvent;\n\t\"gesture-start\": GestureStartEvent;\n\t\"gesture-end\": GestureEndEvent;\n\t\"gesture-cancel\": GestureCancelEvent;\n}\n\nexport interface RouteProp<T extends PlainObject = {}> extends RoutePropBase<ScreenProps[\"config\"], T> { }\n\nexport type SwipeDirection = 'up' | 'down' | 'left' | 'right' | 'horizontal' | 'vertical';\nexport type Direction = Exclude<SwipeDirection, \"horizontal\" | \"vertical\">;\n\nconst directions: Record<SwipeDirection, Direction[]> = {\n\t\"horizontal\": [\"left\", \"right\"] as const,\n\t\"vertical\": [\"up\", \"down\"] as const,\n\t\"up\": [\"up\"] as const,\n\t\"down\": [\"down\"] as const,\n\t\"left\": [\"left\"] as const,\n\t\"right\": [\"right\"] as const\n};\nexport function isSupportedDirection(direction: Exclude<SwipeDirection, \"horizontal\" | \"vertical\">, supported: SwipeDirection) {\n\treturn directions[supported].includes(direction);\n}\n\nexport function isOutOfBounds(direction: SwipeDirection, { x, y }: { x: number, y: number }, clientRect: DOMRect, gestureAreaWidth: number) {\n\tif (direction === \"right\" && Math.abs(x - clientRect.left) >= gestureAreaWidth) return false;\n\tif (direction === \"left\" && Math.abs(x - clientRect.right) >= gestureAreaWidth) return false;\n\tif (direction === \"down\" && Math.abs(y - clientRect.top) >= gestureAreaWidth) return false;\n\tif (direction === \"up\" && Math.abs(y - clientRect.bottom) >= gestureAreaWidth) return false;\n}\n\nexport function isHorizontalDirection(direction: SwipeDirection): direction is 'left' | 'right' | 'horizontal' {\n\treturn direction === 'left' || direction === 'right' || direction === 'horizontal';\n}\n\nexport interface ScreenInternalProps {\n resolvedPathname: string;\n id: React.Key;\n}","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"GestureTimeline\"]: () => __WEBPACK_EXTERNAL_MODULE_web_animations_extension_74b2916c__.GestureTimeline, [\"easingToLinear\"]: () => __WEBPACK_EXTERNAL_MODULE_web_animations_extension_74b2916c__.easingToLinear, [\"springToLinear\"]: () => __WEBPACK_EXTERNAL_MODULE_web_animations_extension_74b2916c__.springToLinear });","export const DEFAULT_GESTURE_CONFIG = {\n gestureHysteresis: 0.5,\n gestureMinFlingVelocity: 400,\n gestureAreaWidth: 100,\n gestureDirection: 'right',\n gestureDisabled: false\n} as const;","export class PromiseWrapper<T> {\n\tpromise: Promise<T>;\n\tstate: 'pending' | 'resolved' | 'rejected';\n\tnativeResolve: ((value: T | PromiseLike<T>) => void) | null;\n\tnativeReject: ((reason: any) => void) | null;\n constructor() {\n this.state = 'pending';\n this.nativeResolve = this.nativeReject = null;\n this.promise = new Promise((resolve, reject) => {\n this.nativeResolve = resolve;\n this.nativeReject = reject;\n });\n }\n\n resolve(value: T) {\n this.state = 'resolved';\n this.nativeResolve?.(value);\n }\n\n reject(reason: any) {\n this.state = 'rejected';\n // Do not report unhandled promise rejections.\n this.promise.catch(() => {});\n this.nativeReject?.(reason);\n }\n}","import { RouterBase, cloneAndInject, includesRoute, isValidScreenChild, matchRoute } from '@react-motion-router/core';\nimport type { ClonedElementType, LoadEvent, NestedRouterContext, RouterBaseConfig, RouterBaseProps, RouterBaseState, ScreenChild } from '@react-motion-router/core';\nimport { Navigation } from './Navigation';\nimport { ScreenProps, Screen, ScreenConfig } from './Screen';\nimport { HistoryEntryState, isHorizontalDirection, isOutOfBounds, isRefObject, isSupportedDirection, RouterEventMap, ScreenInternalProps, SwipeDirection } from './common/types';\nimport { Children, createRef, startTransition } from 'react';\nimport { SwipeStartEvent, SwipeEndEvent } from 'web-gesture-events';\nimport { GestureTimeline } from 'web-animations-extension';\nimport { deepEquals, isGesture, isRollback } from './common/utils';\nimport { GestureCancelEvent, GestureEndEvent, GestureStartEvent } from './common/events';\nimport { DEFAULT_GESTURE_CONFIG } from './common/constants';\nimport { PromiseWrapper } from './common/promise-wrapper';\n\nexport interface RouterConfig extends RouterBaseConfig {\n screenConfig?: ScreenConfig;\n disableBrowserRouting?: boolean;\n initialPath?: string;\n shouldIntercept?(navigateEvent: NavigateEvent): boolean;\n onIntercept?(navigateEvent: NavigateEvent): boolean;\n}\n\nexport interface RouterProps extends RouterBaseProps<Screen> {\n config?: RouterConfig;\n}\n\ntype InjectedScreenProps = Pick<ScreenInternalProps & ScreenProps, \"config\" | \"id\" | \"resolvedPathname\">;\nexport interface RouterState extends RouterBaseState {\n transition: NavigationTransition | LoadEvent[\"transition\"] | null;\n screenStack: ClonedElementType<ScreenChild<Screen>, InjectedScreenProps>[];\n gestureDirection: SwipeDirection;\n gestureAreaWidth: number;\n gestureMinFlingVelocity: number;\n gestureHysteresis: number;\n gestureDisabled: boolean;\n fromKey: React.Key | null\n destinationKey: React.Key | null;\n documentTitle?: string;\n controller: AbortController | null;\n}\n\nexport class Router extends RouterBase<RouterProps, RouterState, RouterEventMap> {\n public readonly navigation = new Navigation(this);\n #committed: PromiseWrapper<NavigationHistoryEntry> | null = null;\n\n constructor(props: RouterProps, context: React.ContextType<typeof NestedRouterContext>) {\n super(props, context);\n this.state = {\n screenStack: [],\n gestureDirection: \"horizontal\",\n gestureAreaWidth: 50,\n gestureHysteresis: 0.5,\n gestureDisabled: true,\n gestureMinFlingVelocity: 500,\n transition: null,\n documentTitle: document.title,\n fromKey: null,\n destinationKey: null,\n controller: null\n };\n }\n\n static readonly defaultProps: Partial<RouterProps> = {\n config: {\n screenConfig: {\n ...DEFAULT_GESTURE_CONFIG\n }\n }\n };\n\n static getDerivedStateFromProps(_: RouterProps, state: RouterState) {\n const config = state.screenStack.find(screen => isRefObject(screen.ref) && screen.ref.current?.focused)?.props.config;\n document.title = config?.title ?? document.title;\n return {\n gestureDirection: config?.gestureDirection ?? DEFAULT_GESTURE_CONFIG.gestureDirection,\n gestureAreaWidth: config?.gestureAreaWidth ?? DEFAULT_GESTURE_CONFIG.gestureAreaWidth,\n gestureMinFlingVelocity: config?.gestureMinFlingVelocity ?? DEFAULT_GESTURE_CONFIG.gestureMinFlingVelocity,\n gestureHysteresis: config?.gestureHysteresis ?? DEFAULT_GESTURE_CONFIG.gestureHysteresis,\n gestureDisabled: config?.gestureDisabled ?? DEFAULT_GESTURE_CONFIG.gestureDisabled,\n documentTitle: config?.title\n }\n }\n\n componentDidMount(): void {\n super.componentDidMount();\n this.ref.current?.addEventListener('swipestart', this.onSwipeStart);\n this.ref.current?.addEventListener('swipeend', this.onSwipeEnd);\n window.navigation.addEventListener(\"currententrychange\", this.onCurrentEntryChange);\n window.navigation.addEventListener(\"navigate\", this.onNavigate);\n window.navigation.addEventListener(\"navigatesuccess\", this.onNavigateSuccess);\n window.navigation.addEventListener(\"navigateerror\", this.onNavigateError);\n }\n\n shouldComponentUpdate(nextProps: Readonly<RouterProps>, nextState: Readonly<RouterState>): boolean {\n return (\n !deepEquals(this.props.config, nextProps.config)\n || !deepEquals(this.state, nextState)\n || this.props.id !== nextProps.id\n );\n }\n\n componentWillUnmount(): void {\n this.ref.current?.removeEventListener('swipestart', this.onSwipeStart);\n this.ref.current?.removeEventListener('swipeend', this.onSwipeEnd);\n window.navigation.removeEventListener(\"currententrychange\", this.onCurrentEntryChange);\n window.navigation.removeEventListener(\"navigate\", this.onNavigate);\n window.navigation.removeEventListener(\"navigatesuccess\", this.onNavigateSuccess);\n window.navigation.removeEventListener(\"navigateerror\", this.onNavigateError);\n }\n\n private onNavigate = () => {\n this.#committed = new PromiseWrapper();\n }\n\n private onCurrentEntryChange = () => {\n this.#committed?.nativeResolve?.(window.navigation.currentEntry!);\n }\n\n private onNavigateSuccess = () => {\n this.#committed = null;\n }\n\n private onNavigateError = ({ error }: ErrorEvent) => {\n if (this.#committed?.state === \"pending\")\n this.#committed.nativeReject?.(error); // TODO: find out what the spec does for cancelled navigations\n this.#committed = null;\n }\n\n private onGestureCancel = () => {\n if (!this.state.transition)\n throw new Error(\"Rollback failed, transition is null\");\n window.navigation.traverseTo(this.state.transition.from.key, { info: { rollback: true } });\n }\n\n private canGestureNavigate(e: SwipeStartEvent) {\n if (!this.ref.current) return false;\n if (this.state.gestureDisabled) return false;\n const clientRect = this.ref.current.getBoundingClientRect();\n const { direction } = e;\n if ((direction === \"down\" || direction === \"right\") && !this.navigation.canGoBack()) return false;\n if ((direction === \"up\" || direction === \"left\") && !this.navigation.canGoForward()) return false;\n if (isOutOfBounds(direction, e, clientRect, this.state.gestureAreaWidth)) return false;\n\n return isSupportedDirection(direction, this.state.gestureDirection);\n }\n\n private onSwipeStart = (e: SwipeStartEvent) => {\n if (!this.canGestureNavigate(e)) return;\n if (!this.ref.current || !this.screenTransitionLayer.current) return;\n const { direction } = e;\n\n let axis: \"x\" | \"y\" = isHorizontalDirection(direction) ? \"x\" : \"y\";\n let rangeStart;\n let rangeEnd;\n switch (direction) {\n case \"right\":\n rangeStart = 0;\n rangeEnd = this.ref.current.clientWidth;\n break;\n case \"left\":\n rangeStart = this.ref.current.clientWidth;\n rangeEnd = 0;\n break;\n case \"down\":\n rangeStart = 0;\n rangeEnd = this.ref.current.clientHeight;\n break;\n case \"up\":\n rangeStart = this.ref.current.clientHeight;\n rangeEnd = 0;\n break;\n }\n this.screenTransitionLayer.current.animation.timeline = new GestureTimeline({\n source: this.ref.current,\n type: \"swipe\",\n axis,\n rangeStart,\n rangeEnd\n });\n const gesture = true;\n if (direction === \"down\" || direction === \"right\")\n window.navigation.traverseTo(this.navigation.previous!.key, { info: { gesture } });\n else\n window.navigation.traverseTo(this.navigation.next!.key, { info: { gesture } });\n\n this.dispatchEvent(new GestureStartEvent(e));\n }\n\n private onSwipeEnd = (e: SwipeEndEvent) => {\n if (!this.screenTransitionLayer.current) return;\n const progress = this.screenTransitionLayer.current.animation.effect?.getComputedTiming().progress ?? 0;\n const playbackRate = this.screenTransitionLayer.current.animation.playbackRate;\n this.screenTransitionLayer.current.animation.timeline = document.timeline;\n const hysteresisReached = playbackRate > 0 ? progress > this.state.gestureHysteresis : progress < this.state.gestureHysteresis;\n let gestureCancelled = false;\n if (e.velocity < this.state.gestureMinFlingVelocity && !hysteresisReached) {\n gestureCancelled = true;\n this.screenTransitionLayer.current.animation.reverse();\n this.dispatchEvent(new GestureCancelEvent());\n } else {\n this.dispatchEvent(new GestureEndEvent(e));\n }\n if (gestureCancelled) {\n this.screenTransitionLayer.current.animation.finished.then(() => {\n this.state.controller?.abort(\"gesture-cancel\");\n });\n }\n }\n\n public get committed() {\n return this.#committed?.promise ?? null;\n }\n\n private get backNavigating() {\n const fromIndex = this.state.screenStack.findIndex(screen => screen.key === this.state.fromKey);\n const destinationIndex = this.state.screenStack.findIndex(screen => screen.key === this.state.destinationKey);\n\n return destinationIndex >= 0 && destinationIndex < fromIndex;\n }\n\n protected get screens() {\n const screenStack = this.state.screenStack;\n return screenStack\n .filter((screen, index) => {\n const currentScreenRef = screen.ref ?? null;\n const nextScreenRef = screenStack.at(index + 1)?.ref;\n return (isRefObject(currentScreenRef) && currentScreenRef.current?.config.keepAlive)\n || (isRefObject(nextScreenRef) && nextScreenRef.current?.config.presentation === \"modal\")\n || (isRefObject(nextScreenRef) && nextScreenRef.current?.config.presentation === \"dialog\")\n || screen.key === this.navigation.current?.key\n || screen.key === this.state.fromKey\n || screen.key === this.state.destinationKey;\n });\n }\n\n private screenChildFromPathname(pathname: string, key: React.Key | null) {\n const screenChild = Children.toArray(this.props.children)\n .find((child): child is ScreenChild<Screen> => {\n if (!isValidScreenChild(child)) return false;\n return matchRoute(\n child.props.path,\n pathname,\n this.baseURLPattern.pathname,\n child.props.caseSensitive\n ) !== null;\n });\n\n if (!screenChild) return null;\n key ??= crypto.randomUUID();\n return cloneAndInject(screenChild, {\n config: {\n title: document.title,\n ...this.props.config?.screenConfig,\n ...screenChild.props.config\n },\n id: key,\n resolvedPathname: pathname,\n key,\n ref: createRef<Screen>()\n } as InjectedScreenProps);\n }\n\n private getScreenChildByPathname(pathname: string) {\n return Children.toArray(this.props.children)\n .find(child => {\n if (!isValidScreenChild(child)) return;\n return matchRoute(\n child.props.path,\n pathname,\n this.baseURLPattern.pathname,\n child.props.caseSensitive\n );\n });\n }\n\n private getScreenRefByKey(key: string) {\n const screen = this.state.screenStack.find(screen => screen.key === key)?.ref;\n if (isRefObject(screen)) return screen;\n return null;\n }\n\n protected canIntercept(e: NavigateEvent): boolean {\n const pathname = new URL(e.destination.url).pathname;\n const baseURLPattern = this.baseURLPattern.pathname;\n return this.mounted\n && this.shouldIntercept(e)\n && includesRoute(this.pathPatterns, pathname, baseURLPattern);\n }\n\n protected shouldIntercept(e: NavigateEvent): boolean {\n if (this.props.config?.shouldIntercept)\n return this.props.config.shouldIntercept(e);\n return e.canIntercept\n && !e.formData\n && !e.hashChange\n && !e.downloadRequest;\n }\n\n protected intercept(e: NavigateEvent | LoadEvent): void {\n if (this.props.config?.onIntercept && e.navigationType !== \"load\")\n if (this.props.config.onIntercept(e) || e.defaultPrevented)\n return;\n\n switch (e.navigationType) {\n case \"load\":\n this.handleLoad(e);\n break;\n\n case \"reload\":\n case \"replace\":\n this.handleReplace(e);\n break;\n\n default:\n this.handleDefault(e);\n break;\n }\n }\n\n private handleLoad(e: LoadEvent) {\n const handler = () => {\n const fromKey = e.transition?.from?.key ?? null;\n const destinationKey = e.destination.key;\n const transition = e.transition;\n const screenStack: RouterState[\"screenStack\"] = new Array();\n const entries = this.navigation.entries;\n entries.forEach((entry) => {\n if (!entry.url) return null;\n const screen = this.screenChildFromPathname(entry.url.pathname, entry.key);\n if (!screen) return null;\n screenStack.push(screen);\n });\n\n return new Promise<void>((resolve, reject) => startTransition(() => {\n this.setState({ screenStack, fromKey, transition, destinationKey }, async () => {\n const { initialPath } = this.props.config ?? {};\n const [firstEntry] = entries;\n if (\n initialPath\n && entries.length === 1\n && firstEntry.url\n && !matchRoute(\n initialPath,\n firstEntry.url.pathname,\n this.baseURLPattern.pathname\n )\n ) {\n const transitionFinished = window.navigation.transition?.finished ?? Promise.resolve();\n transitionFinished.then(() => {\n this.navigation.replace(initialPath).finished.then(() => {\n const state = e.destination.getState() as HistoryEntryState ?? {};\n this.navigation.push(e.destination.url, state);\n });\n });\n return resolve();\n }\n const signal = e.signal;\n if (this.navigation.current?.key === undefined)\n reject(new Error(\"Current key is undefined\"));\n\n const currentScreen = this.getScreenRefByKey(this.navigation.current.key);\n await this.dispatchLifecycleHandlers(currentScreen, null, signal).catch(reject);\n this.setState({ destinationKey: null, fromKey: null, transition: null }, resolve);\n });\n }));\n }\n\n e.intercept({ handler });\n }\n\n private handleReplace(e: NavigateEvent) {\n const screenStack = this.state.screenStack;\n const destination = e.destination;\n const destinationPathname = new URL(destination.url).pathname;\n const destinationKey = window.navigation.currentEntry?.key ?? destination.key;\n const destinationScreen = this.screenChildFromPathname(destinationPathname, destinationKey);\n if (!destinationScreen) return e.preventDefault();\n const handler = () => {\n const isHotReplace = this.state.transition !== null;\n const transition = this.state.transition ?? window.navigation.transition;\n const fromKey = transition?.from?.key ?? null;\n const currentIndex = screenStack.findIndex(screen => screen.key === this.navigation.current?.key);\n screenStack.splice(\n currentIndex,\n 1,\n destinationScreen\n );\n\n return new Promise<void>((resolve, reject) => startTransition(() => {\n this.setState({ destinationKey, fromKey, transition, screenStack }, async () => {\n const signal = e.signal;\n const outgoingScreen = this.getScreenRefByKey(String(fromKey));\n const incomingScreen = this.getScreenRefByKey(String(destinationKey));\n const pendingLifecycleHandlers = this.dispatchLifecycleHandlers(incomingScreen, null, signal).catch(reject);\n if (isHotReplace) {\n const currentTime = this.screenTransitionLayer.current?.animation.currentTime ?? 0;\n this.screenTransitionLayer.current?.animation.cancel();\n await new Promise(requestAnimationFrame);\n const animation = this.screenTransition(incomingScreen, outgoingScreen);\n if (animation) {\n animation.currentTime = currentTime;\n }\n animation?.updatePlaybackRate(1);\n await animation?.finished.catch(reject);\n }\n await pendingLifecycleHandlers;\n this.setState({ destinationKey: null, fromKey: null, transition: null }, resolve);\n });\n }));\n };\n\n e.intercept({ handler });\n }\n\n private handleDefault(e: NavigateEvent) {\n const screenStack = this.state.screenStack;\n const destination = e.destination;\n const destinationPathname = new URL(destination.url).pathname;\n if (!isValidScreenChild<Screen>(this.getScreenChildByPathname(destinationPathname)))\n return e.preventDefault();\n const handler = () => {\n if (isRollback(e.info)) return Promise.resolve();\n const transition = window.navigation.transition;\n let fromIndex = screenStack.findIndex(screen => screen.key === transition?.from.key);\n if (fromIndex === -1 && e.navigationType === \"traverse\") {\n fromIndex = screenStack.findIndex(screen => {\n if (!transition?.from.url || !screen.props.resolvedPathname) return false;\n const pathnameMatched = transition.from.url.includes(screen.props.resolvedPathname);\n const patternMatched = matchRoute(\n screen.props.path,\n new URL(transition.from.url).pathname,\n this.baseURLPattern.pathname,\n screen.props.caseSensitive\n );\n return pathnameMatched && patternMatched;\n });\n }\n const fromKey = (screenStack[fromIndex]?.key || transition?.from.key) ?? null;\n const destinationIndex = screenStack.findIndex(screen => screen.key === e.destination.key);\n const destinationKey = (screenStack[destinationIndex]?.key || window.navigation.currentEntry?.key) ?? null;\n if (e.navigationType === \"push\") {\n const destinationPathname = new URL(destination.url).pathname;\n const destinationScreen = this.screenChildFromPathname(destinationPathname, destinationKey);\n if (!destinationScreen) return Promise.resolve();\n screenStack.splice(\n fromIndex + 1,\n Infinity, // Remove all screens after current\n destinationScreen\n );\n }\n\n const controller = new AbortController();\n return new Promise<void>((resolve, reject) => startTransition(() => {\n this.setState({ controller, destinationKey, fromKey, transition, screenStack }, async () => {\n controller.signal.onabort = reject;\n const signal = e.signal;\n const outgoingScreen = this.getScreenRefByKey(String(fromKey));\n const incomingScreen = this.getScreenRefByKey(String(destinationKey));\n const pendingLifecycleHandlers = this.dispatchLifecycleHandlers(incomingScreen, outgoingScreen, signal).catch(reject);\n const animation = this.screenTransition(incomingScreen, outgoingScreen);\n animation?.updatePlaybackRate(1);\n animation?.finished.catch(reject);\n await pendingLifecycleHandlers;\n this.setState({ destinationKey: null, fromKey: null, transition: null, controller: null }, resolve);\n });\n }));\n }\n\n let commit;\n if (isGesture(e.info)) {\n commit = \"after-transition\";\n this.addEventListener(\"gesture-end\", () => e.commit?.(), { once: true });\n this.addEventListener(\"gesture-cancel\", this.onGestureCancel, { once: true });\n } else {\n commit = \"immediate\";\n }\n const options = { handler, commit };\n e.intercept(options);\n }\n\n private async dispatchLifecycleHandlers(incomingScreen: React.RefObject<Screen> | null, outgoingScreen: React.RefObject<Screen> | null, signal: AbortSignal) {\n let animationStarted = false;\n this.addEventListener('transition-start', () => animationStarted = true, { once: true });\n\n await Promise.all([\n outgoingScreen?.current?.onExit(signal),\n incomingScreen?.current?.onEnter(signal),\n incomingScreen?.current?.load(signal)\n ]);\n\n if (animationStarted)\n await new Promise((resolve) => this.addEventListener('transition-end', resolve, { once: true }));\n\n // if gesture navigation cancelled then exit here\n if (this.state.controller?.signal.aborted) return;\n\n await Promise.all([\n outgoingScreen?.current?.onExited(signal).then(() => outgoingScreen.current?.blur()),\n incomingScreen?.current?.onEntered(signal).then(() => incomingScreen.current?.focus())\n ]);\n }\n\n private screenTransition(\n incomingScreen: React.RefObject<Screen> | null,\n outgoingScreen: React.RefObject<Screen> | null\n ) {\n const { backNavigating } = this;\n if (this.screenTransitionLayer.current && incomingScreen && outgoingScreen) {\n this.screenTransitionLayer.current.direction = backNavigating ? 'reverse' : 'normal';\n if (incomingScreen.current?.transitionProvider.current) {\n incomingScreen.current.transitionProvider.current.exiting = false;\n }\n if (outgoingScreen.current?.transitionProvider.current) {\n outgoingScreen.current.transitionProvider.current.exiting = true;\n }\n if (this.screenTransitionLayer.current.sharedElementTransitionLayer.current) {\n this.screenTransitionLayer.current.sharedElementTransitionLayer.current.outgoingScreen = outgoingScreen;\n this.screenTransitionLayer.current.sharedElementTransitionLayer.current.incomingScreen = incomingScreen;\n }\n const topScreenIndex = this.screens.findIndex(screen => screen.ref === (backNavigating ? outgoingScreen : incomingScreen));\n this.screenTransitionLayer.current.screens = this.screens\n .map((screen, index) => {\n // normalise indices making incoming screen index 1 and preceding screens index 0...-n\n index = (index - topScreenIndex) + 1;\n if (isRefObject(screen.ref) && screen.ref.current?.transitionProvider.current) {\n screen.ref.current.transitionProvider.current.index = index;\n return screen.ref;\n }\n return null;\n })\n .filter(isRefObject);\n\n return this.screenTransitionLayer.current.transition();\n }\n }\n}","import { PlainObject, useNavigationBase, useRouteBase, useRouterBase } from \"@react-motion-router/core\";\nimport { Navigation } from \"../Navigation\";\nimport { Router } from \"../Router\";\nimport { RouteProp } from \"./types\";\nimport { useDebugValue } from \"react\";\n\nexport function useNavigation() {\n\tuseDebugValue(\"StackNavigation\");\n\treturn useNavigationBase<Navigation>();\n}\n\nexport function useRouter() {\n\tuseDebugValue(\"StackRouter\");\n\treturn useRouterBase<Router>();\n}\n\nexport function useRoute<T extends PlainObject = PlainObject>() {\n\tuseDebugValue(\"StackRoute\");\n\treturn useRouteBase<RouteProp<T>>();\n}","import { PlainObject } from \"@react-motion-router/core\";\nimport { Navigation } from \"./Navigation\";\nimport { NavigateOptions, XOR } from \"./common/types\";\nimport { useState, useEffect } from \"react\";\nimport { useNavigation } from \"./common/hooks\";\nimport { searchParamsFromObject } from \"./common/utils\";\n\ninterface BaseAnchorProps extends React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement> {\n onClick?: React.MouseEventHandler<HTMLAnchorElement>;\n navigation?: Navigation;\n}\n\ninterface ForwardAnchorProps extends BaseAnchorProps {\n params?: PlainObject<string | boolean | number>;\n href: string;\n type?: NavigateOptions[\"type\"];\n preload?: boolean;\n}\n\ninterface BackAnchorProps extends BaseAnchorProps {\n goBack: boolean;\n}\n\ntype AnchorProps = XOR<ForwardAnchorProps, BackAnchorProps>;\n\nfunction useNavigationOrDefault(navigation?: Navigation) {\n const defaultNavigation = useNavigation();\n return navigation ?? defaultNavigation;\n}\n\nexport function Anchor(props: AnchorProps) {\n const {\n preload,\n goBack,\n params = {},\n type = \"push\",\n href: hrefProp,\n onClick: onClickProp,\n ...aProps\n } = props;\n const navigation = useNavigationOrDefault(props.navigation);\n const [href, setHref] = useState<string | undefined>(undefined);\n const routerId = navigation?.routerId;\n const isExternal = !href?.includes(window.location.origin);\n const rel = isExternal ? \"noopener noreferrer\" : goBack ? \"prev\" : \"next\";\n\n useEffect(() => {\n if (!preload || !href) return;\n navigation.preloadRoute(hrefProp);\n }, [preload, hrefProp]);\n\n useEffect(() => {\n if (goBack) {\n setHref(navigation.previous?.url?.href);\n } else if (hrefProp) {\n const search = searchParamsFromObject(params);\n const uri = new URL(hrefProp, navigation.baseURL);\n uri.search = search;\n setHref(uri.href);\n }\n }, [hrefProp, params]);\n\n const onClick = (e: React.MouseEvent<HTMLAnchorElement>) => {\n if (goBack) {\n e.preventDefault();\n navigation.goBack();\n } else if (type === \"replace\" && hrefProp) {\n e.preventDefault();\n navigation.replace(hrefProp);\n }\n onClickProp?.(e);\n };\n\n return (\n <a\n href={href}\n data-router-id={routerId}\n onClick={onClick}\n rel={rel}\n {...aProps}\n >\n {props.children}\n </a>\n );\n}","export const SlideInFromRightKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateX(100vw)',\n\t},\n\t{\n\t\ttransform: 'translateX(0vw)'\n\t}\n];\n\nexport const iOSSlideInFromRightKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateX(100vw)',\n\t},\n\t{\n\t\ttransform: 'translateX(0vw)'\n\t}\n];\n\nexport const SlideOutToLeftKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateX(0vw)'\n\t},\n\t{\n\t\ttransform: 'translateX(-50vw)'\n\t}\n];\n\nexport const iOSSlideOutToLeftKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateX(0vw)',\n\t},\n\t{\n\t\ttransform: 'translateX(calc(100vw * -0.3))'\n\t}\n];\n\nexport const SlideInFromLeftKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateX(-100vw)'\n\t},\n\t{\n\t\ttransform: 'translateX(0vw)'\n\t}\n];\n\nexport const iOSSlideInFromLeftKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateX(-100vw)'\n\t},\n\t{\n\t\ttransform: 'translateX(0vw)'\n\t}\n];\n\nexport const SlideOutToRightKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateX(0vw)'\n\t},\n\t{\n\t\ttransform: 'translateX(50vw)'\n\t}\n];\n\nexport const iOSSlideOutToRightKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateX(0vw)'\n\t},\n\t{\n\t\ttransform: 'translateX(calc(100vw * 0.3))'\n\t}\n];\n\nexport const SlideInFromBottomKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateY(100vh)'\n\t},\n\t{\n\t\ttransform: 'translateY(0vh)'\n\t}\n];\n\nexport const iOSSlideInFromBottomKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateY(100vh)'\n\t},\n\t{\n\t\ttransform: 'translateY(0vh)'\n\t}\n];\n\nexport const SlideOutToTopKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateY(0vh)'\n\t},\n\t{\n\t\ttransform: 'translateY(-50vh)'\n\t}\n];\n\nexport const SlideInFromTopKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateY(-100vh)'\n\t},\n\t{\n\t\ttransform: 'translateY(0vh)'\n\t}\n];\n\nexport const SlideOutToBottomKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateY(0vh)'\n\t},\n\t{\n\t\ttransform: 'translateY(50vh)'\n\t}\n];\n\nexport const ZoomInKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'scale(0.85)',\n\t\topacity: 0\n\t},\n\t{\n\t\ttransform: 'scale(1)',\n\t\topacity: 1\n\t}\n];\n\nexport const ZoomOutKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'scale(1)',\n\t\topacity: 1\n\t},\n\t{\n\t\ttransform: 'scale(1.15)',\n\t\topacity: 0\n\t}\n];\n\nexport const FadeInKeyframes: Keyframe[] = [\n\t{\n\t\topacity: 0\n\t},\n\t{\n\t\topacity: 1\n\t}\n];\n\nexport const FadeOutKeyframes: Keyframe[] = [\n\t{\n\t\topacity: 1\n\t},\n\t{\n\t\topacity: 0\n\t}\n];\n\nexport const androidFadeInFromBottomKeyframes: Keyframe[] = [\n\t{\n\t\topacity: 0,\n\t\ttransform: 'translateY(calc(100vh * 0.08))'\n\t},\n\t{\n\t\topacity: 0.25,\n\t\toffset: 0.5\n\t},\n\t{\n\t\topacity: 0.7,\n\t\toffset: 0.9\n\t},\n\t{\n\t\topacity: 1,\n\t\ttransform: 'translateY(0vh)'\n\t}\n];\n\nexport const androidFadeInFromRightKeyframes: Keyframe[] = [\n\t{\n\t\topacity: 0,\n\t\ttransform: 'translateY(96vw)'\n\t},\n\t{\n\t\topacity: 1,\n\t\ttransform: 'translateY(0vw)'\n\t}\n];\n\nexport const androidFadeOutToLeftKeyframes: Keyframe[] = [\n\t{\n\t\topacity: 0,\n\t\ttransform: 'translateY(0vw)'\n\t},\n\t{\n\t\topacity: 1,\n\t\ttransform: 'translateY(-96vw)'\n\t}\n];\n\nexport const androidRevealFromBottomKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateY(100vh)'\n\t},\n\t{\n\t\ttransform: 'translateY(0vh)'\n\t}\n];\n\nexport const androidConcealToBottomKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateY(0vh)'\n\t},\n\t{\n\t\ttransform: 'translateY(-2vh)'\n\t}\n];\n\nexport const androidScaleFromCentreKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'scale(0.85)',\n\t\topacity: 0\n\t},\n\t{\n\t\topacity: 0,\n\t\toffset: 0.75\n\t},\n\t{\n\t\topacity: 1,\n\t\toffset: 0.875\n\t},\n\t{\n\t\ttransform: 'scale(1)',\n\t\topacity: 1\n\t}\n];\n\nexport const androidScaleToCentreKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'scale(1)',\n\t\topacity: 1\n\t},\n\t{\n\t\topacity: 1,\n\t\toffset: 0.0825\n\t},\n\t{\n\t\topacity: 1,\n\t\toffset: 0.2075\n\t},\n\t{\n\t\ttransform: 'scale(1.075)',\n\t\topacity: 0\n\t}\n];\n\nexport const androidFadeInFromBottomSheetKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateY(calc(100vh * 0.8))',\n\t\topacity: 0\n\t},\n\t{\n\t\ttransform: 'translateY(0vh)',\n\t\topacity: 1\n\t}\n];","import { easingToLinear, springToLinear } from \"web-animations-extension\";\n\nfunction easingOut(easing: (t: number) => number): (t: number) => number {\n\treturn t => 1 - easing(1 - t);\n}\n\nfunction easingPoly(n: number): (t: number) => number {\n\treturn (t: number) => Math.pow(t, n);\n}\n\nexport const iOSKeyframeOptions: KeyframeEffectOptions = {\n\t...springToLinear({\n\t\tmass: 3,\n\t\tstiffness: 1000,\n\t\tdamping: 500,\n\t\tvelocity: 0,\n\t\tsteps: 200\n\t})\n};\n\nexport const androidFadeInFromBottomOptions: KeyframeAnimationOptions = {\n\tduration: 350,\n\teasing: easingToLinear(easingOut(easingPoly(5)))\n};\n\nexport const androidFadeOutToBottomOptions: KeyframeAnimationOptions = {\n\tduration: 150,\n\teasing: 'linear'\n};\n\nexport const androidRevealFromBottomOptions: KeyframeAnimationOptions = {\n\tduration: 425,\n\teasing: 'cubic-bezier(0.35, 0.45, 0, 1)'\n};\n\nexport const androidScaleFromCentreOptions: KeyframeAnimationOptions = {\n\tduration: 400,\n\teasing: 'cubic-bezier(0.35, 0.45, 0, 1)'\n};\n\nexport const androidBottomSheetSlideInOptions: KeyframeAnimationOptions = {\n\tduration: 250,\n\teasing: easingToLinear(t => Math.cos((t + 1) * Math.PI) / 2.0 + 0.5)\n};\n\nexport const androidBottomSheetSlideOutOptions: KeyframeAnimationOptions = {\n\tduration: 200,\n\teasing: easingToLinear(t => (t === 1.0 ? 1 : Math.pow(t, 2)))\n};","import { AnimationEffectFactoryProps } from \"@react-motion-router/core\";\nimport {\n\tandroidBottomSheetSlideInOptions,\n\tandroidBottomSheetSlideOutOptions,\n\tandroidFadeInFromBottomOptions,\n\tandroidFadeOutToBottomOptions,\n\tandroidRevealFromBottomOptions,\n\tandroidScaleFromCentreOptions,\n\tiOSKeyframeOptions\n} from \"./keyframe-options-presets\";\nimport {\n\tandroidConcealToBottomKeyframes,\n\tandroidFadeInFromBottomKeyframes,\n\tandroidFadeInFromBottomSheetKeyframes,\n\tandroidFadeInFromRightKeyframes,\n\tandroidFadeOutToLeftKeyframes,\n\tandroidRevealFromBottomKeyframes,\n\tandroidScaleFromCentreKeyframes,\n\tandroidScaleToCentreKeyframes,\n\tiOSSlideInFromBottomKeyframes,\n\tiOSSlideInFromLeftKeyframes,\n\tiOSSlideInFromRightKeyframes,\n\tiOSSlideOutToLeftKeyframes,\n\tiOSSlideOutToRightKeyframes,\n} from \"./keyframe-presets\";\n\nexport function iOSSlideInFromRight({ ref, direction, playbackRate, index }: AnimationEffectFactoryProps) {\n\tconst keyframesPresets = [\n\t\tiOSSlideOutToLeftKeyframes,\n\t\tiOSSlideInFromRightKeyframes\n\t];\n\n\tlet keyframes = keyframesPresets[index];\n\tconst options: KeyframeEffectOptions = {\n\t\tplaybackRate,\n\t\tfill: \"forwards\" as const,\n\t\t...iOSKeyframeOptions\n\t};\n\n\tif (direction === \"reverse\")\n\t\tkeyframes = keyframes.toReversed();\n\n\treturn new KeyframeEffect(ref, keyframes, options);\n}\n\nexport function iOSSlideInFromLeft({ ref, direction, playbackRate, index }: AnimationEffectFactoryProps) {\n\tconst keyframesPresets = [\n\t\tiOSSlideOutToRightKeyframes,\n\t\tiOSSlideInFromLeftKeyframes\n\t];\n\n\tlet keyframes = keyframesPresets[index];\n\tconst options: KeyframeEffectOptions = {\n\t\tplaybackRate,\n\t\tfill: \"forwards\" as const,\n\t\t...iOSKeyframeOptions\n\t};\n\n\tif (direction === \"reverse\")\n\t\tkeyframes = keyframes.toReversed();\n\n\treturn new KeyframeEffect(ref, keyframes, options);\n}\n\nexport function iOSSlideInFromBottom({ ref, direction, playbackRate }: AnimationEffectFactoryProps) {\n\tlet keyframes = iOSSlideInFromBottomKeyframes;\n\tconst options: KeyframeEffectOptions = {\n\t\tplaybackRate,\n\t\tfill: \"forwards\" as const,\n\t\t...iOSKeyframeOptions\n\t};\n\n\tif (direction === \"reverse\")\n\t\tkeyframes = keyframes.toReversed();\n\n\treturn new KeyframeEffect(ref, keyframes, options);\n}\n\nexport function androidFadeInFromBottom({ ref, direction, playbackRate }: AnimationEffectFactoryProps) {\n\tlet keyframes = androidFadeInFromBottomKeyframes;\n\tconst options: KeyframeEffectOptions = {\n\t\tplaybackRate,\n\t\tfill: \"forwards\" as const,\n\t\t...androidFadeInFromBottomOptions\n\t};\n\n\tif (direction === \"reverse\")\n\t\tkeyframes = keyframes.toReversed();\n\n\treturn new KeyframeEffect(ref, keyframes, options);\n}\n\nexport function androidFadeInFromBottomSheet({ ref, direction, index, playbackRate }: AnimationEffectFactoryProps) {\n\tlet keyframes = androidFadeInFromBottomSheetKeyframes;\n\tlet timing;\n\tif (index === 0)\n\t\ttiming = androidBottomSheetSlideOutOptions;\n\telse\n\t\ttiming = androidBottomSheetSlideInOptions;\n\tconst options: KeyframeEffectOptions = {\n\t\tplaybackRate,\n\t\tfill: \"forwards\" as const,\n\t\t...timing\n\t};\n\n\tif (direction === \"reverse\")\n\t\tkeyframes = keyframes.toReversed();\n\n\treturn new KeyframeEffect(ref, keyframes, options);\n}\n\nexport function androidRevealFromBottom({ ref, direction, index, playbackRate }: AnimationEffectFactoryProps) {\n\tlet keyframesPresets = [\n\t\tandroidConcealToBottomKeyframes,\n\t\tandroidRevealFromBottomKeyframes\n\t];\n\n\tconst keyframes = keyframesPresets[index];\n\tconst options: KeyframeEffectOptions = {\n\t\tdirection,\n\t\tplaybackRate,\n\t\tfill: \"forwards\" as const,\n\t\t...androidRevealFromBottomOptions\n\t};\n\n\treturn new KeyframeEffect(ref, keyframes, options);\n}\n\nexport function androidFadeInFromRight({ ref, direction, index, playbackRate }: AnimationEffectFactoryProps) {\n\tlet keyframesPresets = [\n\t\tandroidFadeOutToLeftKeyframes,\n\t\tandroidFadeInFromRightKeyframes\n\t];\n\tlet timing;\n\tif (index === 0)\n\t\ttiming = androidFadeOutToBottomOptions;\n\telse\n\t\ttiming = androidFadeInFromBottomOptions;\n\n\tlet keyframes = keyframesPresets[index];\n\tconst options: KeyframeEffectOptions = {\n\t\tplaybackRate,\n\t\tfill: \"forwards\" as const,\n\t\t...timing\n\t};\n\n\tif (direction === \"reverse\")\n\t\tkeyframes = keyframes.toReversed();\n\n\treturn new KeyframeEffect(ref, keyframes, options);\n}\n\nexport function androidScaleFromCentre({ ref, direction, index, playbackRate }: AnimationEffectFactoryProps) {\n\tlet keyframesPresets = [\n\t\tandroidScaleToCentreKeyframes,\n\t\tandroidScaleFromCentreKeyframes\n\t];\n\n\tconst keyframes = keyframesPresets[index];\n\tconst options: KeyframeEffectOptions = {\n\t\tdirection,\n\t\tplaybackRate,\n\t\tfill: \"forwards\" as const,\n\t\t...androidScaleFromCentreOptions\n\t};\n\n\treturn new KeyframeEffect(ref, keyframes, options);\n}","import { useRef, useEffect } from 'react';\nimport { SwipeStartEvent } from 'web-gesture-events';\n\ninterface GestureRegionProps extends React.HTMLAttributes<HTMLDivElement> {\n disabled?: boolean;\n}\nexport function GestureRegion({disabled, children, ...props}: GestureRegionProps) {\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (disabled) return;\n const onSwipeStart = (e: SwipeStartEvent) => {\n e.stopPropagation();\n e.preventDefault();\n }\n\n ref.current?.addEventListener('swipestart', onSwipeStart);\n\n return () => {\n ref.current?.removeEventListener('swipestart', onSwipeStart);\n }\n }, [ref, disabled]);\n\n return (\n <div\n ref={ref}\n className=\"gesture-region\"\n data-disabled={disabled}\n style={{display: 'contents'}}\n {...props}\n >\n {children}\n </div>\n );\n}","/// <reference types=\"urlpattern-polyfill\" />\nimport 'web-gesture-events';\nexport * from './Navigation';\nexport * from './Screen';\nexport * from './Router';\nexport * from './Anchor';\nexport * from './animation-configs/keyframe-presets';\nexport * from './animation-configs/keyframe-options-presets';\nexport * from './animation-configs/animation-presets';\nexport * from './common/hooks';\nexport * from './GestureRegion';\nexport * from './HistoryEntry';"],"names":[],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"index.js","mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACa,MAAM,mBAAO,CAAC,GAAO,6KAA6K;AAC/M,kBAAkB,UAAU,eAAe,qBAAqB,6BAA6B,0BAA0B,0DAA0D,4EAA4E,OAAO,wDAAwD,yBAAgB,GAAG,WAAW,GAAG,yBAAY;;;;;;;;ACV5V;;AAEb,IAAI,IAAqC;AACzC,EAAE,yCAAqE;AACvE,EAAE,KAAK,EAEN;;;;;;;;ACNY;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uCAAuC,mBAAO,CAAC,GAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;ACZa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oDAAoD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;AC7Ca;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uCAAuC,mBAAO,CAAC,GAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;ACda;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,GAAG,qBAAqB;AAC3C,uCAAuC,mBAAO,CAAC,GAAgB;AAC/D;AACA;AACA;AACA;AACA,CAAC,sDAAsD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;;;;;;;ACvDa;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,uBAAuB;AAC/C,uCAAuC,mBAAO,CAAC,GAAgB;AAC/D;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;AClDa;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB,GAAG,wBAAwB;AACjD,uCAAuC,mBAAO,CAAC,GAAgB;AAC/D;AACA;AACA;AACA;AACA,CAAC,4DAA4D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;;;;;;;ACzDa;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,uBAAuB;AAC/C,uCAAuC,mBAAO,CAAC,GAAgB;AAC/D;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;AChDa;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uCAAuC,mBAAO,CAAC,GAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;ACba;AACb;AACA;AACA,mCAAmC,oCAAoC,gBAAgB;AACvF,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB,GAAG,mBAAmB,GAAG,wBAAwB,GAAG,qBAAqB,GAAG,kBAAkB,GAAG,uBAAuB,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,qBAAqB,GAAG,kBAAkB,GAAG,uBAAuB,GAAG,sBAAsB,GAAG,sBAAsB,GAAG,oBAAoB,GAAG,gBAAgB;AAClX,uCAAuC,mBAAO,CAAC,GAAyB;AACxE,oBAAoB;AACpB,yCAAyC,mBAAO,CAAC,GAA2B;AAC5E,sBAAsB;AACtB,mCAAmC,mBAAO,CAAC,EAAqB;AAChE,gBAAgB;AAChB,yCAAyC,mBAAO,CAAC,GAA2B;AAC5E,sBAAsB;AACtB,kCAAkC,mBAAO,CAAC,GAAuB;AACjE,kBAAkB;AAClB,iDAAgD,EAAE,qCAAqC,sCAAsC,EAAC;AAC9H,mDAAkD,EAAE,qCAAqC,wCAAwC,EAAC;AAClI,gCAAgC,mBAAO,CAAC,GAAqB;AAC7D,gBAAgB;AAChB,+CAA8C,EAAE,qCAAqC,kCAAkC,EAAC;AACxH,iDAAgD,EAAE,qCAAqC,oCAAoC,EAAC;AAC5H,kCAAkC,mBAAO,CAAC,GAAuB;AACjE,kBAAkB;AAClB,iDAAgD,EAAE,qCAAqC,sCAAsC,EAAC;AAC9H,mDAAkD,EAAE,qCAAqC,wCAAwC,EAAC;AAClI,mCAAmC,mBAAO,CAAC,GAAwB;AACnE,mBAAmB;AACnB,kDAAiD,EAAE,qCAAqC,wCAAwC,EAAC;AACjI,oDAAmD,EAAE,qCAAqC,0CAA0C,EAAC;AACrI,gBAAgB,mBAAO,CAAC,EAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wDAAwD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;;;;;;;AC5Va;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,YAAY,GAAG,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe;AACf;;;;;;;ACrFA,eAAe,YAAY,6BAA6B;AACxD;AACA;;;;;;SCFA;SACA;;SAEA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;;SAEA;SACA;;SAEA;SACA;SACA;;;;;UCtBA;UACA;UACA;UACA;UACA,yCAAyC,wCAAwC;UACjF;UACA;UACA;;;;;UCPA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA,eAAe,YAAY,6BAA6B;AACxD;AACA,MAAM,oBAA4B,OAAO,uoCAAuoC;;ACCzqC,MAAM,aAAc,SAAQ,KAAK;IAC9B,QAAQ,CAAS;IACjB,KAAK,CAAS;IACd,KAAK,CAAkB;IACvB,cAAc,CAAuC;IACrD,MAAM,CAAc;IACpB,SAAS,CAAkC;IAC3C,UAAU,CAAuB;IAE1C,YACC,QAAgB,EAChB,KAAa,EACb,KAAsB,EACtB,IAA6B,EAC7B,MAAmB,EACnB,SAA0C,EAC1C,UAAgC;QAEhC,KAAK,CAAC,UAAU,CAAC,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,MAAM,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,CAAC;CACD;AAEM,MAAM,SAAU,SAAQ,KAAK;IAC1B,QAAQ,CAAS;IACjB,MAAM,CAAc;IACpB,SAAS,CAAkC;IAC3C,UAAU,CAAuB;IAE1C,YAAY,QAAgB,EAAE,MAAmB,EAAE,SAA0C,EAAE,UAAgC;QAC9H,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,CAAC;CACD;AAEM,MAAM,YAAa,SAAQ,KAAK;IAC7B,QAAQ,CAAS;IACjB,MAAM,CAAc;IACpB,SAAS,CAAkC;IAC3C,UAAU,CAAuB;IAE1C,YAAY,QAAgB,EAAE,MAAmB,EAAE,SAA0C,EAAE,UAAgC;QAC9H,KAAK,CAAC,SAAS,CAAC,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,CAAC;CACD;AAEM,MAAM,iBAAkB,SAAQ,KAAK;IAClC,MAAM,CAAe;IAE9B,YAAY,MAAoB;QAC/B,KAAK,CAAC,eAAe,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;CACD;AAEM,MAAM,eAAgB,SAAQ,KAAK;IAChC,MAAM,CAAe;IAE9B,YAAY,MAAoB;QAC/B,KAAK,CAAC,aAAa,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;CACD;AAEM,MAAM,kBAAmB,SAAQ,KAAK;IAC5C;QACC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACzB,CAAC;CACD;;;ACpFM,MAAM,YAAY;IACf,QAAQ,CAAS;IAC1B,YAAY,CAAyB;IAC5B,KAAK,CAAS;IAEvB,YAAY,WAAmC,EAAE,QAAgB,EAAE,KAAa;QAC/E,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,SAAS,CAAC,OAAkE;QAC/E,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,OAAO,CAAC;IACvC,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;IACpC,CAAC;IAED,IAAI,EAAE;QACL,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;IAChC,CAAC;IAED,IAAI,GAAG;QACN,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACxC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,GAAG;QACN,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;IAC9B,CAAC;IAED,IAAI,YAAY;QACf,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;IACvC,CAAC;IAID,gBAAgB,CAAC,IAAY,EAAE,QAA4C,EAAE,OAA2C;QACvH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE5D,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IAID,mBAAmB,CAAC,IAAY,EAAE,QAA4C,EAAE,OAAwC;QACvH,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,aAAa,CAAC,KAAY;QACzB,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,QAAQ;QACP,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAO,CAAC;IAC1C,CAAC;CACD;;;ACzDkC;AAEsC;AAC3B;AAGvC,MAAM,UAAW,SAAQ,mCAA8B;IACvC,MAAM,CAAS;IAElC,YAAY,MAAc;QACtB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,KAAa,EAAE,QAAyB,EAAE,EAAE,UAAiC,EAAE;QACnF,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,QAAyB,EAAE,EAAE,UAAiC,EAAE;QAChF,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,QAAyB,EAAE;QAC9B,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,UAAU,CAAC,GAAW,EAAE,UAAiC,EAAE;QACvD,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,UAAW,CAAC;QAEjD,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QACxC,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAE3F,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACxG,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5E,IAAI,KAAK,CAAC;QACV,IAAI,SAAS,GAAG,gBAAgB,EAAE,CAAC;YAC/B,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAClF,CAAC;aAAM,CAAC;YACJ,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC;QAE5B,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,QAAQ,CACJ,KAAa,EACb,QAAyB,EAAE,EAC3B,UAA2B,EAAE;QAE7B,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;QAE3C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/E,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,UAAW,CAAC;QAEjD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACjF,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5E,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC/G,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC;QAE5B,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,UAAyB,EAAE;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAAE,OAAO;QAE9B,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,UAAW,CAAC;QAEjD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5E,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACpF,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC;QAE5B,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,SAAS,CAAC,UAA4B,EAAE;QACpC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAAE,OAAO;QAEjC,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,UAAW,CAAC;QAEjD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACjF,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5E,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACvF,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC;QAE5B,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,eAAe,CACnB,MAAmB,EACnB,SAA0C,EAC1C,UAAgC;QAEhC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5D,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACvE,CAAC;IAEO,kBAAkB,CACtB,MAAmB,EACnB,SAA0C,EAC1C,UAAgC;QAEhC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5D,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAC1E,CAAC;IAEO,mBAAmB,CACvB,KAAa,EACb,KAAsB,EACtB,IAA6B,EAC7B,MAAmB,EACnB,SAA0C,EAC1C,UAAgC;QAEhC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5D,OAAO,IAAI,aAAa,CACpB,IAAI,CAAC,QAAQ,EACb,KAAK,EACL,KAAK,EACL,IAAI,EACJ,MAAM,EACN,SAAS,EACT,UAAU,CACb,CAAC;IACN,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IACjC,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;IACxC,CAAC;IAED,IAAI,aAAa;QACb,OAAO,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC;IAED,IAAI,OAAO;QACP,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACpG,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,OAAO,IAAI,CAAC,aAAa;aACpB,MAAM,CAAC,KAAK,CAAC,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,GAAG;gBAAE,OAAO,KAAK,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,kDAAyB,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC;gBACtE,OAAO,KAAK,CAAC;YAEjB,IAAI,sCAAa,CAAC,kBAAkB,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChF,IAAI,aAAa;oBACb,OAAO,KAAK,CAAC;gBAEjB,OAAO,aAAa,GAAG,IAAI,CAAC,CAAC,uGAAuG;YACxI,CAAC;iBAAM,CAAC;gBACJ,aAAa,GAAG,KAAK,CAAC;gBACtB,OAAO,IAAI,CAAC,CAAC,kCAAkC;YACnD,CAAC;QACL,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAClB,OAAO,IAAI,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACX,CAAC;IAED,IAAI,KAAK;QACL,MAAM,kBAAkB,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;QACvE,MAAM,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;QACpE,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;QACpE,IAAI,kBAAkB,IAAI,qBAAqB;YAC3C,OAAO,CAAC,CAAC;aACR,IAAI,kBAAkB,IAAI,oBAAoB;YAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;aAC9B,CAAC;YACF,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,qBAAqB,EAAE,kBAAkB,GAAG,CAAC,CAAC,CAAC;YAC9F,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;gBACtC,OAAO,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1F,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;IAChD,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;IAChD,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,SAAS;QACL,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC;IAED,YAAY;QACR,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC5C,CAAC;CACJ;;;ACrNM,SAAS,oBAAoB,CAAC,YAA6B;IACjE,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC;IACvC,MAAM,MAAM,GAAwB,EAAE,CAAC;IAEvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,uCAAuC;QAC5E,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC;YACJ,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;YAC3E,WAAW,GAAG,KAAK,CAAC;QACrB,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;IAC3B,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC;AAEM,SAAS,sBAAsB,CAAC,MAA8B;IACpE,IAAI,CAAC;QACJ,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,EAAE,CAAC;AACX,CAAC;AAEM,SAAS,SAAS,CAAC,IAAc;IACvC,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,SAAS,IAAI,IAAI;QACxD,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC;AACd,CAAC;AAEM,SAAS,UAAU,CAAC,IAAc;IACxC,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,UAAU,IAAI,IAAI;QACzD,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC;AACd,CAAC;AAEM,SAAS,UAAU,CAAI,IAAO,EAAE,IAAO;IAC7C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5F,OAAO,KAAK,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAgB,CAAC;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAgB,CAAC;IAE/C,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,KAAK,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC/D,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;;;ACnEsD;AAKD;AAsB/C,MAAM,MAAO,SAAQ,+BAA+C;IACvE,aAAa,CAAe;IAE5B,YAAY,KAAkB,EAAE,OAAgD;QAC5E,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAEtB,MAAM,MAAM,GAAG,OAAiB,CAAC;QACjC,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC,YAAY;YACb,MAAM,IAAI,KAAK,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,KAAkB;QAC9C,IACI,KAAK,CAAC,MAAM,EAAE,YAAY,KAAK,QAAQ;eACpC,KAAK,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO;YAEzC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;;YAEjC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IACtC,CAAC;IAES,SAAS,CAAC,SAAsB;QACtC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IACpF,CAAC;IAES,SAAS,CAAC,SAA6C;QAC7D,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,IAAc,MAAM;QAChB,OAAO,IAAI,CAAC,OAAiB,CAAC;IAClC,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,KAAuC,CAAC;IACxD,CAAC;IAED,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;IAC/C,CAAC;IAED,IAAI,iBAAiB;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;QACjC,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAqB,IAAI,EAAE,CAAC;YACxD,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACjE,KAAK,CAAC,MAAM,GAAG;gBACX,GAAG,KAAK,CAAC,MAAM;gBACf,GAAG,WAAW;aACjB,CAAC;YAEF,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC5C,CAAC;IAED,IAAI,MAAM;QACN,OAAO;YACH,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa;YAC3B,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM;YAChC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;SACvB,CAAC;IACN,CAAC;IAED,IAAI,MAAM;QACN,OAAO;YACH,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;YACpB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM;YAChC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;SACvB,CAAC;IACN,CAAC;IAED,IAAc,SAAS;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC/B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;QAClD,OAAO;YACH,SAAS;YACT,SAAS;YACT,IAAI;YACJ,gBAAgB;YAChB,OAAO;YACP,MAAM;YACN,MAAM;SACT,CAAC;IACN,CAAC;IAES,eAAe,CAAC,QAAiE;QACvF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,OAAO;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAqB,IAAI,EAAE,CAAC;QACzE,IAAI,QAAQ,YAAY,QAAQ,EAAE,CAAC;YAC/B,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,KAAK,GAAG;YACV,GAAG,SAAS,IAAI,EAAE;YAClB,GAAG,QAAQ;SACd,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IAEO,cAAc,CAAC,CAAa;QAChC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO;YAAE,OAAO;QAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,UAAoC,CAAC;QACtE,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;QACjF,MAAM,UAAU,GAAG,CACf,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO;eAClB,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM;eACnC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO;eACtB,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CACzC,CAAC;QACF,IAAI,CAAC,UAAU;YACX,UAAU,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,MAAmB;QACvB,IACI,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,YAAY,iBAAiB;eACtE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK,EAC/D,CAAC;YACC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,UAAoC,CAAC;YACtE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,EAAE,CAAC;gBAC9C,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACvD,CAAC;YACD,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC;YACtE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;YACrE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC;YACxE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;YACzE,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBACnB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC;gBAC7C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC;YAClD,CAAC;YAED,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEtD,mCAAmC;YACnC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE;gBACnE,IAAI,IAAI,CAAC,WAAW,KAAK,aAAa,EAAE,CAAC;oBACrC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;oBAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;gBACzB,CAAC;gBAED,UAAU,EAAE,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YAC7D,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAEnB,UAAU,EAAE,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAAA,CAAC;IAEF,QAAQ,CAAC,MAAmB;QACxB,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,YAAY,iBAAiB,EAAE,CAAC;YAC5E,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrE,CAAC;QAED,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;CACJ;;;ACvKM,SAAS,WAAW,CAAI,KAA0B;IACxD,IACC,KAAK,KAAK,IAAI;WACX,OAAO,KAAK,KAAK,QAAQ;WACzB,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,OAAO,KAAK,CAAC;AACd,CAAC;AAgBD,MAAM,UAAU,GAAwC;IACvD,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAU;IACxC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,CAAU;IACnC,IAAI,EAAE,CAAC,IAAI,CAAU;IACrB,MAAM,EAAE,CAAC,MAAM,CAAU;IACzB,MAAM,EAAE,CAAC,MAAM,CAAU;IACzB,OAAO,EAAE,CAAC,OAAO,CAAU;CAC3B,CAAC;AACK,SAAS,oBAAoB,CAAC,SAA6D,EAAE,SAAyB;IAC5H,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC;AAEM,SAAS,aAAa,CAAC,SAAyB,EAAE,EAAE,CAAC,EAAE,CAAC,EAA4B,EAAE,UAAmB,EAAE,gBAAwB;IACzI,IAAI,SAAS,KAAK,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,gBAAgB;QAAE,OAAO,KAAK,CAAC;IAC7F,IAAI,SAAS,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,gBAAgB;QAAE,OAAO,KAAK,CAAC;IAC7F,IAAI,SAAS,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,gBAAgB;QAAE,OAAO,KAAK,CAAC;IAC3F,IAAI,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,gBAAgB;QAAE,OAAO,KAAK,CAAC;AAC7F,CAAC;AAEM,SAAS,qBAAqB,CAAC,SAAyB;IAC9D,OAAO,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,YAAY,CAAC;AACpF,CAAC;;;;;AC1ED,IAAI,mCAAC,UAAU,YAAY,6BAA6B;AACxD,IAAI,mCAAC;AACL,MAAM,iDAA4B,GAAG,mCAAC,GAAG,0TAA0T;;ACF5V,MAAM,sBAAsB,GAAG;IAClC,iBAAiB,EAAE,GAAG;IACtB,uBAAuB,EAAE,GAAG;IAC5B,gBAAgB,EAAE,GAAG;IACrB,gBAAgB,EAAE,OAAO;IACzB,eAAe,EAAE,KAAK;CAChB,CAAC;;;ACNJ,MAAM,cAAc;IAC1B,OAAO,CAAa;IACpB,KAAK,CAAsC;IAC3C,aAAa,CAA+C;IAC5D,YAAY,CAAiC;IAC5C;QACE,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;YAC7B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,KAAQ;QACd,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,MAAW;QAChB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;QACxB,8CAA8C;QAC9C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;CACF;;;ACzBqH;AAE5E;AAEuI;AACpH;AAEF;AACQ;AACsB;AAC7B;AACF;AA6BnD,MAAM,MAAO,SAAQ,+BAAoD;IAC5D,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IAClD,UAAU,GAAkD,IAAI,CAAC;IAEjE,YAAY,KAAkB,EAAE,OAAsD;QAClF,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG;YACT,WAAW,EAAE,EAAE;YACf,gBAAgB,EAAE,YAAY;YAC9B,gBAAgB,EAAE,EAAE;YACpB,iBAAiB,EAAE,GAAG;YACtB,eAAe,EAAE,IAAI;YACrB,uBAAuB,EAAE,GAAG;YAC5B,UAAU,EAAE,IAAI;YAChB,aAAa,EAAE,QAAQ,CAAC,KAAK;YAC7B,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,IAAI;YACpB,UAAU,EAAE,IAAI;SACnB,CAAC;IACN,CAAC;IAED,MAAM,CAAU,YAAY,GAAyB;QACjD,MAAM,EAAE;YACJ,YAAY,EAAE;gBACV,GAAG,sBAAsB;aAC5B;SACJ;KACJ,CAAC;IAEF,MAAM,CAAC,wBAAwB,CAAC,CAAc,EAAE,KAAkB;QAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC;QACtH,QAAQ,CAAC,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC;QACjD,OAAO;YACH,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,IAAI,uCAAuC;YACrF,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,IAAI,uCAAuC;YACrF,uBAAuB,EAAE,MAAM,EAAE,uBAAuB,IAAI,8CAA8C;YAC1G,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,IAAI,wCAAwC;YACxF,eAAe,EAAE,MAAM,EAAE,eAAe,IAAI,sCAAsC;YAClF,aAAa,EAAE,MAAM,EAAE,KAAK;SAC/B;IACL,CAAC;IAED,iBAAiB;QACb,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAChE,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACpF,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAChE,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9E,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9E,CAAC;IAED,qBAAqB,CAAC,SAAgC,EAAE,SAAgC;QACpF,OAAO,CACH,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC;eAC7C,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC;eAClC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CACpC,CAAC;IACN,CAAC;IAED,oBAAoB;QAChB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACvE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACnE,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACvF,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACnE,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjF,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACjF,CAAC;IAEO,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,cAAc,EAAE,CAAC;IAC3C,CAAC;IAEO,oBAAoB,GAAG,GAAG,EAAE;QAChC,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,YAAa,CAAC,CAAC;IACtE,CAAC;IAEO,iBAAiB,GAAG,GAAG,EAAE;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAC3B,CAAC;IAEO,eAAe,GAAG,CAAC,EAAE,KAAK,EAAc,EAAE,EAAE;QAChD,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,KAAK,SAAS;YACpC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,8DAA8D;QACzG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAC3B,CAAC;IAEO,eAAe,GAAG,GAAG,EAAE;QAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU;YACtB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC/F,CAAC;IAEO,kBAAkB,CAAC,CAAkB;QACzC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QACpC,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe;YAAE,OAAO,KAAK,CAAC;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAC5D,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAAE,OAAO,KAAK,CAAC;QAClG,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;YAAE,OAAO,KAAK,CAAC;QAClG,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;YAAE,OAAO,KAAK,CAAC;QAEvF,OAAO,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACxE,CAAC;IAEO,YAAY,GAAG,CAAC,CAAkB,EAAE,EAAE;QAC1C,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAAE,OAAO;QACxC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO;YAAE,OAAO;QACrE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAExB,IAAI,IAAI,GAAc,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACnE,IAAI,UAAU,CAAC;QACf,IAAI,QAAQ,CAAC;QACb,QAAQ,SAAS,EAAE,CAAC;YAChB,KAAK,OAAO;gBACR,UAAU,GAAG,CAAC,CAAC;gBACf,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC;gBACxC,MAAM;YACV,KAAK,MAAM;gBACP,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC1C,QAAQ,GAAG,CAAC,CAAC;gBACb,MAAM;YACV,KAAK,MAAM;gBACP,UAAU,GAAG,CAAC,CAAC;gBACf,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;gBACzC,MAAM;YACV,KAAK,IAAI;gBACL,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;gBAC3C,QAAQ,GAAG,CAAC,CAAC;gBACb,MAAM;QACd,CAAC;QACD,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,iEAAe,CAAC;YACxE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO;YACb,IAAI;YACJ,UAAU;YACV,QAAQ;SACX,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC;QACrB,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,OAAO;YAC7C,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,QAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;;YAEnF,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAK,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAEnF,IAAI,CAAC,aAAa,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IAEO,UAAU,GAAG,CAAC,CAAgB,EAAE,EAAE;QACtC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO;YAAE,OAAO;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,QAAQ,IAAI,CAAC,CAAC;QACxG,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC;QAC/E,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC1E,MAAM,iBAAiB,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAC/H,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACxE,gBAAgB,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACvD,IAAI,CAAC,aAAa,CAAC,IAAI,kBAAkB,EAAE,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,aAAa,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,gBAAgB,EAAE,CAAC;YACnB,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC5D,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,EAAE,OAAO,IAAI,IAAI,CAAC;IAC5C,CAAC;IAED,IAAY,cAAc;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChG,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAE9G,OAAO,gBAAgB,IAAI,CAAC,IAAI,gBAAgB,GAAG,SAAS,CAAC;IACjE,CAAC;IAED,IAAc,OAAO;QACjB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAC3C,OAAO,WAAW;aACb,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACtB,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC;YAC5C,MAAM,aAAa,GAAG,WAAW,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC;YACrD,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;mBAC7E,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,KAAK,OAAO,CAAC;mBACtF,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,KAAK,QAAQ,CAAC;mBACvF,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG;mBAC3C,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO;mBACjC,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;QACpD,CAAC,CAAC,CAAC;IACX,CAAC;IAEO,uBAAuB,CAAC,QAAgB,EAAE,GAAqB;QACnE,MAAM,WAAW,GAAG,gCAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;aACpD,IAAI,CAAC,CAAC,KAAK,EAAgC,EAAE;YAC1C,IAAI,CAAC,2CAAkB,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC7C,OAAO,mCAAU,CACb,KAAK,CAAC,KAAK,CAAC,IAAI,EAChB,QAAQ,EACR,IAAI,CAAC,cAAc,CAAC,QAAQ,EAC5B,KAAK,CAAC,KAAK,CAAC,aAAa,CAC5B,KAAK,IAAI,CAAC;QACf,CAAC,CAAC,CAAC;QAEP,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAC9B,GAAG,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;QAC5B,OAAO,uCAAc,CAAC,WAAW,EAAE;YAC/B,MAAM,EAAE;gBACJ,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY;gBAClC,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM;aAC9B;YACD,EAAE,EAAE,GAAG;YACP,gBAAgB,EAAE,QAAQ;YAC1B,GAAG;YACH,GAAG,EAAE,6BAAS,EAAU;SACJ,CAAC,CAAC;IAC9B,CAAC;IAEO,wBAAwB,CAAC,QAAgB;QAC7C,OAAO,gCAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;aAC3C,IAAI,CAAC,KAAK,CAAC,EAAE;YACV,IAAI,CAAC,2CAAkB,CAAC,KAAK,CAAC;gBAAE,OAAO;YACvC,OAAO,mCAAU,CACb,KAAK,CAAC,KAAK,CAAC,IAAI,EAChB,QAAQ,EACR,IAAI,CAAC,cAAc,CAAC,QAAQ,EAC5B,KAAK,CAAC,KAAK,CAAC,aAAa,CAC5B,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,iBAAiB,CAAC,GAAW;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC;QAC9E,IAAI,WAAW,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QACvC,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,YAAY,CAAC,CAAgB;QACnC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QACrD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;QACpD,OAAO,IAAI,CAAC,OAAO;eACZ,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;eACvB,sCAAa,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IACtE,CAAC;IAES,eAAe,CAAC,CAAgB;QACtC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe;YAClC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,CAAC,YAAY;eACd,CAAC,CAAC,CAAC,QAAQ;eACX,CAAC,CAAC,CAAC,UAAU;eACb,CAAC,CAAC,CAAC,eAAe,CAAC;IAC9B,CAAC;IAES,SAAS,CAAC,CAA4B;QAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,CAAC,cAAc,KAAK,MAAM;YAC7D,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB;gBACtD,OAAO;QAEf,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,MAAM;gBACP,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACnB,MAAM;YAEV,KAAK,QAAQ,CAAC;YACd,KAAK,SAAS;gBACV,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACtB,MAAM;YAEV;gBACI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBACtB,MAAM;QACd,CAAC;IACL,CAAC;IAEO,UAAU,CAAC,CAAY;QAC3B,MAAM,OAAO,GAAG,GAAG,EAAE;YACjB,MAAM,OAAO,GAAG,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC;YAChD,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC;YACzC,MAAM,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;YAChC,MAAM,WAAW,GAA+B,IAAI,KAAK,EAAE,CAAC;YAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YACxC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACtB,IAAI,CAAC,KAAK,CAAC,GAAG;oBAAE,OAAO,IAAI,CAAC;gBAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3E,IAAI,CAAC,MAAM;oBAAE,OAAO,IAAI,CAAC;gBACzB,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YAEH,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,mCAAe,CAAC,GAAG,EAAE;gBAC/D,IAAI,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,KAAK,IAAI,EAAE;oBAC3E,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;oBAChD,MAAM,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;oBAC7B,IACI,WAAW;2BACR,OAAO,CAAC,MAAM,KAAK,CAAC;2BACpB,UAAU,CAAC,GAAG;2BACd,CAAC,mCAAU,CACV,WAAW,EACX,UAAU,CAAC,GAAG,CAAC,QAAQ,EACvB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAC/B,EACH,CAAC;wBACC,MAAM,kBAAkB,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;wBACvF,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE;4BACzB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE;gCACpD,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAuB,IAAI,EAAE,CAAC;gCAClE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;4BACnD,CAAC,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;wBACH,OAAO,OAAO,EAAE,CAAC;oBACrB,CAAC;oBACD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;oBACxB,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,KAAK,SAAS;wBAC1C,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;oBAElD,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC1E,MAAM,IAAI,CAAC,yBAAyB,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAChF,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;gBACtF,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC,CAAC;QACR,CAAC;QAED,CAAC,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7B,CAAC;IAEO,aAAa,CAAC,CAAgB;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAC3C,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;QAClC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QAC9D,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC;QAC9E,MAAM,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;QAC5F,IAAI,CAAC,iBAAiB;YAAE,OAAO,CAAC,CAAC,cAAc,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,GAAG,EAAE;YACjB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;YACpD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;YACzE,MAAM,OAAO,GAAG,UAAU,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC;YAC9C,MAAM,YAAY,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAClG,WAAW,CAAC,MAAM,CACd,YAAY,EACZ,CAAC,EACD,iBAAiB,CACpB,CAAC;YAEF,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,mCAAe,CAAC,GAAG,EAAE;gBAC/D,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,KAAK,IAAI,EAAE;oBAC3E,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;oBACxB,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC/D,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;oBACtE,MAAM,wBAAwB,GAAG,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC5G,IAAI,YAAY,EAAE,CAAC;wBACf,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW,IAAI,CAAC,CAAC;wBACnF,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;wBACvD,MAAM,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAC;wBACzC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;wBACxE,IAAI,SAAS,EAAE,CAAC;4BACZ,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;wBACxC,CAAC;wBACD,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;wBACjC,MAAM,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC5C,CAAC;oBACD,MAAM,wBAAwB,CAAC;oBAC/B,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;gBACtF,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC,CAAC;QACR,CAAC,CAAC;QAEF,CAAC,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7B,CAAC;IAEO,aAAa,CAAC,CAAgB;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAC3C,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;QAClC,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;QAC9D,IAAI,CAAC,2CAAkB,CAAS,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,CAAC;YAC/E,OAAO,CAAC,CAAC,cAAc,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,GAAG,EAAE;YACjB,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;gBAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;YACjD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;YAChD,IAAI,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACrF,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;gBACtD,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;oBACvC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB;wBAAE,OAAO,KAAK,CAAC;oBAC1E,MAAM,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;oBACpF,MAAM,cAAc,GAAG,mCAAU,CAC7B,MAAM,CAAC,KAAK,CAAC,IAAI,EACjB,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EACrC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAC5B,MAAM,CAAC,KAAK,CAAC,aAAa,CAC7B,CAAC;oBACF,OAAO,eAAe,IAAI,cAAc,CAAC;gBAC7C,CAAC,CAAC,CAAC;YACP,CAAC;YACD,MAAM,OAAO,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;YAC9E,MAAM,gBAAgB,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC3F,MAAM,cAAc,GAAG,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC;YAC3G,IAAI,CAAC,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;gBAC9B,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;gBAC9D,MAAM,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;gBAC5F,IAAI,CAAC,iBAAiB;oBAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;gBACjD,WAAW,CAAC,MAAM,CACd,SAAS,GAAG,CAAC,EACb,QAAQ,EAAE,mCAAmC;gBAC7C,iBAAiB,CACpB,CAAC;YACN,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,mCAAe,CAAC,GAAG,EAAE;gBAC/D,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,KAAK,IAAI,EAAE;oBACvF,UAAU,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;oBACnC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;oBACxB,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC/D,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;oBACtE,MAAM,wBAAwB,GAAG,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACtH,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;oBACxE,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;oBACjC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAClC,MAAM,wBAAwB,CAAC;oBAC/B,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;gBACxG,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC,CAAC;QACR,CAAC;QAED,IAAI,MAAM,CAAC;QACX,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,MAAM,GAAG,kBAAkB,CAAC;YAC5B,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAClF,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,WAAW,CAAC;QACzB,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QACpC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,cAA8C,EAAE,cAA8C,EAAE,MAAmB;QACvJ,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,gBAAgB,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAEzF,MAAM,OAAO,CAAC,GAAG,CAAC;YACd,cAAc,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;YACvC,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC;YACxC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;SACxC,CAAC,CAAC;QAEH,IAAI,gBAAgB;YAChB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAErG,iDAAiD;QACjD,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO;YAAE,OAAO;QAElD,MAAM,OAAO,CAAC,GAAG,CAAC;YACd,cAAc,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;YACpF,cAAc,EAAE,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;SACzF,CAAC,CAAC;IACP,CAAC;IAEO,gBAAgB,CACpB,cAA8C,EAC9C,cAA8C;QAE9C,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;QAChC,IAAI,IAAI,CAAC,qBAAqB,CAAC,OAAO,IAAI,cAAc,IAAI,cAAc,EAAE,CAAC;YACzE,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;YACrF,IAAI,cAAc,CAAC,OAAO,EAAE,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBACrD,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;YACtE,CAAC;YACD,IAAI,cAAc,CAAC,OAAO,EAAE,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBACrD,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YACrE,CAAC;YACD,IAAI,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,4BAA4B,CAAC,OAAO,EAAE,CAAC;gBAC1E,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,4BAA4B,CAAC,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC;gBACxG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,4BAA4B,CAAC,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC;YAC5G,CAAC;YACD,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;YAC3H,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;iBACpD,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACnB,sFAAsF;gBACtF,KAAK,GAAG,CAAC,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;gBACrC,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,OAAO,EAAE,CAAC;oBAC5E,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;oBAC5D,OAAO,MAAM,CAAC,GAAG,CAAC;gBACtB,CAAC;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC;iBACD,MAAM,CAAC,WAAW,CAAC,CAAC;YAEzB,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC3D,CAAC;IACL,CAAC;;;;;;ACrhBmG;AAIlE;AAE/B,SAAS,aAAa;IAC5B,iCAAa,CAAC,kBAAkB,CAAC,CAAC;IAClC,OAAO,0CAAiB,EAAc,CAAC;AACxC,CAAC;AAEM,SAAS,SAAS;IACxB,iCAAa,CAAC,cAAc,CAAC,CAAC;IAC9B,OAAO,sCAAa,EAAU,CAAC;AAChC,CAAC;AAEM,SAAS,QAAQ;IACvB,iCAAa,CAAC,aAAa,CAAC,CAAC;IAC7B,OAAO,qCAAY,EAAgB,CAAC;AACrC,CAAC;;;;AChB2C;AACG;AACS;AAoBxD,SAAS,sBAAsB,CAAC,UAAuB;IACnD,MAAM,iBAAiB,GAAG,aAAa,EAAE,CAAC;IAC1C,OAAO,UAAU,IAAI,iBAAiB,CAAC;AAC3C,CAAC;AAEM,SAAS,MAAM,CAAC,KAAkB;IACrC,MAAM,EACF,OAAO,EACP,MAAM,EACN,MAAM,GAAG,EAAE,EACX,IAAI,GAAG,MAAM,EACb,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,WAAW,EACpB,GAAG,MAAM,EACZ,GAAG,KAAK,CAAC;IACV,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,4BAAQ,CAAqB,SAAS,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,UAAU,EAAE,QAAQ,CAAC;IACtC,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAE1E,6BAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI;YAAE,OAAO;QAC9B,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAExB,6BAAS,CAAC,GAAG,EAAE;QACX,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;YAClD,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACL,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAEvB,MAAM,OAAO,GAAG,CAAC,CAAsC,EAAE,EAAE;QACvD,IAAI,MAAM,EAAE,CAAC;YACT,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,UAAU,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,IAAI,QAAQ,EAAE,CAAC;YACxC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QACD,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC;IAEF,OAAO,CACH,2BACI,IAAI,EAAE,IAAI,oBACM,QAAQ,EACxB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,KACJ,MAAM,YAET,KAAK,CAAC,QAAQ,GACf,CACP,CAAC;AACN,CAAC;;;ACpFM,MAAM,yBAAyB,GAAe;IACpD;QACC,SAAS,EAAE,mBAAmB;KAC9B;IACD;QACC,SAAS,EAAE,iBAAiB;KAC5B;CACD,CAAC;AAEK,MAAM,4BAA4B,GAAe;IACvD;QACC,SAAS,EAAE,mBAAmB;KAC9B;IACD;QACC,SAAS,EAAE,iBAAiB;KAC5B;CACD,CAAC;AAEK,MAAM,uBAAuB,GAAe;IAClD;QACC,SAAS,EAAE,iBAAiB;KAC5B;IACD;QACC,SAAS,EAAE,mBAAmB;KAC9B;CACD,CAAC;AAEK,MAAM,0BAA0B,GAAe;IACrD;QACC,SAAS,EAAE,iBAAiB;KAC5B;IACD;QACC,SAAS,EAAE,gCAAgC;KAC3C;CACD,CAAC;AAEK,MAAM,wBAAwB,GAAe;IACnD;QACC,SAAS,EAAE,oBAAoB;KAC/B;IACD;QACC,SAAS,EAAE,iBAAiB;KAC5B;CACD,CAAC;AAEK,MAAM,2BAA2B,GAAe;IACtD;QACC,SAAS,EAAE,oBAAoB;KAC/B;IACD;QACC,SAAS,EAAE,iBAAiB;KAC5B;CACD,CAAC;AAEK,MAAM,wBAAwB,GAAe;IACnD;QACC,SAAS,EAAE,iBAAiB;KAC5B;IACD;QACC,SAAS,EAAE,kBAAkB;KAC7B;CACD,CAAC;AAEK,MAAM,2BAA2B,GAAe;IACtD;QACC,SAAS,EAAE,iBAAiB;KAC5B;IACD;QACC,SAAS,EAAE,+BAA+B;KAC1C;CACD,CAAC;AAEK,MAAM,0BAA0B,GAAe;IACrD;QACC,SAAS,EAAE,mBAAmB;KAC9B;IACD;QACC,SAAS,EAAE,iBAAiB;KAC5B;CACD,CAAC;AAEK,MAAM,6BAA6B,GAAe;IACxD;QACC,SAAS,EAAE,mBAAmB;KAC9B;IACD;QACC,SAAS,EAAE,iBAAiB;KAC5B;CACD,CAAC;AAEK,MAAM,sBAAsB,GAAe;IACjD;QACC,SAAS,EAAE,iBAAiB;KAC5B;IACD;QACC,SAAS,EAAE,mBAAmB;KAC9B;CACD,CAAC;AAEK,MAAM,uBAAuB,GAAe;IAClD;QACC,SAAS,EAAE,oBAAoB;KAC/B;IACD;QACC,SAAS,EAAE,iBAAiB;KAC5B;CACD,CAAC;AAEK,MAAM,yBAAyB,GAAe;IACpD;QACC,SAAS,EAAE,iBAAiB;KAC5B;IACD;QACC,SAAS,EAAE,kBAAkB;KAC7B;CACD,CAAC;AAEK,MAAM,eAAe,GAAe;IAC1C;QACC,SAAS,EAAE,aAAa;QACxB,OAAO,EAAE,CAAC;KACV;IACD;QACC,SAAS,EAAE,UAAU;QACrB,OAAO,EAAE,CAAC;KACV;CACD,CAAC;AAEK,MAAM,gBAAgB,GAAe;IAC3C;QACC,SAAS,EAAE,UAAU;QACrB,OAAO,EAAE,CAAC;KACV;IACD;QACC,SAAS,EAAE,aAAa;QACxB,OAAO,EAAE,CAAC;KACV;CACD,CAAC;AAEK,MAAM,eAAe,GAAe;IAC1C;QACC,OAAO,EAAE,CAAC;KACV;IACD;QACC,OAAO,EAAE,CAAC;KACV;CACD,CAAC;AAEK,MAAM,gBAAgB,GAAe;IAC3C;QACC,OAAO,EAAE,CAAC;KACV;IACD;QACC,OAAO,EAAE,CAAC;KACV;CACD,CAAC;AAEK,MAAM,gCAAgC,GAAe;IAC3D;QACC,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,gCAAgC;KAC3C;IACD;QACC,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,GAAG;KACX;IACD;QACC,OAAO,EAAE,GAAG;QACZ,MAAM,EAAE,GAAG;KACX;IACD;QACC,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,iBAAiB;KAC5B;CACD,CAAC;AAEK,MAAM,+BAA+B,GAAe;IAC1D;QACC,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,kBAAkB;KAC7B;IACD;QACC,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,iBAAiB;KAC5B;CACD,CAAC;AAEK,MAAM,6BAA6B,GAAe;IACxD;QACC,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,iBAAiB;KAC5B;IACD;QACC,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,mBAAmB;KAC9B;CACD,CAAC;AAEK,MAAM,gCAAgC,GAAe;IAC3D;QACC,SAAS,EAAE,mBAAmB;KAC9B;IACD;QACC,SAAS,EAAE,iBAAiB;KAC5B;CACD,CAAC;AAEK,MAAM,+BAA+B,GAAe;IAC1D;QACC,SAAS,EAAE,iBAAiB;KAC5B;IACD;QACC,SAAS,EAAE,kBAAkB;KAC7B;CACD,CAAC;AAEK,MAAM,+BAA+B,GAAe;IAC1D;QACC,SAAS,EAAE,aAAa;QACxB,OAAO,EAAE,CAAC;KACV;IACD;QACC,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,IAAI;KACZ;IACD;QACC,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,KAAK;KACb;IACD;QACC,SAAS,EAAE,UAAU;QACrB,OAAO,EAAE,CAAC;KACV;CACD,CAAC;AAEK,MAAM,6BAA6B,GAAe;IACxD;QACC,SAAS,EAAE,UAAU;QACrB,OAAO,EAAE,CAAC;KACV;IACD;QACC,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,MAAM;KACd;IACD;QACC,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,MAAM;KACd;IACD;QACC,SAAS,EAAE,cAAc;QACzB,OAAO,EAAE,CAAC;KACV;CACD,CAAC;AAEK,MAAM,qCAAqC,GAAe;IAChE;QACC,SAAS,EAAE,+BAA+B;QAC1C,OAAO,EAAE,CAAC;KACV;IACD;QACC,SAAS,EAAE,iBAAiB;QAC5B,OAAO,EAAE,CAAC;KACV;CACD,CAAC;;;ACvQwE;AAE1E,SAAS,SAAS,CAAC,MAA6B;IAC/C,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC;AAEM,MAAM,kBAAkB,GAA0B;IACxD,GAAG,oEAAc,CAAC;QACjB,IAAI,EAAE,CAAC;QACP,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,GAAG;KACV,CAAC;CACF,CAAC;AAEK,MAAM,8BAA8B,GAA6B;IACvE,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,oEAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;CAChD,CAAC;AAEK,MAAM,6BAA6B,GAA6B;IACtE,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,QAAQ;CAChB,CAAC;AAEK,MAAM,8BAA8B,GAA6B;IACvE,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,gCAAgC;CACxC,CAAC;AAEK,MAAM,6BAA6B,GAA6B;IACtE,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,gCAAgC;CACxC,CAAC;AAEK,MAAM,gCAAgC,GAA6B;IACzE,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,oEAAc,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;CACpE,CAAC;AAEK,MAAM,iCAAiC,GAA6B;IAC1E,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,oEAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAC7D,CAAC;;;ACvCkC;AAeR;AAErB,SAAS,mBAAmB,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAA+B;IACvG,MAAM,gBAAgB,GAAG;QACxB,0BAA0B;QAC1B,4BAA4B;KAC5B,CAAC;IAEF,IAAI,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,OAAO,GAA0B;QACtC,YAAY;QACZ,IAAI,EAAE,UAAmB;QACzB,GAAG,kBAAkB;KACrB,CAAC;IAEF,IAAI,SAAS,KAAK,SAAS;QAC1B,SAAS,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;IAEpC,OAAO,IAAI,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAEM,SAAS,kBAAkB,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAA+B;IACtG,MAAM,gBAAgB,GAAG;QACxB,2BAA2B;QAC3B,2BAA2B;KAC3B,CAAC;IAEF,IAAI,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,OAAO,GAA0B;QACtC,YAAY;QACZ,IAAI,EAAE,UAAmB;QACzB,GAAG,kBAAkB;KACrB,CAAC;IAEF,IAAI,SAAS,KAAK,SAAS;QAC1B,SAAS,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;IAEpC,OAAO,IAAI,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAEM,SAAS,oBAAoB,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAA+B;IACjG,IAAI,SAAS,GAAG,6BAA6B,CAAC;IAC9C,MAAM,OAAO,GAA0B;QACtC,YAAY;QACZ,IAAI,EAAE,UAAmB;QACzB,GAAG,kBAAkB;KACrB,CAAC;IAEF,IAAI,SAAS,KAAK,SAAS;QAC1B,SAAS,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;IAEpC,OAAO,IAAI,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAEM,SAAS,uBAAuB,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAA+B;IACpG,IAAI,SAAS,GAAG,gCAAgC,CAAC;IACjD,MAAM,OAAO,GAA0B;QACtC,YAAY;QACZ,IAAI,EAAE,UAAmB;QACzB,GAAG,8BAA8B;KACjC,CAAC;IAEF,IAAI,SAAS,KAAK,SAAS;QAC1B,SAAS,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;IAEpC,OAAO,IAAI,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAEM,SAAS,4BAA4B,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAA+B;IAChH,IAAI,SAAS,GAAG,qCAAqC,CAAC;IACtD,IAAI,MAAM,CAAC;IACX,IAAI,KAAK,KAAK,CAAC;QACd,MAAM,GAAG,iCAAiC,CAAC;;QAE3C,MAAM,GAAG,gCAAgC,CAAC;IAC3C,MAAM,OAAO,GAA0B;QACtC,YAAY;QACZ,IAAI,EAAE,UAAmB;QACzB,GAAG,MAAM;KACT,CAAC;IAEF,IAAI,SAAS,KAAK,SAAS;QAC1B,SAAS,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;IAEpC,OAAO,IAAI,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAEM,SAAS,uBAAuB,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAA+B;IAC3G,IAAI,gBAAgB,GAAG;QACtB,+BAA+B;QAC/B,gCAAgC;KAChC,CAAC;IAEF,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,OAAO,GAA0B;QACtC,SAAS;QACT,YAAY;QACZ,IAAI,EAAE,UAAmB;QACzB,GAAG,8BAA8B;KACjC,CAAC;IAEF,OAAO,IAAI,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAEM,SAAS,sBAAsB,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAA+B;IAC1G,IAAI,gBAAgB,GAAG;QACtB,6BAA6B;QAC7B,+BAA+B;KAC/B,CAAC;IACF,IAAI,MAAM,CAAC;IACX,IAAI,KAAK,KAAK,CAAC;QACd,MAAM,GAAG,6BAA6B,CAAC;;QAEvC,MAAM,GAAG,8BAA8B,CAAC;IAEzC,IAAI,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,OAAO,GAA0B;QACtC,YAAY;QACZ,IAAI,EAAE,UAAmB;QACzB,GAAG,MAAM;KACT,CAAC;IAEF,IAAI,SAAS,KAAK,SAAS;QAC1B,SAAS,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC;IAEpC,OAAO,IAAI,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAEM,SAAS,sBAAsB,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAA+B;IAC1G,IAAI,gBAAgB,GAAG;QACtB,6BAA6B;QAC7B,+BAA+B;KAC/B,CAAC;IAEF,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,OAAO,GAA0B;QACtC,SAAS;QACT,YAAY;QACZ,IAAI,EAAE,UAAmB;QACzB,GAAG,6BAA6B;KAChC,CAAC;IAEF,OAAO,IAAI,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;;;;ACvKyC;AAMnC,SAAS,aAAa,CAAC,EAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAqB;IAC5E,MAAM,GAAG,GAAG,0BAAM,CAAiB,IAAI,CAAC,CAAC;IAEzC,6BAAS,CAAC,GAAG,EAAE;QACX,IAAI,QAAQ;YAAE,OAAO;QACrB,MAAM,YAAY,GAAG,CAAC,CAAkB,EAAE,EAAE;YACxC,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,CAAC,CAAC,cAAc,EAAE,CAAC;QACvB,CAAC;QAED,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAE1D,OAAO,GAAG,EAAE;YACR,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QACjE,CAAC;IACL,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEpB,OAAO,CACH,6BACI,GAAG,EAAE,GAAG,EACR,SAAS,EAAC,gBAAgB,mBACX,QAAQ,EACvB,KAAK,EAAE,EAAC,OAAO,EAAE,UAAU,EAAC,KACxB,KAAK,YAER,QAAQ,GACP,CACT,CAAC;AACN,CAAC;;;AClCD,6CAA6C;AACjB;AACC;AACJ;AACA;AACA;AAC4B;AACQ;AACP;AACvB;AACC;AACD","sources":["webpack://@react-motion-router/stack/../../node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://@react-motion-router/stack/../../node_modules/react/jsx-runtime.js","webpack://@react-motion-router/stack/../../node_modules/web-gesture-events/Gestures/DoubleTapEvent.js","webpack://@react-motion-router/stack/../../node_modules/web-gesture-events/Gestures/GestureEvent.js","webpack://@react-motion-router/stack/../../node_modules/web-gesture-events/Gestures/LongPressEvent.js","webpack://@react-motion-router/stack/../../node_modules/web-gesture-events/Gestures/PanEvent.js","webpack://@react-motion-router/stack/../../node_modules/web-gesture-events/Gestures/PinchEvent.js","webpack://@react-motion-router/stack/../../node_modules/web-gesture-events/Gestures/RotateEvent.js","webpack://@react-motion-router/stack/../../node_modules/web-gesture-events/Gestures/SwipeEvent.js","webpack://@react-motion-router/stack/../../node_modules/web-gesture-events/Gestures/TapEvent.js","webpack://@react-motion-router/stack/../../node_modules/web-gesture-events/index.js","webpack://@react-motion-router/stack/../../node_modules/web-gesture-events/utils.js","webpack://@react-motion-router/stack/external module \"react\"","webpack://@react-motion-router/stack/webpack/bootstrap","webpack://@react-motion-router/stack/webpack/runtime/define property getters","webpack://@react-motion-router/stack/webpack/runtime/hasOwnProperty shorthand","webpack://@react-motion-router/stack/external module \"@react-motion-router/core\"","webpack://@react-motion-router/stack/./src/common/events.ts","webpack://@react-motion-router/stack/./src/HistoryEntry.ts","webpack://@react-motion-router/stack/./src/Navigation.ts","webpack://@react-motion-router/stack/./src/common/utils.ts","webpack://@react-motion-router/stack/./src/Screen.tsx","webpack://@react-motion-router/stack/./src/common/types.ts","webpack://@react-motion-router/stack/external module \"web-animations-extension\"","webpack://@react-motion-router/stack/./src/common/constants.ts","webpack://@react-motion-router/stack/./src/common/promise-wrapper.ts","webpack://@react-motion-router/stack/./src/Router.tsx","webpack://@react-motion-router/stack/./src/common/hooks.ts","webpack://@react-motion-router/stack/./src/Anchor.tsx","webpack://@react-motion-router/stack/./src/animation-configs/keyframe-presets.ts","webpack://@react-motion-router/stack/./src/animation-configs/keyframe-options-presets.ts","webpack://@react-motion-router/stack/./src/animation-configs/animation-presets.ts","webpack://@react-motion-router/stack/./src/GestureRegion.tsx","webpack://@react-motion-router/stack/./src/index.ts"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst GestureEvent_1 = __importDefault(require(\"./GestureEvent\"));\r\nclass DoubleTapEvent extends GestureEvent_1.default {\r\n constructor(touchEvent) {\r\n super('doubletap', touchEvent);\r\n }\r\n}\r\nexports.default = DoubleTapEvent;\r\n//# sourceMappingURL=DoubleTapEvent.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar GestureEventTypeEnum;\r\n(function (GestureEventTypeEnum) {\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"tap\"] = 0] = \"tap\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"longpress\"] = 1] = \"longpress\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"pinchstart\"] = 2] = \"pinchstart\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"pinch\"] = 3] = \"pinch\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"pinchend\"] = 4] = \"pinchend\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"rotatestart\"] = 5] = \"rotatestart\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"rotate\"] = 6] = \"rotate\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"rotateend\"] = 7] = \"rotateend\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"swipestart\"] = 8] = \"swipestart\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"swipe\"] = 9] = \"swipe\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"swipeend\"] = 10] = \"swipeend\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"panstart\"] = 11] = \"panstart\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"pan\"] = 12] = \"pan\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"panend\"] = 13] = \"panend\";\r\n GestureEventTypeEnum[GestureEventTypeEnum[\"doubletap\"] = 14] = \"doubletap\";\r\n})(GestureEventTypeEnum || (GestureEventTypeEnum = {}));\r\nclass GestureEvent extends TouchEvent {\r\n constructor(type, touchEvent) {\r\n super(type, {\r\n touches: Array.from(touchEvent.touches),\r\n targetTouches: Array.from(touchEvent.targetTouches),\r\n changedTouches: Array.from(touchEvent.changedTouches),\r\n ctrlKey: touchEvent.ctrlKey,\r\n shiftKey: touchEvent.shiftKey,\r\n altKey: touchEvent.altKey,\r\n metaKey: touchEvent.metaKey,\r\n bubbles: true,\r\n cancelable: true\r\n });\r\n if (type.includes(\"end\") || touchEvent.type.includes(\"end\")) {\r\n this.gestureTarget = touchEvent.changedTouches[0].target;\r\n this.x = touchEvent.changedTouches[0].clientX;\r\n this.y = touchEvent.changedTouches[0].clientY;\r\n return;\r\n }\r\n this.gestureTarget = touchEvent.touches[0].target;\r\n this.x = touchEvent.touches[0].clientX;\r\n this.y = touchEvent.touches[0].clientY;\r\n }\r\n}\r\nexports.default = GestureEvent;\r\n//# sourceMappingURL=GestureEvent.js.map","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst GestureEvent_1 = __importDefault(require(\"./GestureEvent\"));\r\nclass LongPressEvent extends GestureEvent_1.default {\r\n constructor(touchEvent, duration) {\r\n super('longpress', touchEvent);\r\n this.duration = 0;\r\n this.duration = duration;\r\n }\r\n}\r\nexports.default = LongPressEvent;\r\n//# sourceMappingURL=LongPressEvent.js.map","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PanEndEvent = exports.PanStartEvent = void 0;\r\nconst GestureEvent_1 = __importDefault(require(\"./GestureEvent\"));\r\nvar PanLifecycleStateEnum;\r\n(function (PanLifecycleStateEnum) {\r\n PanLifecycleStateEnum[PanLifecycleStateEnum[\"start\"] = 0] = \"start\";\r\n PanLifecycleStateEnum[PanLifecycleStateEnum[\"end\"] = 1] = \"end\";\r\n})(PanLifecycleStateEnum || (PanLifecycleStateEnum = {}));\r\nclass PanEventBase extends GestureEvent_1.default {\r\n constructor(touchEvent, panData, state) {\r\n let eventType;\r\n switch (state) {\r\n case \"start\":\r\n eventType = \"panstart\";\r\n break;\r\n case \"end\":\r\n eventType = \"panend\";\r\n break;\r\n default:\r\n eventType = \"pan\";\r\n }\r\n super(eventType, touchEvent);\r\n this.velocity = panData.velocity;\r\n this.translation = {\r\n x: panData.translation.x,\r\n y: panData.translation.y,\r\n magnitude: panData.translation.magnitude,\r\n clientX: panData.translation.clientX,\r\n clientY: panData.translation.clientY,\r\n clientMagnitude: panData.translation.clientMagnitude\r\n };\r\n }\r\n}\r\nclass PanEvent extends PanEventBase {\r\n constructor(touchEvent, panData) {\r\n super(touchEvent, panData);\r\n }\r\n}\r\nexports.default = PanEvent;\r\nclass PanStartEvent extends PanEventBase {\r\n constructor(touchEvent, panData) {\r\n super(touchEvent, panData, \"start\");\r\n }\r\n}\r\nexports.PanStartEvent = PanStartEvent;\r\nclass PanEndEvent extends PanEventBase {\r\n constructor(touchEvent, panData) {\r\n super(touchEvent, panData, \"end\");\r\n }\r\n}\r\nexports.PanEndEvent = PanEndEvent;\r\n//# sourceMappingURL=PanEvent.js.map","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.PinchEndEvent = exports.PinchStartEvent = void 0;\r\nconst GestureEvent_1 = __importDefault(require(\"./GestureEvent\"));\r\nvar PinchLifecycleStateEnum;\r\n(function (PinchLifecycleStateEnum) {\r\n PinchLifecycleStateEnum[PinchLifecycleStateEnum[\"start\"] = 0] = \"start\";\r\n PinchLifecycleStateEnum[PinchLifecycleStateEnum[\"end\"] = 1] = \"end\";\r\n})(PinchLifecycleStateEnum || (PinchLifecycleStateEnum = {}));\r\nclass PinchEventBase extends GestureEvent_1.default {\r\n constructor(touchEvent, pinchData, state) {\r\n let eventType;\r\n switch (state) {\r\n case \"start\":\r\n eventType = \"pinchstart\";\r\n break;\r\n case \"end\":\r\n eventType = \"pinchend\";\r\n break;\r\n default:\r\n eventType = \"pinch\";\r\n }\r\n super(eventType, touchEvent);\r\n Object.defineProperty(this, 'scale', {\r\n value: pinchData.scale,\r\n writable: false\r\n });\r\n }\r\n}\r\nclass PinchEvent extends PinchEventBase {\r\n constructor(touchEvent, pinchData) {\r\n super(touchEvent, pinchData);\r\n }\r\n}\r\nexports.default = PinchEvent;\r\nclass PinchStartEvent extends PinchEventBase {\r\n constructor(touchEvent, pinchData) {\r\n super(touchEvent, pinchData, \"start\");\r\n }\r\n}\r\nexports.PinchStartEvent = PinchStartEvent;\r\nclass PinchEndEvent extends PinchEventBase {\r\n constructor(touchEvent, pinchData) {\r\n super(touchEvent, pinchData, \"end\");\r\n }\r\n}\r\nexports.PinchEndEvent = PinchEndEvent;\r\n//# sourceMappingURL=PinchEvent.js.map","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RotateEndEvent = exports.RotateStartEvent = void 0;\r\nconst GestureEvent_1 = __importDefault(require(\"./GestureEvent\"));\r\nvar RotateLifecycleStateEnum;\r\n(function (RotateLifecycleStateEnum) {\r\n RotateLifecycleStateEnum[RotateLifecycleStateEnum[\"start\"] = 0] = \"start\";\r\n RotateLifecycleStateEnum[RotateLifecycleStateEnum[\"end\"] = 1] = \"end\";\r\n})(RotateLifecycleStateEnum || (RotateLifecycleStateEnum = {}));\r\nclass RotateEventBase extends GestureEvent_1.default {\r\n constructor(touchEvent, rotationData, state) {\r\n let eventType;\r\n switch (state) {\r\n case \"start\":\r\n eventType = \"rotatestart\";\r\n break;\r\n case \"end\":\r\n eventType = \"rotateend\";\r\n break;\r\n default:\r\n eventType = \"rotate\";\r\n }\r\n super(eventType, touchEvent);\r\n this.anchor = {\r\n x: rotationData.anchor.x,\r\n y: rotationData.anchor.y,\r\n clientX: rotationData.anchor.clientX,\r\n clientY: rotationData.anchor.clientY\r\n };\r\n Object.defineProperty(this, 'rotation', {\r\n value: rotationData.rotation,\r\n writable: false\r\n });\r\n this.rotationDeg = rotationData.rotationDeg;\r\n }\r\n}\r\nclass RotateEvent extends RotateEventBase {\r\n constructor(touchEvent, rotationData) {\r\n super(touchEvent, rotationData);\r\n }\r\n}\r\nexports.default = RotateEvent;\r\nclass RotateStartEvent extends RotateEventBase {\r\n constructor(touchEvent, rotationData) {\r\n super(touchEvent, rotationData, \"start\");\r\n }\r\n}\r\nexports.RotateStartEvent = RotateStartEvent;\r\nclass RotateEndEvent extends RotateEventBase {\r\n constructor(touchEvent, rotationData) {\r\n super(touchEvent, rotationData, \"end\");\r\n }\r\n}\r\nexports.RotateEndEvent = RotateEndEvent;\r\n//# sourceMappingURL=RotateEvent.js.map","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SwipeEndEvent = exports.SwipeStartEvent = void 0;\r\nconst GestureEvent_1 = __importDefault(require(\"./GestureEvent\"));\r\nvar SwipeLifecycleStateEnum;\r\n(function (SwipeLifecycleStateEnum) {\r\n SwipeLifecycleStateEnum[SwipeLifecycleStateEnum[\"start\"] = 0] = \"start\";\r\n SwipeLifecycleStateEnum[SwipeLifecycleStateEnum[\"end\"] = 1] = \"end\";\r\n})(SwipeLifecycleStateEnum || (SwipeLifecycleStateEnum = {}));\r\nclass SwipeEventBase extends GestureEvent_1.default {\r\n constructor(touchEvent, swipeData, state) {\r\n let eventType;\r\n switch (state) {\r\n case \"start\":\r\n eventType = \"swipestart\";\r\n break;\r\n case \"end\":\r\n eventType = \"swipeend\";\r\n break;\r\n default:\r\n eventType = \"swipe\";\r\n }\r\n super(eventType, touchEvent);\r\n this.velocity = swipeData.velocity;\r\n this.direction = swipeData.direction;\r\n }\r\n}\r\nclass SwipeEvent extends SwipeEventBase {\r\n constructor(touchEvent, swipeData) {\r\n super(touchEvent, swipeData);\r\n }\r\n}\r\nexports.default = SwipeEvent;\r\nclass SwipeStartEvent extends SwipeEventBase {\r\n constructor(touchEvent, swipeData) {\r\n super(touchEvent, swipeData, \"start\");\r\n }\r\n}\r\nexports.SwipeStartEvent = SwipeStartEvent;\r\nclass SwipeEndEvent extends SwipeEventBase {\r\n constructor(touchEvent, swipeData) {\r\n super(touchEvent, swipeData, \"end\");\r\n }\r\n}\r\nexports.SwipeEndEvent = SwipeEndEvent;\r\n//# sourceMappingURL=SwipeEvent.js.map","\"use strict\";\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst GestureEvent_1 = __importDefault(require(\"./GestureEvent\"));\r\nclass TapEvent extends GestureEvent_1.default {\r\n constructor(touchEvent) {\r\n super('tap', touchEvent);\r\n this.duration = 0;\r\n }\r\n}\r\nexports.default = TapEvent;\r\n//# sourceMappingURL=TapEvent.js.map","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nvar __importDefault = (this && this.__importDefault) || function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RotateEndEvent = exports.RotateEvent = exports.RotateStartEvent = exports.PinchEndEvent = exports.PinchEvent = exports.PinchStartEvent = exports.PanEndEvent = exports.PanEvent = exports.PanStartEvent = exports.SwipeEndEvent = exports.SwipeEvent = exports.SwipeStartEvent = exports.DoubleTapEvent = exports.LongPressEvent = exports.GestureEvent = exports.TapEvent = void 0;\r\nconst GestureEvent_1 = __importDefault(require(\"./Gestures/GestureEvent\"));\r\nexports.GestureEvent = GestureEvent_1.default;\r\nconst LongPressEvent_1 = __importDefault(require(\"./Gestures/LongPressEvent\"));\r\nexports.LongPressEvent = LongPressEvent_1.default;\r\nconst TapEvent_1 = __importDefault(require(\"./Gestures/TapEvent\"));\r\nexports.TapEvent = TapEvent_1.default;\r\nconst DoubleTapEvent_1 = __importDefault(require(\"./Gestures/DoubleTapEvent\"));\r\nexports.DoubleTapEvent = DoubleTapEvent_1.default;\r\nconst SwipeEvent_1 = __importStar(require(\"./Gestures/SwipeEvent\"));\r\nexports.SwipeEvent = SwipeEvent_1.default;\r\nObject.defineProperty(exports, \"SwipeEndEvent\", { enumerable: true, get: function () { return SwipeEvent_1.SwipeEndEvent; } });\r\nObject.defineProperty(exports, \"SwipeStartEvent\", { enumerable: true, get: function () { return SwipeEvent_1.SwipeStartEvent; } });\r\nconst PanEvent_1 = __importStar(require(\"./Gestures/PanEvent\"));\r\nexports.PanEvent = PanEvent_1.default;\r\nObject.defineProperty(exports, \"PanEndEvent\", { enumerable: true, get: function () { return PanEvent_1.PanEndEvent; } });\r\nObject.defineProperty(exports, \"PanStartEvent\", { enumerable: true, get: function () { return PanEvent_1.PanStartEvent; } });\r\nconst PinchEvent_1 = __importStar(require(\"./Gestures/PinchEvent\"));\r\nexports.PinchEvent = PinchEvent_1.default;\r\nObject.defineProperty(exports, \"PinchEndEvent\", { enumerable: true, get: function () { return PinchEvent_1.PinchEndEvent; } });\r\nObject.defineProperty(exports, \"PinchStartEvent\", { enumerable: true, get: function () { return PinchEvent_1.PinchStartEvent; } });\r\nconst RotateEvent_1 = __importStar(require(\"./Gestures/RotateEvent\"));\r\nexports.RotateEvent = RotateEvent_1.default;\r\nObject.defineProperty(exports, \"RotateEndEvent\", { enumerable: true, get: function () { return RotateEvent_1.RotateEndEvent; } });\r\nObject.defineProperty(exports, \"RotateStartEvent\", { enumerable: true, get: function () { return RotateEvent_1.RotateStartEvent; } });\r\nconst utils_1 = require(\"./utils\");\r\nvar CartesianDirectionEnum;\r\n(function (CartesianDirectionEnum) {\r\n CartesianDirectionEnum[CartesianDirectionEnum[\"right\"] = 0] = \"right\";\r\n CartesianDirectionEnum[CartesianDirectionEnum[\"up\"] = 1] = \"up\";\r\n CartesianDirectionEnum[CartesianDirectionEnum[\"left\"] = 2] = \"left\";\r\n CartesianDirectionEnum[CartesianDirectionEnum[\"down\"] = 3] = \"down\";\r\n})(CartesianDirectionEnum || (CartesianDirectionEnum = {}));\r\nclass GestureProvider {\r\n constructor() {\r\n this.touchStart = new TouchEvent('touchstart') || {};\r\n this.touchMove = new TouchEvent('touchmove') || {};\r\n this.touchEnd = new TouchEvent('touchend') || {};\r\n this.touchCancel = new TouchEvent('touchcancel') || {};\r\n this.velocity = 0;\r\n this.dxDy = new utils_1.Vec2(0, 0);\r\n this.scale = 1;\r\n this.rotation = 0;\r\n this.rotationDeg = 0;\r\n this.anchor = new utils_1.Vec2(0, 0);\r\n this.octant = 0;\r\n this.isPanning = false;\r\n this.isPinching = false;\r\n this.isSwiping = false;\r\n this.isRotating = false;\r\n this.touchStartTime = 0;\r\n this.touchEndTime = 0;\r\n this.lastTouchTime = 0;\r\n this.taps = 0;\r\n this.scaleBase = 0;\r\n this.touchMoved = false;\r\n this.touchDown = false;\r\n this.shouldFire = false;\r\n this.pointers = 0;\r\n this.isLongPress = false;\r\n this.longPressTimeout = 0;\r\n this.touchStartListener = this.onTouchStart.bind(this);\r\n this.touchMoveListener = this.onTouchMove.bind(this);\r\n this.touchEndListener = this.onTouchEnd.bind(this);\r\n this.touchCancelListener = this.onTouchCancel.bind(this);\r\n this.currentTarget = window;\r\n this.config = {\r\n longPressDuration: 500,\r\n tapDelay: 500,\r\n minPointers: 1,\r\n numberOfTaps: 0\r\n };\r\n if (!GestureProvider.listening) {\r\n if (TouchEvent)\r\n window.addEventListener('touchstart', this.touchStartListener, true);\r\n GestureProvider.listening = true;\r\n }\r\n }\r\n bind(target) {\r\n this.unbind(this.currentTarget);\r\n target.addEventListener('touchmove', this.touchMoveListener, true);\r\n target.addEventListener('touchend', this.touchEndListener, true);\r\n target.addEventListener('touchcancel', this.touchCancelListener, true);\r\n this.currentTarget = target;\r\n }\r\n unbind(target) {\r\n target.removeEventListener('touchmove', this.touchMoveListener);\r\n target.removeEventListener('touchend', this.touchEndListener);\r\n target.removeEventListener('touchcancel', this.touchCancelListener);\r\n }\r\n clean() {\r\n this.touchMoved = false;\r\n this.touchStartTime = 0;\r\n this.touchDown = false;\r\n this.scaleBase = 0;\r\n if (this.longPressTimeout && !this.isLongPress) {\r\n clearTimeout(this.longPressTimeout);\r\n this.longPressTimeout = 0;\r\n }\r\n this.isLongPress = false;\r\n }\r\n onPointerLeave(touchEnd) {\r\n if (!touchEnd.touches.length) {\r\n if (this.isSwiping) {\r\n const swipeEndEvent = new SwipeEvent_1.SwipeEndEvent(touchEnd, {\r\n velocity: this.velocity,\r\n direction: CartesianDirectionEnum[(0, utils_1.closest)(this.octant, [0, 1, 2, 3])]\r\n });\r\n this.dispatchEvent(swipeEndEvent);\r\n this.isSwiping = false;\r\n }\r\n if (this.isPanning) {\r\n const panEndEvent = new PanEvent_1.PanEndEvent(touchEnd, {\r\n translation: this.dxDy,\r\n velocity: this.velocity\r\n });\r\n this.dispatchEvent(panEndEvent);\r\n this.isPanning = false;\r\n }\r\n }\r\n if (touchEnd.touches.length === 1) {\r\n this.scaleBase = 0;\r\n if (this.isPinching) {\r\n const pinchEndEvent = new PinchEvent_1.PinchEndEvent(touchEnd, {\r\n scale: this.scale\r\n });\r\n this.dispatchEvent(pinchEndEvent);\r\n this.isPinching = false;\r\n }\r\n if (this.isRotating) {\r\n const rotateEndEvent = new RotateEvent_1.RotateEndEvent(touchEnd, {\r\n rotation: this.rotation,\r\n rotationDeg: this.rotationDeg,\r\n anchor: this.anchor\r\n });\r\n this.dispatchEvent(rotateEndEvent);\r\n this.isRotating = false;\r\n }\r\n }\r\n }\r\n dispatchEvent(gestureEvent) {\r\n queueMicrotask(() => {\r\n this.currentTarget.dispatchEvent(gestureEvent);\r\n });\r\n }\r\n onTouchStart(touchStart) {\r\n if (this.currentTarget !== touchStart.touches[0].target) {\r\n this.clean();\r\n this.unbind(this.currentTarget);\r\n this.pointers = this.touchEnd.touches.length;\r\n this.taps = 0;\r\n }\r\n this.touchStart = touchStart;\r\n const minPointers = parseInt(touchStart.touches[0].target.dataset.minpointers || '0') || this.config.minPointers;\r\n if (this.touchStart.touches.length < minPointers) {\r\n this.shouldFire = false;\r\n return;\r\n }\r\n this.shouldFire = true;\r\n this.touchStartTime = touchStart.timeStamp;\r\n this.touchDown = true;\r\n if (!this.pointers)\r\n this.bind(touchStart.touches[0].target);\r\n this.pointers = this.touchStart.touches.length;\r\n const longPressDuration = parseFloat(this.currentTarget.dataset.longpressduration || '0') || this.config.longPressDuration;\r\n if (!this.longPressTimeout) {\r\n this.longPressTimeout = setTimeout(() => {\r\n if (!this.touchMoved && this.touchDown) {\r\n const touchDuration = Date.now() - this.touchStartTime;\r\n const longPressEvent = new LongPressEvent_1.default(this.touchStart, touchDuration);\r\n this.dispatchEvent(longPressEvent);\r\n this.isLongPress = true;\r\n this.longPressTimeout = 0;\r\n }\r\n }, longPressDuration);\r\n }\r\n if (this.touchStart.touches.length > 1) {\r\n const originPointerPrimary = new utils_1.Vec2(this.touchStart.touches[0].clientX, this.touchStart.touches[0].clientY);\r\n const originPointerSecondary = new utils_1.Vec2(this.touchStart.touches[1].clientX, this.touchStart.touches[1].clientY);\r\n this.scaleBase = originPointerPrimary.substract(originPointerSecondary).magnitude;\r\n }\r\n else\r\n this.scaleBase = 0;\r\n }\r\n onTouchMove(touchMove) {\r\n if (!this.shouldFire)\r\n return;\r\n this.touchMoved = true;\r\n this.touchMove = touchMove;\r\n if (touchMove.touches.length > 1 && this.touchStart.touches.length > 1) {\r\n if (touchMove.touches[1].clientX !== this.touchStart.touches[1].clientX\r\n || touchMove.touches[1].clientY !== this.touchStart.touches[1].clientY) {\r\n const currentPointerPrimary = new utils_1.Vec2(this.touchMove.touches[0].clientX, this.touchMove.touches[0].clientY);\r\n const currentPointerSecondary = new utils_1.Vec2(this.touchMove.touches[1].clientX, this.touchMove.touches[1].clientY);\r\n const originPointerPrimary = new utils_1.Vec2(this.touchStart.touches[0].clientX, this.touchStart.touches[0].clientY);\r\n const distance = currentPointerPrimary.substract(currentPointerSecondary);\r\n if (this.scaleBase && Math.abs(this.scaleBase - distance.magnitude) > 10) {\r\n const scaleFactor = distance.magnitude / this.scaleBase;\r\n this.scale = scaleFactor;\r\n if (this.isPinching) {\r\n const pinchEvent = new PinchEvent_1.default(touchMove, {\r\n scale: scaleFactor\r\n });\r\n this.dispatchEvent(pinchEvent);\r\n }\r\n else {\r\n const pinchStartEvent = new PinchEvent_1.PinchStartEvent(touchMove, {\r\n scale: scaleFactor\r\n });\r\n this.dispatchEvent(pinchStartEvent);\r\n this.isPinching = true;\r\n }\r\n }\r\n this.anchor = currentPointerPrimary;\r\n let rotationAngle = Math.atan2((originPointerPrimary.clientY - currentPointerSecondary.clientY), (originPointerPrimary.clientX - currentPointerSecondary.clientX));\r\n rotationAngle < 0 ? rotationAngle += 1.5708 : rotationAngle -= 1.5708;\r\n this.rotation = rotationAngle;\r\n this.rotationDeg = rotationAngle * 180 / Math.PI;\r\n this.anchor = this.anchor;\r\n if (this.isRotating) {\r\n const rotateEvent = new RotateEvent_1.default(touchMove, {\r\n anchor: this.anchor,\r\n rotation: this.rotation,\r\n rotationDeg: this.rotationDeg\r\n });\r\n this.dispatchEvent(rotateEvent);\r\n }\r\n else {\r\n const rotateStartEvent = new RotateEvent_1.RotateStartEvent(touchMove, {\r\n anchor: this.anchor,\r\n rotation: this.rotation,\r\n rotationDeg: this.rotationDeg\r\n });\r\n this.dispatchEvent(rotateStartEvent);\r\n this.isRotating = true;\r\n }\r\n }\r\n }\r\n const origin = new utils_1.Vec2(this.touchStart.touches[0].clientX, this.touchStart.touches[0].clientY);\r\n const currentPosition = new utils_1.Vec2(this.touchMove.touches[0].clientX, this.touchMove.touches[0].clientY);\r\n const dxDy = currentPosition.substract(origin);\r\n const length = dxDy.magnitude;\r\n const normalised = {\r\n x: dxDy.x / length,\r\n y: dxDy.y / length\r\n };\r\n const angle = Math.atan2(normalised.y, normalised.x);\r\n this.octant = Math.round(4 * angle / (2 * Math.PI) + 4) % 4;\r\n const dt = (touchMove.timeStamp - this.touchStart.timeStamp) / 1000;\r\n const velocity = dxDy.magnitude / dt;\r\n if (this.isSwiping) {\r\n const swipeEvent = new SwipeEvent_1.default(touchMove, {\r\n direction: CartesianDirectionEnum[(0, utils_1.closest)(this.octant, [0, 1, 2, 3])],\r\n velocity: velocity\r\n });\r\n this.dispatchEvent(swipeEvent);\r\n }\r\n else {\r\n const swipeStartEvent = new SwipeEvent_1.SwipeStartEvent(touchMove, {\r\n direction: CartesianDirectionEnum[(0, utils_1.closest)(this.octant, [0, 1, 2, 3])],\r\n velocity: velocity\r\n });\r\n this.dispatchEvent(swipeStartEvent);\r\n this.isSwiping = true;\r\n }\r\n this.dxDy = dxDy;\r\n this.velocity = velocity;\r\n if (this.isPanning) {\r\n const panEvent = new PanEvent_1.default(touchMove, {\r\n translation: dxDy,\r\n velocity: velocity\r\n });\r\n this.dispatchEvent(panEvent);\r\n }\r\n else {\r\n const panStartEvent = new PanEvent_1.PanStartEvent(touchMove, {\r\n translation: dxDy,\r\n velocity: velocity\r\n });\r\n this.dispatchEvent(panStartEvent);\r\n this.isPanning = true;\r\n }\r\n }\r\n onTouchEnd(touchEnd) {\r\n const numberOfTaps = parseInt(this.currentTarget.dataset.numberoftaps || '0') || this.config.numberOfTaps;\r\n this.taps++;\r\n this.shouldFire = Boolean(this.taps > numberOfTaps);\r\n if (this.shouldFire) {\r\n this.touchEnd = touchEnd;\r\n this.touchEndTime = touchEnd.timeStamp;\r\n const maxTapDelay = parseFloat(this.currentTarget.dataset.tapdelay || '0') || this.config.tapDelay;\r\n if (!this.touchMoved && !this.isLongPress) {\r\n if (this.taps === 1 || (this.touchEndTime - this.lastTouchTime) < maxTapDelay) {\r\n if (this.taps % 2 === numberOfTaps) {\r\n const doubleTapEvent = new DoubleTapEvent_1.default(touchEnd);\r\n this.dispatchEvent(doubleTapEvent);\r\n this.taps = 0;\r\n }\r\n const tapEvent = new TapEvent_1.default(touchEnd);\r\n this.dispatchEvent(tapEvent);\r\n }\r\n else {\r\n this.taps = 0;\r\n }\r\n }\r\n }\r\n this.pointers = this.touchEnd.touches.length;\r\n this.lastTouchTime = this.touchEndTime;\r\n this.onPointerLeave(touchEnd);\r\n this.unbind(this.currentTarget);\r\n this.clean();\r\n }\r\n onTouchCancel(touchCancel) {\r\n if (!this.shouldFire)\r\n return;\r\n this.touchCancel = touchCancel;\r\n this.unbind(this.currentTarget);\r\n this.clean();\r\n }\r\n}\r\nexports.default = GestureProvider;\r\nGestureProvider.listening = false;\r\nif (TouchEvent)\r\n window.gestureProvider = new GestureProvider();\r\n//# sourceMappingURL=index.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.closest = exports.Vec2 = exports.assert = void 0;\r\nfunction assert(condition, message) {\r\n if (!condition) {\r\n throw new Error(message);\r\n }\r\n}\r\nexports.assert = assert;\r\nclass Vec2 {\r\n constructor(_x, _y) {\r\n this._x = 0;\r\n this._y = 0;\r\n this._clientX = 0;\r\n this._clientY = 0;\r\n this._clientX = _x;\r\n this._clientY = _y;\r\n this._x = this.translateX(_x);\r\n this._y = this.translateY(_y);\r\n }\r\n translateY(_y) {\r\n return -(_y - window.innerHeight / 2);\r\n }\r\n translateX(_x) {\r\n return _x - window.innerWidth / 2;\r\n }\r\n get x() {\r\n return this._x;\r\n }\r\n get y() {\r\n return this._y;\r\n }\r\n get clientX() {\r\n return this._clientX;\r\n }\r\n get clientY() {\r\n return this._clientY;\r\n }\r\n set x(_x) {\r\n this._clientX = _x;\r\n this._x = this.translateX(_x);\r\n }\r\n set y(_y) {\r\n this._clientY = _y;\r\n this._y = this.translateY(_y);\r\n }\r\n add(vector) {\r\n this._x += vector.x;\r\n this._y += vector.y;\r\n this._clientX += vector.clientX;\r\n this._clientY += vector.clientY;\r\n return this;\r\n }\r\n substract(vector) {\r\n this._x -= vector.x;\r\n this._y -= vector.y;\r\n this._clientX -= vector.clientX;\r\n this._clientY -= vector.clientY;\r\n return this;\r\n }\r\n dot(vector) {\r\n const scalar = (this._x * vector.x) + (this._y * vector.y);\r\n return scalar;\r\n }\r\n get magnitude() {\r\n return Math.sqrt(Math.pow(this._x, 2) + Math.pow(this._y, 2));\r\n }\r\n get clientMagnitude() {\r\n return Math.sqrt(Math.pow(this._clientX, 2) + Math.pow(this._clientY, 2));\r\n }\r\n}\r\nexports.Vec2 = Vec2;\r\nfunction closest(needle, haystack) {\r\n return haystack.reduce((a, b) => {\r\n let a_diff = Math.abs(a - needle);\r\n let b_diff = Math.abs(b - needle);\r\n if (a_diff === b_diff) {\r\n return a > b ? a : b;\r\n }\r\n else {\r\n return b_diff < a_diff ? b : a;\r\n }\r\n });\r\n}\r\nexports.closest = closest;\r\n//# sourceMappingURL=utils.js.map","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_react__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"NavigationBase\"]: () => __WEBPACK_EXTERNAL_MODULE__react_motion_router_core_d1cff82c__.NavigationBase, [\"RouterBase\"]: () => __WEBPACK_EXTERNAL_MODULE__react_motion_router_core_d1cff82c__.RouterBase, [\"ScreenBase\"]: () => __WEBPACK_EXTERNAL_MODULE__react_motion_router_core_d1cff82c__.ScreenBase, [\"cloneAndInject\"]: () => __WEBPACK_EXTERNAL_MODULE__react_motion_router_core_d1cff82c__.cloneAndInject, [\"includesRoute\"]: () => __WEBPACK_EXTERNAL_MODULE__react_motion_router_core_d1cff82c__.includesRoute, [\"isValidScreenChild\"]: () => __WEBPACK_EXTERNAL_MODULE__react_motion_router_core_d1cff82c__.isValidScreenChild, [\"matchRoute\"]: () => __WEBPACK_EXTERNAL_MODULE__react_motion_router_core_d1cff82c__.matchRoute, [\"resolveBaseURLFromPattern\"]: () => __WEBPACK_EXTERNAL_MODULE__react_motion_router_core_d1cff82c__.resolveBaseURLFromPattern, [\"useNavigationBase\"]: () => __WEBPACK_EXTERNAL_MODULE__react_motion_router_core_d1cff82c__.useNavigationBase, [\"useRouteBase\"]: () => __WEBPACK_EXTERNAL_MODULE__react_motion_router_core_d1cff82c__.useRouteBase, [\"useRouterBase\"]: () => __WEBPACK_EXTERNAL_MODULE__react_motion_router_core_d1cff82c__.useRouterBase });","import { GestureEvent } from \"web-gesture-events\";\nimport { NavigateOptions, NavigationProps } from \"./types\";\n\nexport class NavigateEvent extends Event {\n\treadonly routerId: string;\n\treadonly route: string;\n\treadonly props: NavigationProps;\n\treadonly navigationType: NonNullable<NavigateOptions[\"type\"]>;\n\treadonly signal: AbortSignal;\n\treadonly committed: Promise<NavigationHistoryEntry>;\n\treadonly transition: NavigationTransition;\n\n\tconstructor(\n\t\trouterId: string,\n\t\troute: string,\n\t\tprops: NavigationProps,\n\t\ttype: NavigateOptions[\"type\"],\n\t\tsignal: AbortSignal,\n\t\tcommitted: Promise<NavigationHistoryEntry>,\n\t\ttransition: NavigationTransition\n\t) {\n\t\tsuper('navigate');\n\t\tthis.routerId = routerId;\n\t\tthis.route = route;\n\t\tthis.props = props;\n\t\tthis.navigationType = type ?? \"push\";\n\t\tthis.signal = signal;\n\t\tthis.committed = committed;\n\t\tthis.transition = transition;\n\t}\n}\n\nexport class BackEvent extends Event {\n\treadonly routerId: string;\n\treadonly signal: AbortSignal;\n\treadonly committed: Promise<NavigationHistoryEntry>;\n\treadonly transition: NavigationTransition;\n\n\tconstructor(routerId: string, signal: AbortSignal, committed: Promise<NavigationHistoryEntry>, transition: NavigationTransition) {\n\t\tsuper('back');\n\t\tthis.routerId = routerId;\n\t\tthis.signal = signal;\n\t\tthis.committed = committed;\n\t\tthis.transition = transition;\n\t}\n}\n\nexport class ForwardEvent extends Event {\n\treadonly routerId: string;\n\treadonly signal: AbortSignal;\n\treadonly committed: Promise<NavigationHistoryEntry>;\n\treadonly transition: NavigationTransition;\n\n\tconstructor(routerId: string, signal: AbortSignal, committed: Promise<NavigationHistoryEntry>, transition: NavigationTransition) {\n\t\tsuper('forward');\n\t\tthis.routerId = routerId;\n\t\tthis.signal = signal;\n\t\tthis.committed = committed;\n\t\tthis.transition = transition;\n\t}\n}\n\nexport class GestureStartEvent extends Event {\n\treadonly source: GestureEvent;\n\n\tconstructor(source: GestureEvent) {\n\t\tsuper('gesture-start');\n\t\tthis.source = source;\n\t}\n}\n\nexport class GestureEndEvent extends Event {\n\treadonly source: GestureEvent;\n\n\tconstructor(source: GestureEvent) {\n\t\tsuper('gesture-end');\n\t\tthis.source = source;\n\t}\n}\n\nexport class GestureCancelEvent extends Event {\n\tconstructor() {\n\t\tsuper('gesture-cancel');\n\t}\n}","export class HistoryEntry implements Omit<NavigationHistoryEntry, 'url'> {\n\treadonly routerId: string;\n\t#nativeEntry: NavigationHistoryEntry;\n\treadonly index: number;\n\n\tconstructor(nativeEntry: NavigationHistoryEntry, routerId: string, index: number) {\n\t\tthis.#nativeEntry = nativeEntry;\n\t\tthis.routerId = routerId;\n\t\tthis.index = index;\n\t}\n\n\tset ondispose(handler: ((this: NavigationHistoryEntry, ev: Event) => any) | null) {\n\t\tthis.#nativeEntry.ondispose = handler;\n\t}\n\n\tget ondispose() {\n\t\treturn this.#nativeEntry.ondispose;\n\t}\n\n\tget id() {\n\t\treturn this.#nativeEntry.id;\n\t}\n\n\tget globalIndex() {\n\t\treturn this.#nativeEntry.index;\n\t}\n\n\tget url() {\n\t\tif (!this.#nativeEntry.url) return null;\n\t\treturn new URL(this.#nativeEntry.url);\n\t}\n\n\tget key() {\n\t\treturn this.#nativeEntry.key;\n\t}\n\n\tget sameDocument() {\n\t\treturn this.#nativeEntry.sameDocument;\n\t}\n\n\taddEventListener<K extends keyof NavigationHistoryEntryEventMap>(type: K, listener: (this: NavigationHistoryEntry, ev: NavigationHistoryEntryEventMap[K]) => any, options?: boolean | AddEventListenerOptions): () => void;\n\taddEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): () => void;\n\taddEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): () => void {\n\t\tthis.#nativeEntry.addEventListener(type, listener, options);\n\n\t\treturn () => this.#nativeEntry.removeEventListener(type, listener, options);\n\t}\n\n\tremoveEventListener<K extends keyof NavigationHistoryEntryEventMap>(type: K, listener: (this: NavigationHistoryEntry, ev: NavigationHistoryEntryEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n\tremoveEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n\tremoveEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void {\n\t\tthis.#nativeEntry.addEventListener(type, listener, options);\n\t}\n\n\tdispatchEvent(event: Event): boolean {\n\t\treturn this.#nativeEntry.dispatchEvent(event);\n\t}\n\n\tgetState<T>() {\n\t\treturn this.#nativeEntry.getState() as T;\n\t}\n}","import {\n NavigationBase,\n includesRoute,\n resolveBaseURLFromPattern,\n} from '@react-motion-router/core';\nimport { GoBackOptions, GoForwardOptions, NavigateOptions, NavigationBaseOptions, NavigationProps, RouterEventMap } from './common/types';\nimport { BackEvent, ForwardEvent, NavigateEvent } from './common/events';\nimport { HistoryEntry } from './HistoryEntry';\nimport { Router } from './Router';\n\nexport class Navigation extends NavigationBase<RouterEventMap> {\n protected readonly router: Router;\n\n constructor(router: Router) {\n super();\n this.router = router;\n }\n\n replace(route: string, props: NavigationProps = {}, options: NavigationBaseOptions = {}) {\n return this.navigate(route, props, { ...options, type: \"replace\" });\n }\n\n push(route: string, props: NavigationProps = {}, options: NavigationBaseOptions = {}) {\n return this.navigate(route, props, { ...options, type: \"push\" });\n }\n\n reload(props: NavigationProps = {}) {\n return window.navigation.reload({ state: props });\n }\n\n traverseTo(key: string, options: NavigationBaseOptions = {}) {\n const result = window.navigation.traverseTo(key);\n const transition = window.navigation.transition!;\n\n const fromIndex = transition.from.index;\n const destinationIndex = window.navigation.entries().findIndex(entry => entry.key === key);\n\n const controller = new AbortController();\n controller.signal.addEventListener('abort', () => this.traverseTo(transition.from.key), { once: true });\n options.signal?.addEventListener('abort', controller.abort, { once: true });\n\n let event;\n if (fromIndex > destinationIndex) {\n event = this.createBackEvent(controller.signal, result.committed, transition);\n } else {\n event = this.createForwardEvent(controller.signal, result.committed, transition);\n }\n this.dispatchEvent?.(event);\n\n return result;\n }\n\n navigate(\n route: string,\n props: NavigationProps = {},\n options: NavigateOptions = {}\n ) {\n const { type: history = \"push\" } = options;\n\n const url = new URL(route, this.baseURL);\n const result = window.navigation.navigate(url.href, { history, state: props });\n const transition = window.navigation.transition!;\n\n const controller = new AbortController();\n controller.signal.addEventListener('abort', () => this.goBack(), { once: true });\n options.signal?.addEventListener('abort', controller.abort, { once: true });\n\n const event = this.createNavigateEvent(route, props, history, controller.signal, result.committed, transition);\n this.dispatchEvent?.(event);\n\n return result;\n }\n\n goBack(options: GoBackOptions = {}) {\n if (!this.canGoBack()) return;\n\n const result = window.navigation.traverseTo(this.previous.key);\n const transition = window.navigation.transition!;\n\n const controller = new AbortController();\n controller.signal.addEventListener('abort', () => this.goForward(), { once: true });\n options.signal?.addEventListener('abort', controller.abort, { once: true });\n\n const event = this.createBackEvent(controller.signal, result.committed, transition);\n this.dispatchEvent?.(event);\n\n return result;\n }\n\n goForward(options: GoForwardOptions = {}) {\n if (!this.canGoForward()) return;\n\n const result = window.navigation.traverseTo(this.next.key);\n const transition = window.navigation.transition!;\n\n const controller = new AbortController();\n controller.signal.addEventListener('abort', () => this.goBack(), { once: true });\n options.signal?.addEventListener('abort', controller.abort, { once: true });\n\n const event = this.createForwardEvent(controller.signal, result.committed, transition);\n this.dispatchEvent?.(event);\n\n return result;\n }\n\n private createBackEvent(\n signal: AbortSignal,\n committed: Promise<NavigationHistoryEntry>,\n transition: NavigationTransition\n ) {\n if (!this.routerId) throw new Error(\"Router ID is not set\");\n return new BackEvent(this.routerId, signal, committed, transition);\n }\n\n private createForwardEvent(\n signal: AbortSignal,\n committed: Promise<NavigationHistoryEntry>,\n transition: NavigationTransition\n ) {\n if (!this.routerId) throw new Error(\"Router ID is not set\");\n return new ForwardEvent(this.routerId, signal, committed, transition);\n }\n\n private createNavigateEvent(\n route: string,\n props: NavigationProps,\n type: NavigateOptions[\"type\"],\n signal: AbortSignal,\n committed: Promise<NavigationHistoryEntry>,\n transition: NavigationTransition\n ) {\n if (!this.routerId) throw new Error(\"Router ID is not set\");\n return new NavigateEvent(\n this.routerId,\n route,\n props,\n type,\n signal,\n committed,\n transition\n );\n }\n\n get committed() {\n return this.router.committed;\n }\n\n get transition() {\n return this.router.state.transition;\n }\n\n get globalEntries() {\n return window.navigation.entries();\n }\n\n get entries() {\n const nestedPathPatterns = this.router.pathPatterns.filter(({ pattern }) => pattern.endsWith(\"**\"));\n let inNestedScope = false;\n return this.globalEntries\n .filter(entry => {\n if (!entry.url) return false;\n const url = new URL(entry.url);\n if (!resolveBaseURLFromPattern(this.baseURLPattern.pathname, url.pathname))\n return false;\n\n if (includesRoute(nestedPathPatterns, url.pathname, this.baseURLPattern.pathname)) {\n if (inNestedScope)\n return false;\n\n return inNestedScope = true; // technically in nested scope but include the first entry (the entry intercepted by the parent router)\n } else {\n inNestedScope = false;\n return true; // not in nested scope, so include\n }\n })\n .map((entry, index) => {\n return new HistoryEntry(entry, this.routerId, index);\n });\n }\n\n get index() {\n const globalCurrentIndex = window.navigation.currentEntry?.index ?? -1;\n const firstEntryGlobalIndex = this.entries.at(0)?.globalIndex ?? -1;\n const lastEntryGlobalIndex = this.entries.at(-1)?.globalIndex ?? -1;\n if (globalCurrentIndex <= firstEntryGlobalIndex)\n return 0;\n else if (globalCurrentIndex >= lastEntryGlobalIndex)\n return this.entries.length - 1;\n else {\n const scopedEntries = this.globalEntries.slice(firstEntryGlobalIndex, globalCurrentIndex + 1);\n return this.entries.findLastIndex(entry => {\n return scopedEntries.findLastIndex(globalEntry => entry.key === globalEntry.key) > -1;\n });\n }\n }\n\n get previous(): HistoryEntry | null {\n return this.entries[this.index - 1] ?? null;\n }\n\n get next(): HistoryEntry | null {\n return this.entries[this.index + 1] ?? null;\n }\n\n get current() {\n return this.entries[this.index];\n }\n\n canGoBack(this: Navigation): this is Navigation & { previous: HistoryEntry } {\n return Boolean(this.previous?.sameDocument);\n }\n\n canGoForward(this: Navigation): this is Navigation & { next: HistoryEntry } {\n return Boolean(this.next?.sameDocument);\n }\n}","import { PlainObject } from \"@react-motion-router/core\";\n\nexport function searchParamsToObject(searchParams: URLSearchParams) {\n\tconst entries = searchParams.entries();\n\tconst result: PlainObject<string> = {};\n\n\tfor (const [key, value] of entries) { // each 'entry' is a [key, value] tuple\n\t\tlet parsedValue = '';\n\t\ttry {\n\t\t\tparsedValue = JSON.parse(value);\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Non JSON serialisable value was passed as URL route param.\");\n\t\t\tparsedValue = value;\n\t\t}\n\t\tresult[key] = parsedValue;\n\t}\n\treturn Object.keys(result).length ? result : undefined;\n}\n\nexport function searchParamsFromObject(params: { [key: string]: any }) {\n\ttry {\n\t\tfor (const [key, value] of Object.entries(params)) {\n\t\t\tparams[key] = JSON.stringify(value);\n\t\t}\n\t\treturn new URLSearchParams(params).toString();\n\t} catch (e) {\n\t\tconsole.error(e);\n\t\tconsole.warn(\"Non JSON serialisable value was passed as query param.\");\n\t}\n\treturn '';\n}\n\nexport function isGesture(info?: unknown) {\n\tif (info && typeof info === 'object' && 'gesture' in info)\n\t\treturn Boolean(info.gesture);\n\treturn false;\n}\n\nexport function isRollback(info?: unknown) {\n\tif (info && typeof info === 'object' && 'rollback' in info)\n\t\treturn Boolean(info.rollback);\n\treturn false;\n}\n\nexport function deepEquals<T>(obj1: T, obj2: T): boolean {\n\tif (obj1 === obj2) {\n\t\treturn true;\n\t}\n\n\tif (obj1 === null || obj2 === null || typeof obj1 !== 'object' || typeof obj2 !== 'object') {\n\t\treturn false;\n\t}\n\n\tconst keys1 = Object.keys(obj1) as (keyof T)[];\n\tconst keys2 = Object.keys(obj2) as (keyof T)[];\n\n\tif (keys1.length !== keys2.length) {\n\t\treturn false;\n\t}\n\n\tfor (let key of keys1) {\n\t\tif (!keys2.includes(key) || !deepEquals(obj1[key], obj2[key])) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}","import { ScreenBase } from '@react-motion-router/core';\nimport type { PlainObject, RouterContext, ScreenBaseProps, ScreenBaseState, ScreenBaseComponentProps, ScreenBaseConfig } from '@react-motion-router/core';\nimport { Navigation } from './Navigation';\nimport { HistoryEntryState, RouteProp, ScreenInternalProps, SwipeDirection } from './common/types';\nimport { Router } from './Router';\nimport { searchParamsToObject } from './common/utils';\nimport { HistoryEntry } from './HistoryEntry';\n\nexport interface ScreenComponentProps<T extends PlainObject = {}> extends ScreenBaseComponentProps<RouteProp<T>, Navigation> { }\n\nexport interface ScreenConfig extends ScreenBaseConfig<RouteProp> {\n title?: string;\n presentation?: \"default\" | \"dialog\" | \"modal\";\n keepAlive?: boolean;\n gestureDirection?: SwipeDirection;\n gestureAreaWidth?: number;\n gestureMinFlingVelocity?: number;\n gestureHysteresis?: number;\n gestureDisabled?: boolean;\n}\n\nexport interface ScreenProps extends ScreenBaseProps {\n config?: ScreenConfig;\n}\n\nexport interface ScreenState extends ScreenBaseState { }\n\nexport class Screen extends ScreenBase<ScreenProps, ScreenState, RouteProp> {\n #historyEntry: HistoryEntry;\n\n constructor(props: ScreenProps, context: React.ContextType<typeof RouterContext>) {\n super(props, context);\n\n const router = context as Router;\n const id = this.internalProps.id;\n const historyEntry = router.navigation.entries.find(entry => entry.key === id);\n if (!historyEntry)\n throw new Error(`No history entry found for: ${id}`);\n this.#historyEntry = historyEntry;\n }\n\n static getDerivedStateFromProps(props: ScreenProps) {\n if (\n props.config?.presentation === \"dialog\"\n || props.config?.presentation === \"modal\"\n )\n return { elementType: \"dialog\" };\n else\n return { elementType: \"div\" };\n }\n\n protected setParams(newParams: PlainObject): void {\n super.setParams(newParams);\n this.setHistoryState(({ params }) => ({ params: { ...params, ...newParams } }));\n }\n\n protected setConfig(newConfig: NonNullable<ScreenProps[\"config\"]>): void {\n super.setConfig(newConfig);\n this.setHistoryState(({ config }) => ({ config: { ...config, ...newConfig } }));\n }\n\n protected get router() {\n return this.context as Router;\n }\n\n get internalProps() {\n return this.props as unknown as ScreenInternalProps;\n }\n\n get resolvedPathname() {\n return this.internalProps.resolvedPathname;\n }\n\n get historyEntryState() {\n const entry = this.#historyEntry;\n if (entry?.url) {\n const state = entry.getState<HistoryEntryState>() ?? {};\n const queryParams = searchParamsToObject(entry.url.searchParams);\n state.params = {\n ...state.params,\n ...queryParams\n };\n\n return state;\n }\n return {};\n }\n\n get id() {\n return this.internalProps.id.toString();\n }\n\n get params() {\n return {\n ...this.props.defaultParams,\n ...this.historyEntryState.params,\n ...this.state.params\n };\n }\n\n get config() {\n return {\n ...this.props.config,\n ...this.historyEntryState.config,\n ...this.state.config\n };\n }\n\n protected get routeProp() {\n const setParams = this.setParams.bind(this);\n const setConfig = this.setConfig.bind(this);\n const{ path } = this.props;\n const { focused } = this.state;\n const { params, config, resolvedPathname } = this;\n return {\n setParams,\n setConfig,\n path,\n resolvedPathname,\n focused,\n params,\n config\n };\n }\n\n protected setHistoryState(newState: PlainObject | ((prevState: PlainObject) => PlainObject)) {\n if (!this.state.focused) return;\n const prevState = this.#historyEntry.getState<HistoryEntryState>() ?? {};\n if (newState instanceof Function) {\n newState = newState(prevState);\n }\n const state = {\n ...prevState ?? {},\n ...newState\n };\n window.navigation.updateCurrentEntry({ state });\n }\n\n private onClickOutside(e: MouseEvent) {\n if (!this.transitionProvider.current?.ref.current) return;\n const navigation = this.context?.navigation as Navigation | undefined;\n const rect = this.transitionProvider.current.ref.current.getBoundingClientRect();\n const isInDialog = (\n rect.top <= e.clientY\n && e.clientY <= rect.top + rect.height\n && rect.left <= e.clientX\n && e.clientX <= rect.left + rect.width\n );\n if (!isInDialog)\n navigation?.goBack();\n }\n\n onEnter(signal: AbortSignal) {\n if (\n this.transitionProvider.current?.ref.current instanceof HTMLDialogElement\n && this.transitionProvider.current.ref.current.open === false\n ) {\n const navigation = this.context?.navigation as Navigation | undefined;\n if (this.props.config?.presentation === \"modal\") {\n this.transitionProvider.current.ref.current.showModal();\n } else {\n this.transitionProvider.current.ref.current.show();\n }\n this.transitionProvider.current.ref.current.style.maxHeight = 'unset';\n this.transitionProvider.current.ref.current.style.maxWidth = 'unset';\n this.transitionProvider.current.ref.current.style.width = 'max-content';\n this.transitionProvider.current.ref.current.style.height = 'max-content';\n if (this.ref.current) {\n this.ref.current.style.width = 'max-content';\n this.ref.current.style.height = 'max-content';\n }\n\n const onClickOutside = this.onClickOutside.bind(this);\n\n // closed by form submit or ESC key\n this.transitionProvider.current?.ref.current.addEventListener('close', function () {\n if (this.returnValue !== \"screen-exit\") {\n this.style.display = \"block\";\n navigation?.goBack();\n }\n\n navigation?.removeEventListener('click', onClickOutside);\n }, { once: true });\n\n navigation?.addEventListener('click', onClickOutside);\n }\n\n return super.onEnter(signal);\n };\n\n onExited(signal: AbortSignal) {\n if (this.transitionProvider.current?.ref.current instanceof HTMLDialogElement) {\n this.transitionProvider.current.ref.current.close(\"screen-exit\");\n }\n\n return super.onExited(signal);\n }\n}","import { PlainObject, RoutePropBase, RouterBaseEventMap } from \"@react-motion-router/core\";\nimport { ScreenProps } from \"../Screen\";\nimport { RefObject } from \"react\";\nimport { BackEvent, ForwardEvent, GestureCancelEvent, GestureEndEvent, GestureStartEvent, NavigateEvent } from \"./events\";\n\nexport interface NavigationBaseOptions {\n\tsignal?: AbortSignal;\n}\n\nexport interface NavigateOptions extends NavigationBaseOptions {\n\ttype?: \"push\" | \"replace\";\n}\n\nexport interface GoBackOptions extends NavigationBaseOptions { }\nexport interface GoForwardOptions extends NavigationBaseOptions { }\n\nexport interface NavigationProps {\n\tparams?: Record<any, any>;\n\tconfig?: ScreenProps[\"config\"]\n}\n\nexport type Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never };\n\nexport type XOR<T, U> = (T | U) extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;\n\nexport interface HistoryEntryState {\n\tconfig?: ScreenProps[\"config\"];\n\tparams?: PlainObject;\n}\n\nexport function isRefObject<T>(value?: React.LegacyRef<T>): value is RefObject<T> {\n\tif (\n\t\tvalue !== null\n\t\t&& typeof value === 'object'\n\t\t&& value.hasOwnProperty('current')\n\t) return true;\n\treturn false;\n}\n\nexport interface RouterEventMap extends RouterBaseEventMap {\n\t\"navigate\": NavigateEvent;\n\t\"back\": BackEvent;\n\t\"forward\": ForwardEvent;\n\t\"gesture-start\": GestureStartEvent;\n\t\"gesture-end\": GestureEndEvent;\n\t\"gesture-cancel\": GestureCancelEvent;\n}\n\nexport interface RouteProp<T extends PlainObject = {}> extends RoutePropBase<ScreenProps[\"config\"], T> { }\n\nexport type SwipeDirection = 'up' | 'down' | 'left' | 'right' | 'horizontal' | 'vertical';\nexport type Direction = Exclude<SwipeDirection, \"horizontal\" | \"vertical\">;\n\nconst directions: Record<SwipeDirection, Direction[]> = {\n\t\"horizontal\": [\"left\", \"right\"] as const,\n\t\"vertical\": [\"up\", \"down\"] as const,\n\t\"up\": [\"up\"] as const,\n\t\"down\": [\"down\"] as const,\n\t\"left\": [\"left\"] as const,\n\t\"right\": [\"right\"] as const\n};\nexport function isSupportedDirection(direction: Exclude<SwipeDirection, \"horizontal\" | \"vertical\">, supported: SwipeDirection) {\n\treturn directions[supported].includes(direction);\n}\n\nexport function isOutOfBounds(direction: SwipeDirection, { x, y }: { x: number, y: number }, clientRect: DOMRect, gestureAreaWidth: number) {\n\tif (direction === \"right\" && Math.abs(x - clientRect.left) >= gestureAreaWidth) return false;\n\tif (direction === \"left\" && Math.abs(x - clientRect.right) >= gestureAreaWidth) return false;\n\tif (direction === \"down\" && Math.abs(y - clientRect.top) >= gestureAreaWidth) return false;\n\tif (direction === \"up\" && Math.abs(y - clientRect.bottom) >= gestureAreaWidth) return false;\n}\n\nexport function isHorizontalDirection(direction: SwipeDirection): direction is 'left' | 'right' | 'horizontal' {\n\treturn direction === 'left' || direction === 'right' || direction === 'horizontal';\n}\n\nexport interface ScreenInternalProps {\n resolvedPathname: string;\n id: React.Key;\n}","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"GestureTimeline\"]: () => __WEBPACK_EXTERNAL_MODULE_web_animations_extension_74b2916c__.GestureTimeline, [\"easingToLinear\"]: () => __WEBPACK_EXTERNAL_MODULE_web_animations_extension_74b2916c__.easingToLinear, [\"springToLinear\"]: () => __WEBPACK_EXTERNAL_MODULE_web_animations_extension_74b2916c__.springToLinear });","export const DEFAULT_GESTURE_CONFIG = {\n gestureHysteresis: 0.5,\n gestureMinFlingVelocity: 400,\n gestureAreaWidth: 100,\n gestureDirection: 'right',\n gestureDisabled: false\n} as const;","export class PromiseWrapper<T> {\n\tpromise: Promise<T>;\n\tstate: 'pending' | 'resolved' | 'rejected';\n\tnativeResolve: ((value: T | PromiseLike<T>) => void) | null;\n\tnativeReject: ((reason: any) => void) | null;\n constructor() {\n this.state = 'pending';\n this.nativeResolve = this.nativeReject = null;\n this.promise = new Promise((resolve, reject) => {\n this.nativeResolve = resolve;\n this.nativeReject = reject;\n });\n }\n\n resolve(value: T) {\n this.state = 'resolved';\n this.nativeResolve?.(value);\n }\n\n reject(reason: any) {\n this.state = 'rejected';\n // Do not report unhandled promise rejections.\n this.promise.catch(() => {});\n this.nativeReject?.(reason);\n }\n}","import { RouterBase, cloneAndInject, includesRoute, isValidScreenChild, matchRoute } from '@react-motion-router/core';\nimport type { ClonedElementType, LoadEvent, NestedRouterContext, RouterBaseConfig, RouterBaseProps, RouterBaseState, ScreenChild } from '@react-motion-router/core';\nimport { Navigation } from './Navigation';\nimport { ScreenProps, Screen, ScreenConfig } from './Screen';\nimport { HistoryEntryState, isHorizontalDirection, isOutOfBounds, isRefObject, isSupportedDirection, RouterEventMap, ScreenInternalProps, SwipeDirection } from './common/types';\nimport { Children, createRef, startTransition } from 'react';\nimport { SwipeStartEvent, SwipeEndEvent } from 'web-gesture-events';\nimport { GestureTimeline } from 'web-animations-extension';\nimport { deepEquals, isGesture, isRollback } from './common/utils';\nimport { GestureCancelEvent, GestureEndEvent, GestureStartEvent } from './common/events';\nimport { DEFAULT_GESTURE_CONFIG } from './common/constants';\nimport { PromiseWrapper } from './common/promise-wrapper';\n\nexport interface RouterConfig extends RouterBaseConfig {\n screenConfig?: ScreenConfig;\n disableBrowserRouting?: boolean;\n initialPath?: string;\n shouldIntercept?(navigateEvent: NavigateEvent): boolean;\n onIntercept?(navigateEvent: NavigateEvent): boolean;\n}\n\nexport interface RouterProps extends RouterBaseProps<Screen> {\n config?: RouterConfig;\n}\n\ntype InjectedScreenProps = Pick<ScreenInternalProps & ScreenProps, \"config\" | \"id\" | \"resolvedPathname\">;\nexport interface RouterState extends RouterBaseState {\n transition: NavigationTransition | LoadEvent[\"transition\"] | null;\n screenStack: ClonedElementType<ScreenChild<Screen>, InjectedScreenProps>[];\n gestureDirection: SwipeDirection;\n gestureAreaWidth: number;\n gestureMinFlingVelocity: number;\n gestureHysteresis: number;\n gestureDisabled: boolean;\n fromKey: React.Key | null\n destinationKey: React.Key | null;\n documentTitle?: string;\n controller: AbortController | null;\n}\n\nexport class Router extends RouterBase<RouterProps, RouterState, RouterEventMap> {\n public readonly navigation = new Navigation(this);\n #committed: PromiseWrapper<NavigationHistoryEntry> | null = null;\n\n constructor(props: RouterProps, context: React.ContextType<typeof NestedRouterContext>) {\n super(props, context);\n this.state = {\n screenStack: [],\n gestureDirection: \"horizontal\",\n gestureAreaWidth: 50,\n gestureHysteresis: 0.5,\n gestureDisabled: true,\n gestureMinFlingVelocity: 500,\n transition: null,\n documentTitle: document.title,\n fromKey: null,\n destinationKey: null,\n controller: null\n };\n }\n\n static readonly defaultProps: Partial<RouterProps> = {\n config: {\n screenConfig: {\n ...DEFAULT_GESTURE_CONFIG\n }\n }\n };\n\n static getDerivedStateFromProps(_: RouterProps, state: RouterState) {\n const config = state.screenStack.find(screen => isRefObject(screen.ref) && screen.ref.current?.focused)?.props.config;\n document.title = config?.title ?? document.title;\n return {\n gestureDirection: config?.gestureDirection ?? DEFAULT_GESTURE_CONFIG.gestureDirection,\n gestureAreaWidth: config?.gestureAreaWidth ?? DEFAULT_GESTURE_CONFIG.gestureAreaWidth,\n gestureMinFlingVelocity: config?.gestureMinFlingVelocity ?? DEFAULT_GESTURE_CONFIG.gestureMinFlingVelocity,\n gestureHysteresis: config?.gestureHysteresis ?? DEFAULT_GESTURE_CONFIG.gestureHysteresis,\n gestureDisabled: config?.gestureDisabled ?? DEFAULT_GESTURE_CONFIG.gestureDisabled,\n documentTitle: config?.title\n }\n }\n\n componentDidMount(): void {\n super.componentDidMount();\n this.ref.current?.addEventListener('swipestart', this.onSwipeStart);\n this.ref.current?.addEventListener('swipeend', this.onSwipeEnd);\n window.navigation.addEventListener(\"currententrychange\", this.onCurrentEntryChange);\n window.navigation.addEventListener(\"navigate\", this.onNavigate);\n window.navigation.addEventListener(\"navigatesuccess\", this.onNavigateSuccess);\n window.navigation.addEventListener(\"navigateerror\", this.onNavigateError);\n }\n\n shouldComponentUpdate(nextProps: Readonly<RouterProps>, nextState: Readonly<RouterState>): boolean {\n return (\n !deepEquals(this.props.config, nextProps.config)\n || !deepEquals(this.state, nextState)\n || this.props.id !== nextProps.id\n );\n }\n\n componentWillUnmount(): void {\n this.ref.current?.removeEventListener('swipestart', this.onSwipeStart);\n this.ref.current?.removeEventListener('swipeend', this.onSwipeEnd);\n window.navigation.removeEventListener(\"currententrychange\", this.onCurrentEntryChange);\n window.navigation.removeEventListener(\"navigate\", this.onNavigate);\n window.navigation.removeEventListener(\"navigatesuccess\", this.onNavigateSuccess);\n window.navigation.removeEventListener(\"navigateerror\", this.onNavigateError);\n }\n\n private onNavigate = () => {\n this.#committed = new PromiseWrapper();\n }\n\n private onCurrentEntryChange = () => {\n this.#committed?.nativeResolve?.(window.navigation.currentEntry!);\n }\n\n private onNavigateSuccess = () => {\n this.#committed = null;\n }\n\n private onNavigateError = ({ error }: ErrorEvent) => {\n if (this.#committed?.state === \"pending\")\n this.#committed.nativeReject?.(error); // TODO: find out what the spec does for cancelled navigations\n this.#committed = null;\n }\n\n private onGestureCancel = () => {\n if (!this.state.transition)\n throw new Error(\"Rollback failed, transition is null\");\n window.navigation.traverseTo(this.state.transition.from.key, { info: { rollback: true } });\n }\n\n private canGestureNavigate(e: SwipeStartEvent) {\n if (!this.ref.current) return false;\n if (this.state.gestureDisabled) return false;\n const clientRect = this.ref.current.getBoundingClientRect();\n const { direction } = e;\n if ((direction === \"down\" || direction === \"right\") && !this.navigation.canGoBack()) return false;\n if ((direction === \"up\" || direction === \"left\") && !this.navigation.canGoForward()) return false;\n if (isOutOfBounds(direction, e, clientRect, this.state.gestureAreaWidth)) return false;\n\n return isSupportedDirection(direction, this.state.gestureDirection);\n }\n\n private onSwipeStart = (e: SwipeStartEvent) => {\n if (!this.canGestureNavigate(e)) return;\n if (!this.ref.current || !this.screenTransitionLayer.current) return;\n const { direction } = e;\n\n let axis: \"x\" | \"y\" = isHorizontalDirection(direction) ? \"x\" : \"y\";\n let rangeStart;\n let rangeEnd;\n switch (direction) {\n case \"right\":\n rangeStart = 0;\n rangeEnd = this.ref.current.clientWidth;\n break;\n case \"left\":\n rangeStart = this.ref.current.clientWidth;\n rangeEnd = 0;\n break;\n case \"down\":\n rangeStart = 0;\n rangeEnd = this.ref.current.clientHeight;\n break;\n case \"up\":\n rangeStart = this.ref.current.clientHeight;\n rangeEnd = 0;\n break;\n }\n this.screenTransitionLayer.current.animation.timeline = new GestureTimeline({\n source: this.ref.current,\n type: \"swipe\",\n axis,\n rangeStart,\n rangeEnd\n });\n const gesture = true;\n if (direction === \"down\" || direction === \"right\")\n window.navigation.traverseTo(this.navigation.previous!.key, { info: { gesture } });\n else\n window.navigation.traverseTo(this.navigation.next!.key, { info: { gesture } });\n\n this.dispatchEvent(new GestureStartEvent(e));\n }\n\n private onSwipeEnd = (e: SwipeEndEvent) => {\n if (!this.screenTransitionLayer.current) return;\n const progress = this.screenTransitionLayer.current.animation.effect?.getComputedTiming().progress ?? 0;\n const playbackRate = this.screenTransitionLayer.current.animation.playbackRate;\n this.screenTransitionLayer.current.animation.timeline = document.timeline;\n const hysteresisReached = playbackRate > 0 ? progress > this.state.gestureHysteresis : progress < this.state.gestureHysteresis;\n let gestureCancelled = false;\n if (e.velocity < this.state.gestureMinFlingVelocity && !hysteresisReached) {\n gestureCancelled = true;\n this.screenTransitionLayer.current.animation.reverse();\n this.dispatchEvent(new GestureCancelEvent());\n } else {\n this.dispatchEvent(new GestureEndEvent(e));\n }\n if (gestureCancelled) {\n this.screenTransitionLayer.current.animation.finished.then(() => {\n this.state.controller?.abort(\"gesture-cancel\");\n });\n }\n }\n\n public get committed() {\n return this.#committed?.promise ?? null;\n }\n\n private get backNavigating() {\n const fromIndex = this.state.screenStack.findIndex(screen => screen.key === this.state.fromKey);\n const destinationIndex = this.state.screenStack.findIndex(screen => screen.key === this.state.destinationKey);\n\n return destinationIndex >= 0 && destinationIndex < fromIndex;\n }\n\n protected get screens() {\n const screenStack = this.state.screenStack;\n return screenStack\n .filter((screen, index) => {\n const currentScreenRef = screen.ref ?? null;\n const nextScreenRef = screenStack.at(index + 1)?.ref;\n return (isRefObject(currentScreenRef) && currentScreenRef.current?.config.keepAlive)\n || (isRefObject(nextScreenRef) && nextScreenRef.current?.config.presentation === \"modal\")\n || (isRefObject(nextScreenRef) && nextScreenRef.current?.config.presentation === \"dialog\")\n || screen.key === this.navigation.current?.key\n || screen.key === this.state.fromKey\n || screen.key === this.state.destinationKey;\n });\n }\n\n private screenChildFromPathname(pathname: string, key: React.Key | null) {\n const screenChild = Children.toArray(this.props.children)\n .find((child): child is ScreenChild<Screen> => {\n if (!isValidScreenChild(child)) return false;\n return matchRoute(\n child.props.path,\n pathname,\n this.baseURLPattern.pathname,\n child.props.caseSensitive\n ) !== null;\n });\n\n if (!screenChild) return null;\n key ??= crypto.randomUUID();\n return cloneAndInject(screenChild, {\n config: {\n title: document.title,\n ...this.props.config?.screenConfig,\n ...screenChild.props.config\n },\n id: key,\n resolvedPathname: pathname,\n key,\n ref: createRef<Screen>()\n } as InjectedScreenProps);\n }\n\n private getScreenChildByPathname(pathname: string) {\n return Children.toArray(this.props.children)\n .find(child => {\n if (!isValidScreenChild(child)) return;\n return matchRoute(\n child.props.path,\n pathname,\n this.baseURLPattern.pathname,\n child.props.caseSensitive\n );\n });\n }\n\n private getScreenRefByKey(key: string) {\n const screen = this.state.screenStack.find(screen => screen.key === key)?.ref;\n if (isRefObject(screen)) return screen;\n return null;\n }\n\n protected canIntercept(e: NavigateEvent): boolean {\n const pathname = new URL(e.destination.url).pathname;\n const baseURLPattern = this.baseURLPattern.pathname;\n return this.mounted\n && this.shouldIntercept(e)\n && includesRoute(this.pathPatterns, pathname, baseURLPattern);\n }\n\n protected shouldIntercept(e: NavigateEvent): boolean {\n if (this.props.config?.shouldIntercept)\n return this.props.config.shouldIntercept(e);\n return e.canIntercept\n && !e.formData\n && !e.hashChange\n && !e.downloadRequest;\n }\n\n protected intercept(e: NavigateEvent | LoadEvent): void {\n if (this.props.config?.onIntercept && e.navigationType !== \"load\")\n if (this.props.config.onIntercept(e) || e.defaultPrevented)\n return;\n\n switch (e.navigationType) {\n case \"load\":\n this.handleLoad(e);\n break;\n\n case \"reload\":\n case \"replace\":\n this.handleReplace(e);\n break;\n\n default:\n this.handleDefault(e);\n break;\n }\n }\n\n private handleLoad(e: LoadEvent) {\n const handler = () => {\n const fromKey = e.transition?.from?.key ?? null;\n const destinationKey = e.destination.key;\n const transition = e.transition;\n const screenStack: RouterState[\"screenStack\"] = new Array();\n const entries = this.navigation.entries;\n entries.forEach((entry) => {\n if (!entry.url) return null;\n const screen = this.screenChildFromPathname(entry.url.pathname, entry.key);\n if (!screen) return null;\n screenStack.push(screen);\n });\n\n return new Promise<void>((resolve, reject) => startTransition(() => {\n this.setState({ screenStack, fromKey, transition, destinationKey }, async () => {\n const { initialPath } = this.props.config ?? {};\n const [firstEntry] = entries;\n if (\n initialPath\n && entries.length === 1\n && firstEntry.url\n && !matchRoute(\n initialPath,\n firstEntry.url.pathname,\n this.baseURLPattern.pathname\n )\n ) {\n const transitionFinished = window.navigation.transition?.finished ?? Promise.resolve();\n transitionFinished.then(() => {\n this.navigation.replace(initialPath).finished.then(() => {\n const state = e.destination.getState() as HistoryEntryState ?? {};\n this.navigation.push(e.destination.url, state);\n });\n });\n return resolve();\n }\n const signal = e.signal;\n if (this.navigation.current?.key === undefined)\n reject(new Error(\"Current key is undefined\"));\n\n const currentScreen = this.getScreenRefByKey(this.navigation.current.key);\n await this.dispatchLifecycleHandlers(currentScreen, null, signal).catch(reject);\n this.setState({ destinationKey: null, fromKey: null, transition: null }, resolve);\n });\n }));\n }\n\n e.intercept({ handler });\n }\n\n private handleReplace(e: NavigateEvent) {\n const screenStack = this.state.screenStack;\n const destination = e.destination;\n const destinationPathname = new URL(destination.url).pathname;\n const destinationKey = window.navigation.currentEntry?.key ?? destination.key;\n const destinationScreen = this.screenChildFromPathname(destinationPathname, destinationKey);\n if (!destinationScreen) return e.preventDefault();\n const handler = () => {\n const isHotReplace = this.state.transition !== null;\n const transition = this.state.transition ?? window.navigation.transition;\n const fromKey = transition?.from?.key ?? null;\n const currentIndex = screenStack.findIndex(screen => screen.key === this.navigation.current?.key);\n screenStack.splice(\n currentIndex,\n 1,\n destinationScreen\n );\n\n return new Promise<void>((resolve, reject) => startTransition(() => {\n this.setState({ destinationKey, fromKey, transition, screenStack }, async () => {\n const signal = e.signal;\n const outgoingScreen = this.getScreenRefByKey(String(fromKey));\n const incomingScreen = this.getScreenRefByKey(String(destinationKey));\n const pendingLifecycleHandlers = this.dispatchLifecycleHandlers(incomingScreen, null, signal).catch(reject);\n if (isHotReplace) {\n const currentTime = this.screenTransitionLayer.current?.animation.currentTime ?? 0;\n this.screenTransitionLayer.current?.animation.cancel();\n await new Promise(requestAnimationFrame);\n const animation = this.screenTransition(incomingScreen, outgoingScreen);\n if (animation) {\n animation.currentTime = currentTime;\n }\n animation?.updatePlaybackRate(1);\n await animation?.finished.catch(reject);\n }\n await pendingLifecycleHandlers;\n this.setState({ destinationKey: null, fromKey: null, transition: null }, resolve);\n });\n }));\n };\n\n e.intercept({ handler });\n }\n\n private handleDefault(e: NavigateEvent) {\n const screenStack = this.state.screenStack;\n const destination = e.destination;\n const destinationPathname = new URL(destination.url).pathname;\n if (!isValidScreenChild<Screen>(this.getScreenChildByPathname(destinationPathname)))\n return e.preventDefault();\n const handler = () => {\n if (isRollback(e.info)) return Promise.resolve();\n const transition = window.navigation.transition;\n let fromIndex = screenStack.findIndex(screen => screen.key === transition?.from.key);\n if (fromIndex === -1 && e.navigationType === \"traverse\") {\n fromIndex = screenStack.findIndex(screen => {\n if (!transition?.from.url || !screen.props.resolvedPathname) return false;\n const pathnameMatched = transition.from.url.includes(screen.props.resolvedPathname);\n const patternMatched = matchRoute(\n screen.props.path,\n new URL(transition.from.url).pathname,\n this.baseURLPattern.pathname,\n screen.props.caseSensitive\n );\n return pathnameMatched && patternMatched;\n });\n }\n const fromKey = (screenStack[fromIndex]?.key || transition?.from.key) ?? null;\n const destinationIndex = screenStack.findIndex(screen => screen.key === e.destination.key);\n const destinationKey = (screenStack[destinationIndex]?.key || window.navigation.currentEntry?.key) ?? null;\n if (e.navigationType === \"push\") {\n const destinationPathname = new URL(destination.url).pathname;\n const destinationScreen = this.screenChildFromPathname(destinationPathname, destinationKey);\n if (!destinationScreen) return Promise.resolve();\n screenStack.splice(\n fromIndex + 1,\n Infinity, // Remove all screens after current\n destinationScreen\n );\n }\n\n const controller = new AbortController();\n return new Promise<void>((resolve, reject) => startTransition(() => {\n this.setState({ controller, destinationKey, fromKey, transition, screenStack }, async () => {\n controller.signal.onabort = reject;\n const signal = e.signal;\n const outgoingScreen = this.getScreenRefByKey(String(fromKey));\n const incomingScreen = this.getScreenRefByKey(String(destinationKey));\n const pendingLifecycleHandlers = this.dispatchLifecycleHandlers(incomingScreen, outgoingScreen, signal).catch(reject);\n const animation = this.screenTransition(incomingScreen, outgoingScreen);\n animation?.updatePlaybackRate(1);\n animation?.finished.catch(reject);\n await pendingLifecycleHandlers;\n this.setState({ destinationKey: null, fromKey: null, transition: null, controller: null }, resolve);\n });\n }));\n }\n\n let commit;\n if (isGesture(e.info)) {\n commit = \"after-transition\";\n this.addEventListener(\"gesture-end\", () => e.commit?.(), { once: true });\n this.addEventListener(\"gesture-cancel\", this.onGestureCancel, { once: true });\n } else {\n commit = \"immediate\";\n }\n const options = { handler, commit };\n e.intercept(options);\n }\n\n private async dispatchLifecycleHandlers(incomingScreen: React.RefObject<Screen> | null, outgoingScreen: React.RefObject<Screen> | null, signal: AbortSignal) {\n let animationStarted = false;\n this.addEventListener('transition-start', () => animationStarted = true, { once: true });\n\n await Promise.all([\n outgoingScreen?.current?.onExit(signal),\n incomingScreen?.current?.onEnter(signal),\n incomingScreen?.current?.load(signal)\n ]);\n\n if (animationStarted)\n await new Promise((resolve) => this.addEventListener('transition-end', resolve, { once: true }));\n\n // if gesture navigation cancelled then exit here\n if (this.state.controller?.signal.aborted) return;\n\n await Promise.all([\n outgoingScreen?.current?.onExited(signal).then(() => outgoingScreen.current?.blur()),\n incomingScreen?.current?.onEntered(signal).then(() => incomingScreen.current?.focus())\n ]);\n }\n\n private screenTransition(\n incomingScreen: React.RefObject<Screen> | null,\n outgoingScreen: React.RefObject<Screen> | null\n ) {\n const { backNavigating } = this;\n if (this.screenTransitionLayer.current && incomingScreen && outgoingScreen) {\n this.screenTransitionLayer.current.direction = backNavigating ? 'reverse' : 'normal';\n if (incomingScreen.current?.transitionProvider.current) {\n incomingScreen.current.transitionProvider.current.exiting = false;\n }\n if (outgoingScreen.current?.transitionProvider.current) {\n outgoingScreen.current.transitionProvider.current.exiting = true;\n }\n if (this.screenTransitionLayer.current.sharedElementTransitionLayer.current) {\n this.screenTransitionLayer.current.sharedElementTransitionLayer.current.outgoingScreen = outgoingScreen;\n this.screenTransitionLayer.current.sharedElementTransitionLayer.current.incomingScreen = incomingScreen;\n }\n const topScreenIndex = this.screens.findIndex(screen => screen.ref === (backNavigating ? outgoingScreen : incomingScreen));\n this.screenTransitionLayer.current.screens = this.screens\n .map((screen, index) => {\n // normalise indices making incoming screen index 1 and preceding screens index 0...-n\n index = (index - topScreenIndex) + 1;\n if (isRefObject(screen.ref) && screen.ref.current?.transitionProvider.current) {\n screen.ref.current.transitionProvider.current.index = index;\n return screen.ref;\n }\n return null;\n })\n .filter(isRefObject);\n\n return this.screenTransitionLayer.current.transition();\n }\n }\n}","import { PlainObject, useNavigationBase, useRouteBase, useRouterBase } from \"@react-motion-router/core\";\nimport { Navigation } from \"../Navigation\";\nimport { Router } from \"../Router\";\nimport { RouteProp } from \"./types\";\nimport { useDebugValue } from \"react\";\n\nexport function useNavigation() {\n\tuseDebugValue(\"Stack.Navigation\");\n\treturn useNavigationBase<Navigation>();\n}\n\nexport function useRouter() {\n\tuseDebugValue(\"Stack.Router\");\n\treturn useRouterBase<Router>();\n}\n\nexport function useRoute<T extends PlainObject = PlainObject>() {\n\tuseDebugValue(\"Stack.Route\");\n\treturn useRouteBase<RouteProp<T>>();\n}","import { PlainObject } from \"@react-motion-router/core\";\nimport { Navigation } from \"./Navigation\";\nimport { NavigateOptions, XOR } from \"./common/types\";\nimport { useState, useEffect } from \"react\";\nimport { useNavigation } from \"./common/hooks\";\nimport { searchParamsFromObject } from \"./common/utils\";\n\ninterface BaseAnchorProps extends React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement> {\n onClick?: React.MouseEventHandler<HTMLAnchorElement>;\n navigation?: Navigation;\n}\n\ninterface ForwardAnchorProps extends BaseAnchorProps {\n params?: PlainObject<string | boolean | number>;\n href: string;\n type?: NavigateOptions[\"type\"];\n preload?: boolean;\n}\n\ninterface BackAnchorProps extends BaseAnchorProps {\n goBack: boolean;\n}\n\ntype AnchorProps = XOR<ForwardAnchorProps, BackAnchorProps>;\n\nfunction useNavigationOrDefault(navigation?: Navigation) {\n const defaultNavigation = useNavigation();\n return navigation ?? defaultNavigation;\n}\n\nexport function Anchor(props: AnchorProps) {\n const {\n preload,\n goBack,\n params = {},\n type = \"push\",\n href: hrefProp,\n onClick: onClickProp,\n ...aProps\n } = props;\n const navigation = useNavigationOrDefault(props.navigation);\n const [href, setHref] = useState<string | undefined>(undefined);\n const routerId = navigation?.routerId;\n const isExternal = !href?.includes(window.location.origin);\n const rel = isExternal ? \"noopener noreferrer\" : goBack ? \"prev\" : \"next\";\n\n useEffect(() => {\n if (!preload || !href) return;\n navigation.preloadRoute(hrefProp);\n }, [preload, hrefProp]);\n\n useEffect(() => {\n if (goBack) {\n setHref(navigation.previous?.url?.href);\n } else if (hrefProp) {\n const search = searchParamsFromObject(params);\n const uri = new URL(hrefProp, navigation.baseURL);\n uri.search = search;\n setHref(uri.href);\n }\n }, [hrefProp, params]);\n\n const onClick = (e: React.MouseEvent<HTMLAnchorElement>) => {\n if (goBack) {\n e.preventDefault();\n navigation.goBack();\n } else if (type === \"replace\" && hrefProp) {\n e.preventDefault();\n navigation.replace(hrefProp);\n }\n onClickProp?.(e);\n };\n\n return (\n <a\n href={href}\n data-router-id={routerId}\n onClick={onClick}\n rel={rel}\n {...aProps}\n >\n {props.children}\n </a>\n );\n}","export const SlideInFromRightKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateX(100vw)',\n\t},\n\t{\n\t\ttransform: 'translateX(0vw)'\n\t}\n];\n\nexport const iOSSlideInFromRightKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateX(100vw)',\n\t},\n\t{\n\t\ttransform: 'translateX(0vw)'\n\t}\n];\n\nexport const SlideOutToLeftKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateX(0vw)'\n\t},\n\t{\n\t\ttransform: 'translateX(-50vw)'\n\t}\n];\n\nexport const iOSSlideOutToLeftKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateX(0vw)',\n\t},\n\t{\n\t\ttransform: 'translateX(calc(100vw * -0.3))'\n\t}\n];\n\nexport const SlideInFromLeftKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateX(-100vw)'\n\t},\n\t{\n\t\ttransform: 'translateX(0vw)'\n\t}\n];\n\nexport const iOSSlideInFromLeftKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateX(-100vw)'\n\t},\n\t{\n\t\ttransform: 'translateX(0vw)'\n\t}\n];\n\nexport const SlideOutToRightKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateX(0vw)'\n\t},\n\t{\n\t\ttransform: 'translateX(50vw)'\n\t}\n];\n\nexport const iOSSlideOutToRightKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateX(0vw)'\n\t},\n\t{\n\t\ttransform: 'translateX(calc(100vw * 0.3))'\n\t}\n];\n\nexport const SlideInFromBottomKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateY(100vh)'\n\t},\n\t{\n\t\ttransform: 'translateY(0vh)'\n\t}\n];\n\nexport const iOSSlideInFromBottomKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateY(100vh)'\n\t},\n\t{\n\t\ttransform: 'translateY(0vh)'\n\t}\n];\n\nexport const SlideOutToTopKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateY(0vh)'\n\t},\n\t{\n\t\ttransform: 'translateY(-50vh)'\n\t}\n];\n\nexport const SlideInFromTopKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateY(-100vh)'\n\t},\n\t{\n\t\ttransform: 'translateY(0vh)'\n\t}\n];\n\nexport const SlideOutToBottomKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateY(0vh)'\n\t},\n\t{\n\t\ttransform: 'translateY(50vh)'\n\t}\n];\n\nexport const ZoomInKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'scale(0.85)',\n\t\topacity: 0\n\t},\n\t{\n\t\ttransform: 'scale(1)',\n\t\topacity: 1\n\t}\n];\n\nexport const ZoomOutKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'scale(1)',\n\t\topacity: 1\n\t},\n\t{\n\t\ttransform: 'scale(1.15)',\n\t\topacity: 0\n\t}\n];\n\nexport const FadeInKeyframes: Keyframe[] = [\n\t{\n\t\topacity: 0\n\t},\n\t{\n\t\topacity: 1\n\t}\n];\n\nexport const FadeOutKeyframes: Keyframe[] = [\n\t{\n\t\topacity: 1\n\t},\n\t{\n\t\topacity: 0\n\t}\n];\n\nexport const androidFadeInFromBottomKeyframes: Keyframe[] = [\n\t{\n\t\topacity: 0,\n\t\ttransform: 'translateY(calc(100vh * 0.08))'\n\t},\n\t{\n\t\topacity: 0.25,\n\t\toffset: 0.5\n\t},\n\t{\n\t\topacity: 0.7,\n\t\toffset: 0.9\n\t},\n\t{\n\t\topacity: 1,\n\t\ttransform: 'translateY(0vh)'\n\t}\n];\n\nexport const androidFadeInFromRightKeyframes: Keyframe[] = [\n\t{\n\t\topacity: 0,\n\t\ttransform: 'translateY(96vw)'\n\t},\n\t{\n\t\topacity: 1,\n\t\ttransform: 'translateY(0vw)'\n\t}\n];\n\nexport const androidFadeOutToLeftKeyframes: Keyframe[] = [\n\t{\n\t\topacity: 0,\n\t\ttransform: 'translateY(0vw)'\n\t},\n\t{\n\t\topacity: 1,\n\t\ttransform: 'translateY(-96vw)'\n\t}\n];\n\nexport const androidRevealFromBottomKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateY(100vh)'\n\t},\n\t{\n\t\ttransform: 'translateY(0vh)'\n\t}\n];\n\nexport const androidConcealToBottomKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateY(0vh)'\n\t},\n\t{\n\t\ttransform: 'translateY(-2vh)'\n\t}\n];\n\nexport const androidScaleFromCentreKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'scale(0.85)',\n\t\topacity: 0\n\t},\n\t{\n\t\topacity: 0,\n\t\toffset: 0.75\n\t},\n\t{\n\t\topacity: 1,\n\t\toffset: 0.875\n\t},\n\t{\n\t\ttransform: 'scale(1)',\n\t\topacity: 1\n\t}\n];\n\nexport const androidScaleToCentreKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'scale(1)',\n\t\topacity: 1\n\t},\n\t{\n\t\topacity: 1,\n\t\toffset: 0.0825\n\t},\n\t{\n\t\topacity: 1,\n\t\toffset: 0.2075\n\t},\n\t{\n\t\ttransform: 'scale(1.075)',\n\t\topacity: 0\n\t}\n];\n\nexport const androidFadeInFromBottomSheetKeyframes: Keyframe[] = [\n\t{\n\t\ttransform: 'translateY(calc(100vh * 0.8))',\n\t\topacity: 0\n\t},\n\t{\n\t\ttransform: 'translateY(0vh)',\n\t\topacity: 1\n\t}\n];","import { easingToLinear, springToLinear } from \"web-animations-extension\";\n\nfunction easingOut(easing: (t: number) => number): (t: number) => number {\n\treturn t => 1 - easing(1 - t);\n}\n\nfunction easingPoly(n: number): (t: number) => number {\n\treturn (t: number) => Math.pow(t, n);\n}\n\nexport const iOSKeyframeOptions: KeyframeEffectOptions = {\n\t...springToLinear({\n\t\tmass: 3,\n\t\tstiffness: 1000,\n\t\tdamping: 500,\n\t\tvelocity: 0,\n\t\tsteps: 200\n\t})\n};\n\nexport const androidFadeInFromBottomOptions: KeyframeAnimationOptions = {\n\tduration: 350,\n\teasing: easingToLinear(easingOut(easingPoly(5)))\n};\n\nexport const androidFadeOutToBottomOptions: KeyframeAnimationOptions = {\n\tduration: 150,\n\teasing: 'linear'\n};\n\nexport const androidRevealFromBottomOptions: KeyframeAnimationOptions = {\n\tduration: 425,\n\teasing: 'cubic-bezier(0.35, 0.45, 0, 1)'\n};\n\nexport const androidScaleFromCentreOptions: KeyframeAnimationOptions = {\n\tduration: 400,\n\teasing: 'cubic-bezier(0.35, 0.45, 0, 1)'\n};\n\nexport const androidBottomSheetSlideInOptions: KeyframeAnimationOptions = {\n\tduration: 250,\n\teasing: easingToLinear(t => Math.cos((t + 1) * Math.PI) / 2.0 + 0.5)\n};\n\nexport const androidBottomSheetSlideOutOptions: KeyframeAnimationOptions = {\n\tduration: 200,\n\teasing: easingToLinear(t => (t === 1.0 ? 1 : Math.pow(t, 2)))\n};","import { AnimationEffectFactoryProps } from \"@react-motion-router/core\";\nimport {\n\tandroidBottomSheetSlideInOptions,\n\tandroidBottomSheetSlideOutOptions,\n\tandroidFadeInFromBottomOptions,\n\tandroidFadeOutToBottomOptions,\n\tandroidRevealFromBottomOptions,\n\tandroidScaleFromCentreOptions,\n\tiOSKeyframeOptions\n} from \"./keyframe-options-presets\";\nimport {\n\tandroidConcealToBottomKeyframes,\n\tandroidFadeInFromBottomKeyframes,\n\tandroidFadeInFromBottomSheetKeyframes,\n\tandroidFadeInFromRightKeyframes,\n\tandroidFadeOutToLeftKeyframes,\n\tandroidRevealFromBottomKeyframes,\n\tandroidScaleFromCentreKeyframes,\n\tandroidScaleToCentreKeyframes,\n\tiOSSlideInFromBottomKeyframes,\n\tiOSSlideInFromLeftKeyframes,\n\tiOSSlideInFromRightKeyframes,\n\tiOSSlideOutToLeftKeyframes,\n\tiOSSlideOutToRightKeyframes,\n} from \"./keyframe-presets\";\n\nexport function iOSSlideInFromRight({ ref, direction, playbackRate, index }: AnimationEffectFactoryProps) {\n\tconst keyframesPresets = [\n\t\tiOSSlideOutToLeftKeyframes,\n\t\tiOSSlideInFromRightKeyframes\n\t];\n\n\tlet keyframes = keyframesPresets[index];\n\tconst options: KeyframeEffectOptions = {\n\t\tplaybackRate,\n\t\tfill: \"forwards\" as const,\n\t\t...iOSKeyframeOptions\n\t};\n\n\tif (direction === \"reverse\")\n\t\tkeyframes = keyframes.toReversed();\n\n\treturn new KeyframeEffect(ref, keyframes, options);\n}\n\nexport function iOSSlideInFromLeft({ ref, direction, playbackRate, index }: AnimationEffectFactoryProps) {\n\tconst keyframesPresets = [\n\t\tiOSSlideOutToRightKeyframes,\n\t\tiOSSlideInFromLeftKeyframes\n\t];\n\n\tlet keyframes = keyframesPresets[index];\n\tconst options: KeyframeEffectOptions = {\n\t\tplaybackRate,\n\t\tfill: \"forwards\" as const,\n\t\t...iOSKeyframeOptions\n\t};\n\n\tif (direction === \"reverse\")\n\t\tkeyframes = keyframes.toReversed();\n\n\treturn new KeyframeEffect(ref, keyframes, options);\n}\n\nexport function iOSSlideInFromBottom({ ref, direction, playbackRate }: AnimationEffectFactoryProps) {\n\tlet keyframes = iOSSlideInFromBottomKeyframes;\n\tconst options: KeyframeEffectOptions = {\n\t\tplaybackRate,\n\t\tfill: \"forwards\" as const,\n\t\t...iOSKeyframeOptions\n\t};\n\n\tif (direction === \"reverse\")\n\t\tkeyframes = keyframes.toReversed();\n\n\treturn new KeyframeEffect(ref, keyframes, options);\n}\n\nexport function androidFadeInFromBottom({ ref, direction, playbackRate }: AnimationEffectFactoryProps) {\n\tlet keyframes = androidFadeInFromBottomKeyframes;\n\tconst options: KeyframeEffectOptions = {\n\t\tplaybackRate,\n\t\tfill: \"forwards\" as const,\n\t\t...androidFadeInFromBottomOptions\n\t};\n\n\tif (direction === \"reverse\")\n\t\tkeyframes = keyframes.toReversed();\n\n\treturn new KeyframeEffect(ref, keyframes, options);\n}\n\nexport function androidFadeInFromBottomSheet({ ref, direction, index, playbackRate }: AnimationEffectFactoryProps) {\n\tlet keyframes = androidFadeInFromBottomSheetKeyframes;\n\tlet timing;\n\tif (index === 0)\n\t\ttiming = androidBottomSheetSlideOutOptions;\n\telse\n\t\ttiming = androidBottomSheetSlideInOptions;\n\tconst options: KeyframeEffectOptions = {\n\t\tplaybackRate,\n\t\tfill: \"forwards\" as const,\n\t\t...timing\n\t};\n\n\tif (direction === \"reverse\")\n\t\tkeyframes = keyframes.toReversed();\n\n\treturn new KeyframeEffect(ref, keyframes, options);\n}\n\nexport function androidRevealFromBottom({ ref, direction, index, playbackRate }: AnimationEffectFactoryProps) {\n\tlet keyframesPresets = [\n\t\tandroidConcealToBottomKeyframes,\n\t\tandroidRevealFromBottomKeyframes\n\t];\n\n\tconst keyframes = keyframesPresets[index];\n\tconst options: KeyframeEffectOptions = {\n\t\tdirection,\n\t\tplaybackRate,\n\t\tfill: \"forwards\" as const,\n\t\t...androidRevealFromBottomOptions\n\t};\n\n\treturn new KeyframeEffect(ref, keyframes, options);\n}\n\nexport function androidFadeInFromRight({ ref, direction, index, playbackRate }: AnimationEffectFactoryProps) {\n\tlet keyframesPresets = [\n\t\tandroidFadeOutToLeftKeyframes,\n\t\tandroidFadeInFromRightKeyframes\n\t];\n\tlet timing;\n\tif (index === 0)\n\t\ttiming = androidFadeOutToBottomOptions;\n\telse\n\t\ttiming = androidFadeInFromBottomOptions;\n\n\tlet keyframes = keyframesPresets[index];\n\tconst options: KeyframeEffectOptions = {\n\t\tplaybackRate,\n\t\tfill: \"forwards\" as const,\n\t\t...timing\n\t};\n\n\tif (direction === \"reverse\")\n\t\tkeyframes = keyframes.toReversed();\n\n\treturn new KeyframeEffect(ref, keyframes, options);\n}\n\nexport function androidScaleFromCentre({ ref, direction, index, playbackRate }: AnimationEffectFactoryProps) {\n\tlet keyframesPresets = [\n\t\tandroidScaleToCentreKeyframes,\n\t\tandroidScaleFromCentreKeyframes\n\t];\n\n\tconst keyframes = keyframesPresets[index];\n\tconst options: KeyframeEffectOptions = {\n\t\tdirection,\n\t\tplaybackRate,\n\t\tfill: \"forwards\" as const,\n\t\t...androidScaleFromCentreOptions\n\t};\n\n\treturn new KeyframeEffect(ref, keyframes, options);\n}","import { useRef, useEffect } from 'react';\nimport { SwipeStartEvent } from 'web-gesture-events';\n\ninterface GestureRegionProps extends React.HTMLAttributes<HTMLDivElement> {\n disabled?: boolean;\n}\nexport function GestureRegion({disabled, children, ...props}: GestureRegionProps) {\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (disabled) return;\n const onSwipeStart = (e: SwipeStartEvent) => {\n e.stopPropagation();\n e.preventDefault();\n }\n\n ref.current?.addEventListener('swipestart', onSwipeStart);\n\n return () => {\n ref.current?.removeEventListener('swipestart', onSwipeStart);\n }\n }, [ref, disabled]);\n\n return (\n <div\n ref={ref}\n className=\"gesture-region\"\n data-disabled={disabled}\n style={{display: 'contents'}}\n {...props}\n >\n {children}\n </div>\n );\n}","/// <reference types=\"urlpattern-polyfill\" />\nimport 'web-gesture-events';\nexport * from './Navigation';\nexport * from './Screen';\nexport * from './Router';\nexport * from './Anchor';\nexport * from './animation-configs/keyframe-presets';\nexport * from './animation-configs/keyframe-options-presets';\nexport * from './animation-configs/animation-presets';\nexport * from './common/hooks';\nexport * from './GestureRegion';\nexport * from './HistoryEntry';"],"names":[],"sourceRoot":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-motion-router/stack",
|
|
3
|
-
"version": "2.0.0-beta.sha-
|
|
3
|
+
"version": "2.0.0-beta.sha-6f2a71f",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -28,5 +28,5 @@
|
|
|
28
28
|
"@react-motion-router/core": "*",
|
|
29
29
|
"web-animations-extension": "*"
|
|
30
30
|
},
|
|
31
|
-
"gitHead": "
|
|
31
|
+
"gitHead": "6f2a71fb33863c41ef6b6c9a975d9d61ebcc8d80"
|
|
32
32
|
}
|