@zyzgroup/core-vue 0.0.53 → 0.0.54
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/ce/style.css +1 -1
- package/ce/yz_custom_element.iife.js +132 -121
- package/ce/yz_custom_element.iife.js.map +1 -1
- package/ce/yz_custom_element.js +7933 -7527
- package/ce/yz_custom_element.js.map +1 -1
- package/ce/yz_custom_element.umd.cjs +132 -121
- package/ce/yz_custom_element.umd.cjs.map +1 -1
- package/dist/style.css +1 -1
- package/dist/zyzgroup_core_vue.iife.js +3 -3
- package/dist/zyzgroup_core_vue.iife.js.map +1 -1
- package/dist/zyzgroup_core_vue.js +3054 -2761
- package/dist/zyzgroup_core_vue.js.map +1 -1
- package/dist/zyzgroup_core_vue.umd.cjs +3 -3
- package/dist/zyzgroup_core_vue.umd.cjs.map +1 -1
- package/package.json +1 -1
- package/types/components/base/Box.ce.vue.d.ts +8 -0
- package/types/components/base/Box.vue.d.ts +8 -0
- package/types/components/xg/Footer.ce.vue.d.ts +6 -1
- package/types/components/xg/Footer.vue.d.ts +6 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zyzgroup_core_vue.js","sources":["../src/hooks/useVue.ts","../src/hooks/useVueEffect.ts","../src/components/layout/LayoutPage.vue","../src/components/form/ViewDocument.vue","../../../node_modules/.pnpm/@iconify+vue@4.3.0_vue@3.5.13_typescript@5.8.3_/node_modules/@iconify/vue/dist/iconify.mjs","../src/components/Icon.vue","../src/components/loading/Loading11.vue","../src/components/Button.vue","../src/components/xg/Footer.vue","../src/components/PlateDisplay.vue","../src/components/Container.vue","../src/components/effect/CSSAnimation.vue","../src/components/Page.vue","../src/components/Routes.vue","../src/components/Overlay.vue","../src/components/Pop.vue","../src/components/Image.vue","../src/components/ImageView.vue","../src/components/pop/PopTel.vue","../src/components/xg/Lot.vue","../src/components/ResizeObserver.vue","../../../third/stats/stats.js","../src/components/FPSStats.vue","../src/components/svg/SVGDown.vue","../src/components/Accordion.vue","../src/components/form/ProgressBar.vue","../src/components/form/PageVerticalScrollProgressBar.vue","../src/components/base/Box.vue","../src/pages/ShapeShowCase.vue","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isFunction.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/lift.js","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isPromise.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscription.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/config.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/noop.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/errorContext.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscriber.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/symbol/observable.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/identity.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/pipe.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Observable.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/symbol/iterator.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isIterable.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/audit.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/Action.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Scheduler.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/async.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isScheduler.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isDate.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/timer.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/auditTime.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/buffer.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/bufferCount.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/args.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/bufferTime.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/bufferToggle.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/bufferWhen.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/observeOn.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleReadableStreamLike.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/from.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/map.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/createObject.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mergeInternals.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/scanInternals.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/reduce.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/toArray.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/joinAllInternals.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/combineLatestAll.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/argsOrArgArray.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/concatAll.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/concatMap.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subject.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/count.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/debounce.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/concat.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/empty.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/take.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/ignoreElements.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mapTo.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/delayWhen.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/delay.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/of.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/distinct.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/filter.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/EmptyError.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/elementAt.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/every.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/exhaustMap.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/exhaustAll.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/finalize.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/find.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/findIndex.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/first.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/groupBy.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/isEmpty.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/takeLast.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/last.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/max.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mergeScan.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/min.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/pairwise.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/ReplaySubject.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/race.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/repeat.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/sample.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/interval.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/sampleTime.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/scan.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/sequenceEqual.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/share.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/SequenceError.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/NotFoundError.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/single.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/skip.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/skipLast.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/skipUntil.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/skipWhile.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/startWith.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/switchMap.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/switchAll.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/switchScan.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/takeWhile.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/tap.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/throttle.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/throttleTime.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/timeInterval.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/timestamp.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/zip.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/VirtualTimeScheduler.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/defer.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/forkJoin.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/generate.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/iif.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/merge.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/range.js","../src/components/rxmarbles/data/creation-examples.js","../src/components/rxmarbles/data/combination-examples.js","../src/components/rxmarbles/data/conditional-examples.js","../src/components/rxmarbles/data/filtering-examples.js","../src/components/rxmarbles/data/math-examples.js","../src/components/rxmarbles/data/transformation-examples.js","../src/components/rxmarbles/data/utility-examples.js","../src/components/rxmarbles/data/flattern-examples.ts","../src/components/rxmarbles/data/multicasting-examples.js","../src/components/rxmarbles/data/categories.js","../src/components/rxmarbles/data/index.ts","../src/components/rxmarbles/styles.ts","../src/components/rxmarbles/rxMarble.ts","../src/components/rxmarbles/Marble.vue","../src/components/rxmarbles/EndMarker.vue","../src/components/rxmarbles/Sandbox.vue","../src/pages/RxMarbles.vue","../src/hooks/useVueRouter.ts","../src/hooks/useVuex/useVuex.ts"],"sourcesContent":["import {\n AppContext,\n VNode,\n createVNode,\n render,\n getCurrentInstance,\n VNodeProps,\n Component,\n // ComponentPublicInstance,\n ComponentInternalInstance\n} from \"vue\";\n\nexport function getInstance(): ComponentInternalInstance | null {\n return getCurrentInstance();\n}\n\nexport interface CommonComponentProps extends VNodeProps {\n [index: string]: any;\n}\n\nexport function getVNode<T extends Component>(\n component: T,\n props?: CommonComponentProps\n): VNode {\n const vNode = createVNode(component, props);\n // const vm: ComponentPublicInstance<CommonComponentProps> | null | undefined =\n // vNode.component?.proxy;\n // if (vm) {\n // for (const prop in props) {\n // if (Reflect.has(props, prop) && !Reflect.has(vm.$props, prop)) {\n // vm[prop as keyof ComponentPublicInstance] = props[prop];\n // }\n // }\n // }\n return vNode;\n}\n\nexport function renderComponent<T extends Component>(options: {\n component: T;\n props?: CommonComponentProps;\n appContext?: AppContext;\n selfContainer: HTMLElement;\n parentContainer?: HTMLElement;\n}) {\n const vNode = getVNode(options.component, options.props);\n if (options.appContext) {\n vNode.appContext = options.appContext;\n }\n render(vNode, options.selfContainer);\n options.parentContainer?.appendChild(options.selfContainer);\n}\n\n// export interface EnhancedComponentOptions extends VNodeProps {\n// [key: string]: any;\n// }\n// export function enhanceComponent<T extends Component>(\n// component: T\n// ): (options: EnhancedComponentOptions) => VNode {\n// const container = document.createElement(\"div\");\n// return (options: EnhancedComponentOptions): VNode => {\n// const vNode = renderComponent<T>({\n// Component: component,\n// props: options,\n// selfContainer: container,\n// appContext: getCurrentInstance()?.appContext\n// });\n// const vm = vNode.component\n// ?.proxy as ComponentPublicInstance<EnhancedComponentOptions>;\n// for (const prop in options) {\n// if (Reflect.has(options, prop) && !Reflect.has(vm.$props, prop)) {\n// vm[prop as keyof ComponentPublicInstance] = options[prop];\n// }\n// }\n// return vNode;\n// };\n// }\n","import { onMounted, onUnmounted } from \"vue\";\n\nexport function useVueEffect(effect: () => () => void) {\n let remove: () => void;\n onMounted(() => {\n remove = effect();\n });\n onUnmounted(() => {\n remove?.();\n });\n}\n","<template>\n <div class=\"page\">\n <div class=\"page-header\">\n <slot name=\"header\"></slot>\n </div>\n\n <div class=\"page-main\">\n <div class=\"page-main-scroll\">\n <slot></slot>\n </div>\n </div>\n\n <div class=\"page-footer\">\n <slot name=\"footer\"></slot>\n </div>\n\n <div class=\"page-global\">\n <slot name=\"global\"></slot>\n </div>\n </div>\n</template>\n\n<style scoped>\n.page {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.page-header {\n position: relative;\n z-index: 1;\n flex: 0 0 auto;\n}\n.page-footer {\n position: relative;\n z-index: 1;\n flex: 0 0 auto;\n}\n.page-main {\n position: relative;\n z-index: 2;\n flex: 1 1 auto;\n width: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.page-main-scroll {\n position: relative;\n z-index: 3;\n flex: 1 1 auto;\n width: 100%;\n overflow-y: scroll;\n}\n/*\n.page-main-scroll > :nth-child(1) {\n min-height: 100%;\n}\n*/\n</style>\n\n<script setup lang=\"ts\">\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: {},\n inheritAttrs: true\n});\n\ndefineExpose({});\n</script>\n","<script lang=\"tsx\" setup>\nimport { ref } from \"vue\";\nimport {setWindowTitle} from \"@zyzgroup/core-web\"\nimport LayoutPage from \"../layout/LayoutPage.vue\";\nimport { useRoute } from \"../../hooks\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n inheritAttrs: true,\n customOptions: { LayoutPage }\n});\n\nconst props = withDefaults(\n defineProps<{\n src?: string; // https://erichd2.oss-cn-shanghai.aliyuncs.com/0000/0002/2159\n title?: string;\n }>(),\n {\n src: \"\",\n title: \"\"\n }\n);\n\nconst route = useRoute();\nsetWindowTitle(typeof route.params.title == \"string\" ? route.params.title : props.title);\nconst src = decodeURIComponent(typeof route.params.src == \"string\" ? route.params.src : props.src);\n\n</script>\n\n<template>\n <LayoutPage>\n <div class=\"view-document\">\n <img\n class=\"img\"\n :src=\"src\"\n ></img>\n </div>\n </LayoutPage>\n</template>\n\n<style scoped>\n.view-document {\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n}\n.img {\n width: 100%;\n}\n</style>\n","import { h, defineComponent } from 'vue';\n\nconst matchIconName = /^[a-z0-9]+(-[a-z0-9]+)*$/;\nconst stringToIcon = (value, validate, allowSimpleName, provider = \"\") => {\n const colonSeparated = value.split(\":\");\n if (value.slice(0, 1) === \"@\") {\n if (colonSeparated.length < 2 || colonSeparated.length > 3) {\n return null;\n }\n provider = colonSeparated.shift().slice(1);\n }\n if (colonSeparated.length > 3 || !colonSeparated.length) {\n return null;\n }\n if (colonSeparated.length > 1) {\n const name2 = colonSeparated.pop();\n const prefix = colonSeparated.pop();\n const result = {\n // Allow provider without '@': \"provider:prefix:name\"\n provider: colonSeparated.length > 0 ? colonSeparated[0] : provider,\n prefix,\n name: name2\n };\n return validate && !validateIconName(result) ? null : result;\n }\n const name = colonSeparated[0];\n const dashSeparated = name.split(\"-\");\n if (dashSeparated.length > 1) {\n const result = {\n provider,\n prefix: dashSeparated.shift(),\n name: dashSeparated.join(\"-\")\n };\n return validate && !validateIconName(result) ? null : result;\n }\n if (allowSimpleName && provider === \"\") {\n const result = {\n provider,\n prefix: \"\",\n name\n };\n return validate && !validateIconName(result, allowSimpleName) ? null : result;\n }\n return null;\n};\nconst validateIconName = (icon, allowSimpleName) => {\n if (!icon) {\n return false;\n }\n return !!// Check prefix: cannot be empty, unless allowSimpleName is enabled\n // Check name: cannot be empty\n ((allowSimpleName && icon.prefix === \"\" || !!icon.prefix) && !!icon.name);\n};\n\nconst defaultIconDimensions = Object.freeze(\n {\n left: 0,\n top: 0,\n width: 16,\n height: 16\n }\n);\nconst defaultIconTransformations = Object.freeze({\n rotate: 0,\n vFlip: false,\n hFlip: false\n});\nconst defaultIconProps = Object.freeze({\n ...defaultIconDimensions,\n ...defaultIconTransformations\n});\nconst defaultExtendedIconProps = Object.freeze({\n ...defaultIconProps,\n body: \"\",\n hidden: false\n});\n\nfunction mergeIconTransformations(obj1, obj2) {\n const result = {};\n if (!obj1.hFlip !== !obj2.hFlip) {\n result.hFlip = true;\n }\n if (!obj1.vFlip !== !obj2.vFlip) {\n result.vFlip = true;\n }\n const rotate = ((obj1.rotate || 0) + (obj2.rotate || 0)) % 4;\n if (rotate) {\n result.rotate = rotate;\n }\n return result;\n}\n\nfunction mergeIconData(parent, child) {\n const result = mergeIconTransformations(parent, child);\n for (const key in defaultExtendedIconProps) {\n if (key in defaultIconTransformations) {\n if (key in parent && !(key in result)) {\n result[key] = defaultIconTransformations[key];\n }\n } else if (key in child) {\n result[key] = child[key];\n } else if (key in parent) {\n result[key] = parent[key];\n }\n }\n return result;\n}\n\nfunction getIconsTree(data, names) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n const resolved = /* @__PURE__ */ Object.create(null);\n function resolve(name) {\n if (icons[name]) {\n return resolved[name] = [];\n }\n if (!(name in resolved)) {\n resolved[name] = null;\n const parent = aliases[name] && aliases[name].parent;\n const value = parent && resolve(parent);\n if (value) {\n resolved[name] = [parent].concat(value);\n }\n }\n return resolved[name];\n }\n (Object.keys(icons).concat(Object.keys(aliases))).forEach(resolve);\n return resolved;\n}\n\nfunction internalGetIconData(data, name, tree) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n let currentProps = {};\n function parse(name2) {\n currentProps = mergeIconData(\n icons[name2] || aliases[name2],\n currentProps\n );\n }\n parse(name);\n tree.forEach(parse);\n return mergeIconData(data, currentProps);\n}\n\nfunction parseIconSet(data, callback) {\n const names = [];\n if (typeof data !== \"object\" || typeof data.icons !== \"object\") {\n return names;\n }\n if (data.not_found instanceof Array) {\n data.not_found.forEach((name) => {\n callback(name, null);\n names.push(name);\n });\n }\n const tree = getIconsTree(data);\n for (const name in tree) {\n const item = tree[name];\n if (item) {\n callback(name, internalGetIconData(data, name, item));\n names.push(name);\n }\n }\n return names;\n}\n\nconst optionalPropertyDefaults = {\n provider: \"\",\n aliases: {},\n not_found: {},\n ...defaultIconDimensions\n};\nfunction checkOptionalProps(item, defaults) {\n for (const prop in defaults) {\n if (prop in item && typeof item[prop] !== typeof defaults[prop]) {\n return false;\n }\n }\n return true;\n}\nfunction quicklyValidateIconSet(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return null;\n }\n const data = obj;\n if (typeof data.prefix !== \"string\" || !obj.icons || typeof obj.icons !== \"object\") {\n return null;\n }\n if (!checkOptionalProps(obj, optionalPropertyDefaults)) {\n return null;\n }\n const icons = data.icons;\n for (const name in icons) {\n const icon = icons[name];\n if (\n // Name cannot be empty\n !name || // Must have body\n typeof icon.body !== \"string\" || // Check other props\n !checkOptionalProps(\n icon,\n defaultExtendedIconProps\n )\n ) {\n return null;\n }\n }\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n for (const name in aliases) {\n const icon = aliases[name];\n const parent = icon.parent;\n if (\n // Name cannot be empty\n !name || // Parent must be set and point to existing icon\n typeof parent !== \"string\" || !icons[parent] && !aliases[parent] || // Check other props\n !checkOptionalProps(\n icon,\n defaultExtendedIconProps\n )\n ) {\n return null;\n }\n }\n return data;\n}\n\nconst dataStorage = /* @__PURE__ */ Object.create(null);\nfunction newStorage(provider, prefix) {\n return {\n provider,\n prefix,\n icons: /* @__PURE__ */ Object.create(null),\n missing: /* @__PURE__ */ new Set()\n };\n}\nfunction getStorage(provider, prefix) {\n const providerStorage = dataStorage[provider] || (dataStorage[provider] = /* @__PURE__ */ Object.create(null));\n return providerStorage[prefix] || (providerStorage[prefix] = newStorage(provider, prefix));\n}\nfunction addIconSet(storage, data) {\n if (!quicklyValidateIconSet(data)) {\n return [];\n }\n return parseIconSet(data, (name, icon) => {\n if (icon) {\n storage.icons[name] = icon;\n } else {\n storage.missing.add(name);\n }\n });\n}\nfunction addIconToStorage(storage, name, icon) {\n try {\n if (typeof icon.body === \"string\") {\n storage.icons[name] = { ...icon };\n return true;\n }\n } catch (err) {\n }\n return false;\n}\nfunction listIcons(provider, prefix) {\n let allIcons = [];\n const providers = typeof provider === \"string\" ? [provider] : Object.keys(dataStorage);\n providers.forEach((provider2) => {\n const prefixes = typeof provider2 === \"string\" && typeof prefix === \"string\" ? [prefix] : Object.keys(dataStorage[provider2] || {});\n prefixes.forEach((prefix2) => {\n const storage = getStorage(provider2, prefix2);\n allIcons = allIcons.concat(\n Object.keys(storage.icons).map(\n (name) => (provider2 !== \"\" ? \"@\" + provider2 + \":\" : \"\") + prefix2 + \":\" + name\n )\n );\n });\n });\n return allIcons;\n}\n\nlet simpleNames = false;\nfunction allowSimpleNames(allow) {\n if (typeof allow === \"boolean\") {\n simpleNames = allow;\n }\n return simpleNames;\n}\nfunction getIconData(name) {\n const icon = typeof name === \"string\" ? stringToIcon(name, true, simpleNames) : name;\n if (icon) {\n const storage = getStorage(icon.provider, icon.prefix);\n const iconName = icon.name;\n return storage.icons[iconName] || (storage.missing.has(iconName) ? null : void 0);\n }\n}\nfunction addIcon(name, data) {\n const icon = stringToIcon(name, true, simpleNames);\n if (!icon) {\n return false;\n }\n const storage = getStorage(icon.provider, icon.prefix);\n if (data) {\n return addIconToStorage(storage, icon.name, data);\n } else {\n storage.missing.add(icon.name);\n return true;\n }\n}\nfunction addCollection(data, provider) {\n if (typeof data !== \"object\") {\n return false;\n }\n if (typeof provider !== \"string\") {\n provider = data.provider || \"\";\n }\n if (simpleNames && !provider && !data.prefix) {\n let added = false;\n if (quicklyValidateIconSet(data)) {\n data.prefix = \"\";\n parseIconSet(data, (name, icon) => {\n if (addIcon(name, icon)) {\n added = true;\n }\n });\n }\n return added;\n }\n const prefix = data.prefix;\n if (!validateIconName({\n provider,\n prefix,\n name: \"a\"\n })) {\n return false;\n }\n const storage = getStorage(provider, prefix);\n return !!addIconSet(storage, data);\n}\nfunction iconLoaded(name) {\n return !!getIconData(name);\n}\nfunction getIcon(name) {\n const result = getIconData(name);\n return result ? {\n ...defaultIconProps,\n ...result\n } : result;\n}\n\nconst defaultIconSizeCustomisations = Object.freeze({\n width: null,\n height: null\n});\nconst defaultIconCustomisations = Object.freeze({\n // Dimensions\n ...defaultIconSizeCustomisations,\n // Transformations\n ...defaultIconTransformations\n});\n\nconst unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g;\nconst unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g;\nfunction calculateSize(size, ratio, precision) {\n if (ratio === 1) {\n return size;\n }\n precision = precision || 100;\n if (typeof size === \"number\") {\n return Math.ceil(size * ratio * precision) / precision;\n }\n if (typeof size !== \"string\") {\n return size;\n }\n const oldParts = size.split(unitsSplit);\n if (oldParts === null || !oldParts.length) {\n return size;\n }\n const newParts = [];\n let code = oldParts.shift();\n let isNumber = unitsTest.test(code);\n while (true) {\n if (isNumber) {\n const num = parseFloat(code);\n if (isNaN(num)) {\n newParts.push(code);\n } else {\n newParts.push(Math.ceil(num * ratio * precision) / precision);\n }\n } else {\n newParts.push(code);\n }\n code = oldParts.shift();\n if (code === void 0) {\n return newParts.join(\"\");\n }\n isNumber = !isNumber;\n }\n}\n\nfunction splitSVGDefs(content, tag = \"defs\") {\n let defs = \"\";\n const index = content.indexOf(\"<\" + tag);\n while (index >= 0) {\n const start = content.indexOf(\">\", index);\n const end = content.indexOf(\"</\" + tag);\n if (start === -1 || end === -1) {\n break;\n }\n const endEnd = content.indexOf(\">\", end);\n if (endEnd === -1) {\n break;\n }\n defs += content.slice(start + 1, end).trim();\n content = content.slice(0, index).trim() + content.slice(endEnd + 1);\n }\n return {\n defs,\n content\n };\n}\nfunction mergeDefsAndContent(defs, content) {\n return defs ? \"<defs>\" + defs + \"</defs>\" + content : content;\n}\nfunction wrapSVGContent(body, start, end) {\n const split = splitSVGDefs(body);\n return mergeDefsAndContent(split.defs, start + split.content + end);\n}\n\nconst isUnsetKeyword = (value) => value === \"unset\" || value === \"undefined\" || value === \"none\";\nfunction iconToSVG(icon, customisations) {\n const fullIcon = {\n ...defaultIconProps,\n ...icon\n };\n const fullCustomisations = {\n ...defaultIconCustomisations,\n ...customisations\n };\n const box = {\n left: fullIcon.left,\n top: fullIcon.top,\n width: fullIcon.width,\n height: fullIcon.height\n };\n let body = fullIcon.body;\n [fullIcon, fullCustomisations].forEach((props) => {\n const transformations = [];\n const hFlip = props.hFlip;\n const vFlip = props.vFlip;\n let rotation = props.rotate;\n if (hFlip) {\n if (vFlip) {\n rotation += 2;\n } else {\n transformations.push(\n \"translate(\" + (box.width + box.left).toString() + \" \" + (0 - box.top).toString() + \")\"\n );\n transformations.push(\"scale(-1 1)\");\n box.top = box.left = 0;\n }\n } else if (vFlip) {\n transformations.push(\n \"translate(\" + (0 - box.left).toString() + \" \" + (box.height + box.top).toString() + \")\"\n );\n transformations.push(\"scale(1 -1)\");\n box.top = box.left = 0;\n }\n let tempValue;\n if (rotation < 0) {\n rotation -= Math.floor(rotation / 4) * 4;\n }\n rotation = rotation % 4;\n switch (rotation) {\n case 1:\n tempValue = box.height / 2 + box.top;\n transformations.unshift(\n \"rotate(90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n case 2:\n transformations.unshift(\n \"rotate(180 \" + (box.width / 2 + box.left).toString() + \" \" + (box.height / 2 + box.top).toString() + \")\"\n );\n break;\n case 3:\n tempValue = box.width / 2 + box.left;\n transformations.unshift(\n \"rotate(-90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n }\n if (rotation % 2 === 1) {\n if (box.left !== box.top) {\n tempValue = box.left;\n box.left = box.top;\n box.top = tempValue;\n }\n if (box.width !== box.height) {\n tempValue = box.width;\n box.width = box.height;\n box.height = tempValue;\n }\n }\n if (transformations.length) {\n body = wrapSVGContent(\n body,\n '<g transform=\"' + transformations.join(\" \") + '\">',\n \"</g>\"\n );\n }\n });\n const customisationsWidth = fullCustomisations.width;\n const customisationsHeight = fullCustomisations.height;\n const boxWidth = box.width;\n const boxHeight = box.height;\n let width;\n let height;\n if (customisationsWidth === null) {\n height = customisationsHeight === null ? \"1em\" : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n width = calculateSize(height, boxWidth / boxHeight);\n } else {\n width = customisationsWidth === \"auto\" ? boxWidth : customisationsWidth;\n height = customisationsHeight === null ? calculateSize(width, boxHeight / boxWidth) : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n }\n const attributes = {};\n const setAttr = (prop, value) => {\n if (!isUnsetKeyword(value)) {\n attributes[prop] = value.toString();\n }\n };\n setAttr(\"width\", width);\n setAttr(\"height\", height);\n const viewBox = [box.left, box.top, boxWidth, boxHeight];\n attributes.viewBox = viewBox.join(\" \");\n return {\n attributes,\n viewBox,\n body\n };\n}\n\nconst regex = /\\sid=\"(\\S+)\"/g;\nconst randomPrefix = \"IconifyId\" + Date.now().toString(16) + (Math.random() * 16777216 | 0).toString(16);\nlet counter = 0;\nfunction replaceIDs(body, prefix = randomPrefix) {\n const ids = [];\n let match;\n while (match = regex.exec(body)) {\n ids.push(match[1]);\n }\n if (!ids.length) {\n return body;\n }\n const suffix = \"suffix\" + (Math.random() * 16777216 | Date.now()).toString(16);\n ids.forEach((id) => {\n const newID = typeof prefix === \"function\" ? prefix(id) : prefix + (counter++).toString();\n const escapedID = id.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n body = body.replace(\n // Allowed characters before id: [#;\"]\n // Allowed characters after id: [)\"], .[a-z]\n new RegExp('([#;\"])(' + escapedID + ')([\")]|\\\\.[a-z])', \"g\"),\n \"$1\" + newID + suffix + \"$3\"\n );\n });\n body = body.replace(new RegExp(suffix, \"g\"), \"\");\n return body;\n}\n\nconst storage = /* @__PURE__ */ Object.create(null);\nfunction setAPIModule(provider, item) {\n storage[provider] = item;\n}\nfunction getAPIModule(provider) {\n return storage[provider] || storage[\"\"];\n}\n\nfunction createAPIConfig(source) {\n let resources;\n if (typeof source.resources === \"string\") {\n resources = [source.resources];\n } else {\n resources = source.resources;\n if (!(resources instanceof Array) || !resources.length) {\n return null;\n }\n }\n const result = {\n // API hosts\n resources,\n // Root path\n path: source.path || \"/\",\n // URL length limit\n maxURL: source.maxURL || 500,\n // Timeout before next host is used.\n rotate: source.rotate || 750,\n // Timeout before failing query.\n timeout: source.timeout || 5e3,\n // Randomise default API end point.\n random: source.random === true,\n // Start index\n index: source.index || 0,\n // Receive data after time out (used if time out kicks in first, then API module sends data anyway).\n dataAfterTimeout: source.dataAfterTimeout !== false\n };\n return result;\n}\nconst configStorage = /* @__PURE__ */ Object.create(null);\nconst fallBackAPISources = [\n \"https://api.simplesvg.com\",\n \"https://api.unisvg.com\"\n];\nconst fallBackAPI = [];\nwhile (fallBackAPISources.length > 0) {\n if (fallBackAPISources.length === 1) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n if (Math.random() > 0.5) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n fallBackAPI.push(fallBackAPISources.pop());\n }\n }\n}\nconfigStorage[\"\"] = createAPIConfig({\n resources: [\"https://api.iconify.design\"].concat(fallBackAPI)\n});\nfunction addAPIProvider(provider, customConfig) {\n const config = createAPIConfig(customConfig);\n if (config === null) {\n return false;\n }\n configStorage[provider] = config;\n return true;\n}\nfunction getAPIConfig(provider) {\n return configStorage[provider];\n}\nfunction listAPIProviders() {\n return Object.keys(configStorage);\n}\n\nconst detectFetch = () => {\n let callback;\n try {\n callback = fetch;\n if (typeof callback === \"function\") {\n return callback;\n }\n } catch (err) {\n }\n};\nlet fetchModule = detectFetch();\nfunction setFetch(fetch2) {\n fetchModule = fetch2;\n}\nfunction getFetch() {\n return fetchModule;\n}\nfunction calculateMaxLength(provider, prefix) {\n const config = getAPIConfig(provider);\n if (!config) {\n return 0;\n }\n let result;\n if (!config.maxURL) {\n result = 0;\n } else {\n let maxHostLength = 0;\n config.resources.forEach((item) => {\n const host = item;\n maxHostLength = Math.max(maxHostLength, host.length);\n });\n const url = prefix + \".json?icons=\";\n result = config.maxURL - maxHostLength - config.path.length - url.length;\n }\n return result;\n}\nfunction shouldAbort(status) {\n return status === 404;\n}\nconst prepare = (provider, prefix, icons) => {\n const results = [];\n const maxLength = calculateMaxLength(provider, prefix);\n const type = \"icons\";\n let item = {\n type,\n provider,\n prefix,\n icons: []\n };\n let length = 0;\n icons.forEach((name, index) => {\n length += name.length + 1;\n if (length >= maxLength && index > 0) {\n results.push(item);\n item = {\n type,\n provider,\n prefix,\n icons: []\n };\n length = name.length;\n }\n item.icons.push(name);\n });\n results.push(item);\n return results;\n};\nfunction getPath(provider) {\n if (typeof provider === \"string\") {\n const config = getAPIConfig(provider);\n if (config) {\n return config.path;\n }\n }\n return \"/\";\n}\nconst send = (host, params, callback) => {\n if (!fetchModule) {\n callback(\"abort\", 424);\n return;\n }\n let path = getPath(params.provider);\n switch (params.type) {\n case \"icons\": {\n const prefix = params.prefix;\n const icons = params.icons;\n const iconsList = icons.join(\",\");\n const urlParams = new URLSearchParams({\n icons: iconsList\n });\n path += prefix + \".json?\" + urlParams.toString();\n break;\n }\n case \"custom\": {\n const uri = params.uri;\n path += uri.slice(0, 1) === \"/\" ? uri.slice(1) : uri;\n break;\n }\n default:\n callback(\"abort\", 400);\n return;\n }\n let defaultError = 503;\n fetchModule(host + path).then((response) => {\n const status = response.status;\n if (status !== 200) {\n setTimeout(() => {\n callback(shouldAbort(status) ? \"abort\" : \"next\", status);\n });\n return;\n }\n defaultError = 501;\n return response.json();\n }).then((data) => {\n if (typeof data !== \"object\" || data === null) {\n setTimeout(() => {\n if (data === 404) {\n callback(\"abort\", data);\n } else {\n callback(\"next\", defaultError);\n }\n });\n return;\n }\n setTimeout(() => {\n callback(\"success\", data);\n });\n }).catch(() => {\n callback(\"next\", defaultError);\n });\n};\nconst fetchAPIModule = {\n prepare,\n send\n};\n\nfunction sortIcons(icons) {\n const result = {\n loaded: [],\n missing: [],\n pending: []\n };\n const storage = /* @__PURE__ */ Object.create(null);\n icons.sort((a, b) => {\n if (a.provider !== b.provider) {\n return a.provider.localeCompare(b.provider);\n }\n if (a.prefix !== b.prefix) {\n return a.prefix.localeCompare(b.prefix);\n }\n return a.name.localeCompare(b.name);\n });\n let lastIcon = {\n provider: \"\",\n prefix: \"\",\n name: \"\"\n };\n icons.forEach((icon) => {\n if (lastIcon.name === icon.name && lastIcon.prefix === icon.prefix && lastIcon.provider === icon.provider) {\n return;\n }\n lastIcon = icon;\n const provider = icon.provider;\n const prefix = icon.prefix;\n const name = icon.name;\n const providerStorage = storage[provider] || (storage[provider] = /* @__PURE__ */ Object.create(null));\n const localStorage = providerStorage[prefix] || (providerStorage[prefix] = getStorage(provider, prefix));\n let list;\n if (name in localStorage.icons) {\n list = result.loaded;\n } else if (prefix === \"\" || localStorage.missing.has(name)) {\n list = result.missing;\n } else {\n list = result.pending;\n }\n const item = {\n provider,\n prefix,\n name\n };\n list.push(item);\n });\n return result;\n}\n\nfunction removeCallback(storages, id) {\n storages.forEach((storage) => {\n const items = storage.loaderCallbacks;\n if (items) {\n storage.loaderCallbacks = items.filter((row) => row.id !== id);\n }\n });\n}\nfunction updateCallbacks(storage) {\n if (!storage.pendingCallbacksFlag) {\n storage.pendingCallbacksFlag = true;\n setTimeout(() => {\n storage.pendingCallbacksFlag = false;\n const items = storage.loaderCallbacks ? storage.loaderCallbacks.slice(0) : [];\n if (!items.length) {\n return;\n }\n let hasPending = false;\n const provider = storage.provider;\n const prefix = storage.prefix;\n items.forEach((item) => {\n const icons = item.icons;\n const oldLength = icons.pending.length;\n icons.pending = icons.pending.filter((icon) => {\n if (icon.prefix !== prefix) {\n return true;\n }\n const name = icon.name;\n if (storage.icons[name]) {\n icons.loaded.push({\n provider,\n prefix,\n name\n });\n } else if (storage.missing.has(name)) {\n icons.missing.push({\n provider,\n prefix,\n name\n });\n } else {\n hasPending = true;\n return true;\n }\n return false;\n });\n if (icons.pending.length !== oldLength) {\n if (!hasPending) {\n removeCallback([storage], item.id);\n }\n item.callback(\n icons.loaded.slice(0),\n icons.missing.slice(0),\n icons.pending.slice(0),\n item.abort\n );\n }\n });\n });\n }\n}\nlet idCounter = 0;\nfunction storeCallback(callback, icons, pendingSources) {\n const id = idCounter++;\n const abort = removeCallback.bind(null, pendingSources, id);\n if (!icons.pending.length) {\n return abort;\n }\n const item = {\n id,\n icons,\n callback,\n abort\n };\n pendingSources.forEach((storage) => {\n (storage.loaderCallbacks || (storage.loaderCallbacks = [])).push(item);\n });\n return abort;\n}\n\nfunction listToIcons(list, validate = true, simpleNames = false) {\n const result = [];\n list.forEach((item) => {\n const icon = typeof item === \"string\" ? stringToIcon(item, validate, simpleNames) : item;\n if (icon) {\n result.push(icon);\n }\n });\n return result;\n}\n\n// src/config.ts\nvar defaultConfig = {\n resources: [],\n index: 0,\n timeout: 2e3,\n rotate: 750,\n random: false,\n dataAfterTimeout: false\n};\n\n// src/query.ts\nfunction sendQuery(config, payload, query, done) {\n const resourcesCount = config.resources.length;\n const startIndex = config.random ? Math.floor(Math.random() * resourcesCount) : config.index;\n let resources;\n if (config.random) {\n let list = config.resources.slice(0);\n resources = [];\n while (list.length > 1) {\n const nextIndex = Math.floor(Math.random() * list.length);\n resources.push(list[nextIndex]);\n list = list.slice(0, nextIndex).concat(list.slice(nextIndex + 1));\n }\n resources = resources.concat(list);\n } else {\n resources = config.resources.slice(startIndex).concat(config.resources.slice(0, startIndex));\n }\n const startTime = Date.now();\n let status = \"pending\";\n let queriesSent = 0;\n let lastError;\n let timer = null;\n let queue = [];\n let doneCallbacks = [];\n if (typeof done === \"function\") {\n doneCallbacks.push(done);\n }\n function resetTimer() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function abort() {\n if (status === \"pending\") {\n status = \"aborted\";\n }\n resetTimer();\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function subscribe(callback, overwrite) {\n if (overwrite) {\n doneCallbacks = [];\n }\n if (typeof callback === \"function\") {\n doneCallbacks.push(callback);\n }\n }\n function getQueryStatus() {\n return {\n startTime,\n payload,\n status,\n queriesSent,\n queriesPending: queue.length,\n subscribe,\n abort\n };\n }\n function failQuery() {\n status = \"failed\";\n doneCallbacks.forEach((callback) => {\n callback(void 0, lastError);\n });\n }\n function clearQueue() {\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function moduleResponse(item, response, data) {\n const isError = response !== \"success\";\n queue = queue.filter((queued) => queued !== item);\n switch (status) {\n case \"pending\":\n break;\n case \"failed\":\n if (isError || !config.dataAfterTimeout) {\n return;\n }\n break;\n default:\n return;\n }\n if (response === \"abort\") {\n lastError = data;\n failQuery();\n return;\n }\n if (isError) {\n lastError = data;\n if (!queue.length) {\n if (!resources.length) {\n failQuery();\n } else {\n execNext();\n }\n }\n return;\n }\n resetTimer();\n clearQueue();\n if (!config.random) {\n const index = config.resources.indexOf(item.resource);\n if (index !== -1 && index !== config.index) {\n config.index = index;\n }\n }\n status = \"completed\";\n doneCallbacks.forEach((callback) => {\n callback(data);\n });\n }\n function execNext() {\n if (status !== \"pending\") {\n return;\n }\n resetTimer();\n const resource = resources.shift();\n if (resource === void 0) {\n if (queue.length) {\n timer = setTimeout(() => {\n resetTimer();\n if (status === \"pending\") {\n clearQueue();\n failQuery();\n }\n }, config.timeout);\n return;\n }\n failQuery();\n return;\n }\n const item = {\n status: \"pending\",\n resource,\n callback: (status2, data) => {\n moduleResponse(item, status2, data);\n }\n };\n queue.push(item);\n queriesSent++;\n timer = setTimeout(execNext, config.rotate);\n query(resource, payload, item.callback);\n }\n setTimeout(execNext);\n return getQueryStatus;\n}\n\n// src/index.ts\nfunction initRedundancy(cfg) {\n const config = {\n ...defaultConfig,\n ...cfg\n };\n let queries = [];\n function cleanup() {\n queries = queries.filter((item) => item().status === \"pending\");\n }\n function query(payload, queryCallback, doneCallback) {\n const query2 = sendQuery(\n config,\n payload,\n queryCallback,\n (data, error) => {\n cleanup();\n if (doneCallback) {\n doneCallback(data, error);\n }\n }\n );\n queries.push(query2);\n return query2;\n }\n function find(callback) {\n return queries.find((value) => {\n return callback(value);\n }) || null;\n }\n const instance = {\n query,\n find,\n setIndex: (index) => {\n config.index = index;\n },\n getIndex: () => config.index,\n cleanup\n };\n return instance;\n}\n\nfunction emptyCallback$1() {\n}\nconst redundancyCache = /* @__PURE__ */ Object.create(null);\nfunction getRedundancyCache(provider) {\n if (!redundancyCache[provider]) {\n const config = getAPIConfig(provider);\n if (!config) {\n return;\n }\n const redundancy = initRedundancy(config);\n const cachedReundancy = {\n config,\n redundancy\n };\n redundancyCache[provider] = cachedReundancy;\n }\n return redundancyCache[provider];\n}\nfunction sendAPIQuery(target, query, callback) {\n let redundancy;\n let send;\n if (typeof target === \"string\") {\n const api = getAPIModule(target);\n if (!api) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n send = api.send;\n const cached = getRedundancyCache(target);\n if (cached) {\n redundancy = cached.redundancy;\n }\n } else {\n const config = createAPIConfig(target);\n if (config) {\n redundancy = initRedundancy(config);\n const moduleKey = target.resources ? target.resources[0] : \"\";\n const api = getAPIModule(moduleKey);\n if (api) {\n send = api.send;\n }\n }\n }\n if (!redundancy || !send) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n return redundancy.query(query, send, callback)().abort;\n}\n\nfunction emptyCallback() {\n}\nfunction loadedNewIcons(storage) {\n if (!storage.iconsLoaderFlag) {\n storage.iconsLoaderFlag = true;\n setTimeout(() => {\n storage.iconsLoaderFlag = false;\n updateCallbacks(storage);\n });\n }\n}\nfunction checkIconNamesForAPI(icons) {\n const valid = [];\n const invalid = [];\n icons.forEach((name) => {\n (name.match(matchIconName) ? valid : invalid).push(name);\n });\n return {\n valid,\n invalid\n };\n}\nfunction parseLoaderResponse(storage, icons, data) {\n function checkMissing() {\n const pending = storage.pendingIcons;\n icons.forEach((name) => {\n if (pending) {\n pending.delete(name);\n }\n if (!storage.icons[name]) {\n storage.missing.add(name);\n }\n });\n }\n if (data && typeof data === \"object\") {\n try {\n const parsed = addIconSet(storage, data);\n if (!parsed.length) {\n checkMissing();\n return;\n }\n } catch (err) {\n console.error(err);\n }\n }\n checkMissing();\n loadedNewIcons(storage);\n}\nfunction parsePossiblyAsyncResponse(response, callback) {\n if (response instanceof Promise) {\n response.then((data) => {\n callback(data);\n }).catch(() => {\n callback(null);\n });\n } else {\n callback(response);\n }\n}\nfunction loadNewIcons(storage, icons) {\n if (!storage.iconsToLoad) {\n storage.iconsToLoad = icons;\n } else {\n storage.iconsToLoad = storage.iconsToLoad.concat(icons).sort();\n }\n if (!storage.iconsQueueFlag) {\n storage.iconsQueueFlag = true;\n setTimeout(() => {\n storage.iconsQueueFlag = false;\n const { provider, prefix } = storage;\n const icons2 = storage.iconsToLoad;\n delete storage.iconsToLoad;\n if (!icons2 || !icons2.length) {\n return;\n }\n const customIconLoader = storage.loadIcon;\n if (storage.loadIcons && (icons2.length > 1 || !customIconLoader)) {\n parsePossiblyAsyncResponse(\n storage.loadIcons(icons2, prefix, provider),\n (data) => {\n parseLoaderResponse(storage, icons2, data);\n }\n );\n return;\n }\n if (customIconLoader) {\n icons2.forEach((name) => {\n const response = customIconLoader(name, prefix, provider);\n parsePossiblyAsyncResponse(response, (data) => {\n const iconSet = data ? {\n prefix,\n icons: {\n [name]: data\n }\n } : null;\n parseLoaderResponse(storage, [name], iconSet);\n });\n });\n return;\n }\n const { valid, invalid } = checkIconNamesForAPI(icons2);\n if (invalid.length) {\n parseLoaderResponse(storage, invalid, null);\n }\n if (!valid.length) {\n return;\n }\n const api = prefix.match(matchIconName) ? getAPIModule(provider) : null;\n if (!api) {\n parseLoaderResponse(storage, valid, null);\n return;\n }\n const params = api.prepare(provider, prefix, valid);\n params.forEach((item) => {\n sendAPIQuery(provider, item, (data) => {\n parseLoaderResponse(storage, item.icons, data);\n });\n });\n });\n }\n}\nconst loadIcons = (icons, callback) => {\n const cleanedIcons = listToIcons(icons, true, allowSimpleNames());\n const sortedIcons = sortIcons(cleanedIcons);\n if (!sortedIcons.pending.length) {\n let callCallback = true;\n if (callback) {\n setTimeout(() => {\n if (callCallback) {\n callback(\n sortedIcons.loaded,\n sortedIcons.missing,\n sortedIcons.pending,\n emptyCallback\n );\n }\n });\n }\n return () => {\n callCallback = false;\n };\n }\n const newIcons = /* @__PURE__ */ Object.create(null);\n const sources = [];\n let lastProvider, lastPrefix;\n sortedIcons.pending.forEach((icon) => {\n const { provider, prefix } = icon;\n if (prefix === lastPrefix && provider === lastProvider) {\n return;\n }\n lastProvider = provider;\n lastPrefix = prefix;\n sources.push(getStorage(provider, prefix));\n const providerNewIcons = newIcons[provider] || (newIcons[provider] = /* @__PURE__ */ Object.create(null));\n if (!providerNewIcons[prefix]) {\n providerNewIcons[prefix] = [];\n }\n });\n sortedIcons.pending.forEach((icon) => {\n const { provider, prefix, name } = icon;\n const storage = getStorage(provider, prefix);\n const pendingQueue = storage.pendingIcons || (storage.pendingIcons = /* @__PURE__ */ new Set());\n if (!pendingQueue.has(name)) {\n pendingQueue.add(name);\n newIcons[provider][prefix].push(name);\n }\n });\n sources.forEach((storage) => {\n const list = newIcons[storage.provider][storage.prefix];\n if (list.length) {\n loadNewIcons(storage, list);\n }\n });\n return callback ? storeCallback(callback, sortedIcons, sources) : emptyCallback;\n};\nconst loadIcon = (icon) => {\n return new Promise((fulfill, reject) => {\n const iconObj = typeof icon === \"string\" ? stringToIcon(icon, true) : icon;\n if (!iconObj) {\n reject(icon);\n return;\n }\n loadIcons([iconObj || icon], (loaded) => {\n if (loaded.length && iconObj) {\n const data = getIconData(iconObj);\n if (data) {\n fulfill({\n ...defaultIconProps,\n ...data\n });\n return;\n }\n }\n reject(icon);\n });\n });\n};\n\nfunction setCustomIconsLoader(loader, prefix, provider) {\n getStorage(provider || \"\", prefix).loadIcons = loader;\n}\nfunction setCustomIconLoader(loader, prefix, provider) {\n getStorage(provider || \"\", prefix).loadIcon = loader;\n}\n\nfunction mergeCustomisations(defaults, item) {\n const result = {\n ...defaults\n };\n for (const key in item) {\n const value = item[key];\n const valueType = typeof value;\n if (key in defaultIconSizeCustomisations) {\n if (value === null || value && (valueType === \"string\" || valueType === \"number\")) {\n result[key] = value;\n }\n } else if (valueType === typeof result[key]) {\n result[key] = key === \"rotate\" ? value % 4 : value;\n }\n }\n return result;\n}\n\nconst separator = /[\\s,]+/;\nfunction flipFromString(custom, flip) {\n flip.split(separator).forEach((str) => {\n const value = str.trim();\n switch (value) {\n case \"horizontal\":\n custom.hFlip = true;\n break;\n case \"vertical\":\n custom.vFlip = true;\n break;\n }\n });\n}\n\nfunction rotateFromString(value, defaultValue = 0) {\n const units = value.replace(/^-?[0-9.]*/, \"\");\n function cleanup(value2) {\n while (value2 < 0) {\n value2 += 4;\n }\n return value2 % 4;\n }\n if (units === \"\") {\n const num = parseInt(value);\n return isNaN(num) ? 0 : cleanup(num);\n } else if (units !== value) {\n let split = 0;\n switch (units) {\n case \"%\":\n split = 25;\n break;\n case \"deg\":\n split = 90;\n }\n if (split) {\n let num = parseFloat(value.slice(0, value.length - units.length));\n if (isNaN(num)) {\n return 0;\n }\n num = num / split;\n return num % 1 === 0 ? cleanup(num) : 0;\n }\n }\n return defaultValue;\n}\n\nfunction iconToHTML(body, attributes) {\n let renderAttribsHTML = body.indexOf(\"xlink:\") === -1 ? \"\" : ' xmlns:xlink=\"http://www.w3.org/1999/xlink\"';\n for (const attr in attributes) {\n renderAttribsHTML += \" \" + attr + '=\"' + attributes[attr] + '\"';\n }\n return '<svg xmlns=\"http://www.w3.org/2000/svg\"' + renderAttribsHTML + \">\" + body + \"</svg>\";\n}\n\nfunction encodeSVGforURL(svg) {\n return svg.replace(/\"/g, \"'\").replace(/%/g, \"%25\").replace(/#/g, \"%23\").replace(/</g, \"%3C\").replace(/>/g, \"%3E\").replace(/\\s+/g, \" \");\n}\nfunction svgToData(svg) {\n return \"data:image/svg+xml,\" + encodeSVGforURL(svg);\n}\nfunction svgToURL(svg) {\n return 'url(\"' + svgToData(svg) + '\")';\n}\n\nconst defaultExtendedIconCustomisations = {\n ...defaultIconCustomisations,\n inline: false,\n};\n\n/**\n * Default SVG attributes\n */\nconst svgDefaults = {\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'xmlns:xlink': 'http://www.w3.org/1999/xlink',\n 'aria-hidden': true,\n 'role': 'img',\n};\n/**\n * Style modes\n */\nconst commonProps = {\n display: 'inline-block',\n};\nconst monotoneProps = {\n backgroundColor: 'currentColor',\n};\nconst coloredProps = {\n backgroundColor: 'transparent',\n};\n// Dynamically add common props to variables above\nconst propsToAdd = {\n Image: 'var(--svg)',\n Repeat: 'no-repeat',\n Size: '100% 100%',\n};\nconst propsToAddTo = {\n webkitMask: monotoneProps,\n mask: monotoneProps,\n background: coloredProps,\n};\nfor (const prefix in propsToAddTo) {\n const list = propsToAddTo[prefix];\n for (const prop in propsToAdd) {\n list[prefix + prop] = propsToAdd[prop];\n }\n}\n/**\n * Aliases for customisations.\n * In Vue 'v-' properties are reserved, so v-flip must be renamed\n */\nconst customisationAliases = {};\n['horizontal', 'vertical'].forEach((prefix) => {\n const attr = prefix.slice(0, 1) + 'Flip';\n // vertical-flip\n customisationAliases[prefix + '-flip'] = attr;\n // v-flip\n customisationAliases[prefix.slice(0, 1) + '-flip'] = attr;\n // verticalFlip\n customisationAliases[prefix + 'Flip'] = attr;\n});\n/**\n * Fix size: add 'px' to numbers\n */\nfunction fixSize(value) {\n return value + (value.match(/^[-0-9.]+$/) ? 'px' : '');\n}\n/**\n * Render icon\n */\nconst render = (\n// Icon must be validated before calling this function\nicon, \n// Partial properties\nprops) => {\n // Split properties\n const customisations = mergeCustomisations(defaultExtendedIconCustomisations, props);\n const componentProps = { ...svgDefaults };\n // Check mode\n const mode = props.mode || 'svg';\n // Copy style\n const style = {};\n const propsStyle = props.style;\n const customStyle = typeof propsStyle === 'object' && !(propsStyle instanceof Array)\n ? propsStyle\n : {};\n // Get element properties\n for (let key in props) {\n const value = props[key];\n if (value === void 0) {\n continue;\n }\n switch (key) {\n // Properties to ignore\n case 'icon':\n case 'style':\n case 'onLoad':\n case 'mode':\n case 'ssr':\n break;\n // Boolean attributes\n case 'inline':\n case 'hFlip':\n case 'vFlip':\n customisations[key] =\n value === true || value === 'true' || value === 1;\n break;\n // Flip as string: 'horizontal,vertical'\n case 'flip':\n if (typeof value === 'string') {\n flipFromString(customisations, value);\n }\n break;\n // Color: override style\n case 'color':\n style.color = value;\n break;\n // Rotation as string\n case 'rotate':\n if (typeof value === 'string') {\n customisations[key] = rotateFromString(value);\n }\n else if (typeof value === 'number') {\n customisations[key] = value;\n }\n break;\n // Remove aria-hidden\n case 'ariaHidden':\n case 'aria-hidden':\n // Vue transforms 'aria-hidden' property to 'ariaHidden'\n if (value !== true && value !== 'true') {\n delete componentProps['aria-hidden'];\n }\n break;\n default: {\n const alias = customisationAliases[key];\n if (alias) {\n // Aliases for boolean customisations\n if (value === true || value === 'true' || value === 1) {\n customisations[alias] = true;\n }\n }\n else if (defaultExtendedIconCustomisations[key] === void 0) {\n // Copy missing property if it does not exist in customisations\n componentProps[key] = value;\n }\n }\n }\n }\n // Generate icon\n const item = iconToSVG(icon, customisations);\n const renderAttribs = item.attributes;\n // Inline display\n if (customisations.inline) {\n style.verticalAlign = '-0.125em';\n }\n if (mode === 'svg') {\n // Add style\n componentProps.style = {\n ...style,\n ...customStyle,\n };\n // Add icon stuff\n Object.assign(componentProps, renderAttribs);\n // Counter for ids based on \"id\" property to render icons consistently on server and client\n let localCounter = 0;\n let id = props.id;\n if (typeof id === 'string') {\n // Convert '-' to '_' to avoid errors in animations\n id = id.replace(/-/g, '_');\n }\n // Add innerHTML and style to props\n componentProps['innerHTML'] = replaceIDs(item.body, id ? () => id + 'ID' + localCounter++ : 'iconifyVue');\n // Render icon\n return h('svg', componentProps);\n }\n // Render <span> with style\n const { body, width, height } = icon;\n const useMask = mode === 'mask' ||\n (mode === 'bg' ? false : body.indexOf('currentColor') !== -1);\n // Generate SVG\n const html = iconToHTML(body, {\n ...renderAttribs,\n width: width + '',\n height: height + '',\n });\n // Generate style\n componentProps.style = {\n ...style,\n '--svg': svgToURL(html),\n 'width': fixSize(renderAttribs.width),\n 'height': fixSize(renderAttribs.height),\n ...commonProps,\n ...(useMask ? monotoneProps : coloredProps),\n ...customStyle,\n };\n return h('span', componentProps);\n};\n\n/**\n * Enable cache\n *\n * @deprecated No longer used\n */\nfunction enableCache(storage) {\n //\n}\n/**\n * Disable cache\n *\n * @deprecated No longer used\n */\nfunction disableCache(storage) {\n //\n}\n/**\n * Initialise stuff\n */\n// Enable short names\nallowSimpleNames(true);\n// Set API module\nsetAPIModule('', fetchAPIModule);\n/**\n * Browser stuff\n */\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n const _window = window;\n // Load icons from global \"IconifyPreload\"\n if (_window.IconifyPreload !== void 0) {\n const preload = _window.IconifyPreload;\n const err = 'Invalid IconifyPreload syntax.';\n if (typeof preload === 'object' && preload !== null) {\n (preload instanceof Array ? preload : [preload]).forEach((item) => {\n try {\n if (\n // Check if item is an object and not null/array\n typeof item !== 'object' ||\n item === null ||\n item instanceof Array ||\n // Check for 'icons' and 'prefix'\n typeof item.icons !== 'object' ||\n typeof item.prefix !== 'string' ||\n // Add icon set\n !addCollection(item)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n });\n }\n }\n // Set API from global \"IconifyProviders\"\n if (_window.IconifyProviders !== void 0) {\n const providers = _window.IconifyProviders;\n if (typeof providers === 'object' && providers !== null) {\n for (let key in providers) {\n const err = 'IconifyProviders[' + key + '] is invalid.';\n try {\n const value = providers[key];\n if (typeof value !== 'object' ||\n !value ||\n value.resources === void 0) {\n continue;\n }\n if (!addAPIProvider(key, value)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n }\n }\n }\n}\n/**\n * Empty icon data, rendered when icon is not available\n */\nconst emptyIcon = {\n ...defaultIconProps,\n body: '',\n};\nconst Icon = defineComponent({\n // Do not inherit other attributes: it is handled by render()\n inheritAttrs: false,\n // Set initial data\n data() {\n return {\n // Current icon name\n _name: '',\n // Loading\n _loadingIcon: null,\n // Mounted status\n iconMounted: false,\n // Callback counter to trigger re-render\n counter: 0,\n };\n },\n mounted() {\n // Mark as mounted\n this.iconMounted = true;\n },\n unmounted() {\n this.abortLoading();\n },\n methods: {\n abortLoading() {\n if (this._loadingIcon) {\n this._loadingIcon.abort();\n this._loadingIcon = null;\n }\n },\n // Get data for icon to render or null\n getIcon(icon, onload, customise) {\n // Icon is an object\n if (typeof icon === 'object' &&\n icon !== null &&\n typeof icon.body === 'string') {\n // Stop loading\n this._name = '';\n this.abortLoading();\n return {\n data: icon,\n };\n }\n // Invalid icon?\n let iconName;\n if (typeof icon !== 'string' ||\n (iconName = stringToIcon(icon, false, true)) === null) {\n this.abortLoading();\n return null;\n }\n // Load icon\n let data = getIconData(iconName);\n if (!data) {\n // Icon data is not available\n if (!this._loadingIcon || this._loadingIcon.name !== icon) {\n // New icon to load\n this.abortLoading();\n this._name = '';\n if (data !== null) {\n // Icon was not loaded\n this._loadingIcon = {\n name: icon,\n abort: loadIcons([iconName], () => {\n this.counter++;\n }),\n };\n }\n }\n return null;\n }\n // Icon data is available\n this.abortLoading();\n if (this._name !== icon) {\n this._name = icon;\n if (onload) {\n onload(icon);\n }\n }\n // Customise icon\n if (customise) {\n // Clone data and customise it\n data = Object.assign({}, data);\n const customised = customise(data.body, iconName.name, iconName.prefix, iconName.provider);\n if (typeof customised === 'string') {\n data.body = customised;\n }\n }\n // Add classes\n const classes = ['iconify'];\n if (iconName.prefix !== '') {\n classes.push('iconify--' + iconName.prefix);\n }\n if (iconName.provider !== '') {\n classes.push('iconify--' + iconName.provider);\n }\n return { data, classes };\n },\n },\n // Render icon\n render() {\n // Re-render when counter changes\n this.counter;\n const props = this.$attrs;\n // Get icon data\n const icon = this.iconMounted || props.ssr\n ? this.getIcon(props.icon, props.onLoad, props.customise)\n : null;\n // Validate icon object\n if (!icon) {\n return render(emptyIcon, props);\n }\n // Add classes\n let newProps = props;\n if (icon.classes) {\n newProps = {\n ...props,\n class: (typeof props['class'] === 'string'\n ? props['class'] + ' '\n : '') + icon.classes.join(' '),\n };\n }\n // Render icon\n return render({\n ...defaultIconProps,\n ...icon.data,\n }, newProps);\n },\n});\n/**\n * Internal API\n */\nconst _api = {\n getAPIConfig,\n setAPIModule,\n sendAPIQuery,\n setFetch,\n getFetch,\n listAPIProviders,\n};\n\nexport { Icon, _api, addAPIProvider, addCollection, addIcon, iconToSVG as buildIcon, calculateSize, disableCache, enableCache, getIcon, iconLoaded as iconExists, iconLoaded, listIcons, loadIcon, loadIcons, replaceIDs, setCustomIconLoader, setCustomIconsLoader };\n","<script setup lang=\"ts\">\n// https://icon-sets.iconify.design/\n\n// SUCCESS\n// import IconAccessibility from \"~icons/carbon/accessibility\";\n// <icon-accessibility />\n// import IconAccountBox from \"~icons/mdi/account-box\";\n// <icon-account-box style=\"font-size: 2em; color: red\" />\n\n// import { ChevronUpDownIcon } from \"@heroicons/vue/24/solid\";\n\n// UNSUCCESS : 使用 unplugin-icons 和 unplugin-auto-import 从 iconify 中自动导入任何图标集\n// in Vite\n// pnpm i unplugin-icons --save-dev\n// pnpm i unplugin-vue-component --save-dev\n// pnpm i @iconify/json --save-dev\n// pnpm i @iconify-json/mdi --save-dev\n// <icon-carbon-accessibility />\n// <icon-mdi-account-box style=\"font-size: 2em; color: red\" />\n\nimport { Icon } from \"@iconify/vue\";\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n defineProps<{\n icon?: string;\n color?: string;\n }>(),\n { icon: \"mdi-light:home\", color: getCSSVar(\"--xg-blue\") }\n);\n</script>\n\n<template>\n <span\n class=\"icon\"\n :style=\"[\n 'color: ' + color,\n 'display: inline-flex',\n 'justify-content: center',\n 'align-items: center',\n 'cursor: pointer',\n 'font-size: 1em'\n ]\"\n >\n <Icon\n :icon=\"props.icon\"\n :color=\"color\"\n />\n </span>\n</template>\n\n<style scoped></style>\n","<script setup lang=\"tsx\">\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n defineProps<{\n color?: string;\n width?: string;\n }>(),\n {\n color: getCSSVar(\"--xg-blue\"),\n width: \"0.8em\"\n }\n);\n</script>\n\n<template>\n <div\n class=\"loading-11\"\n ref=\"loading11\"\n >\n <div\n class=\"loading-11-inner\"\n :style=\"{ width: props.width, height: props.width }\"\n >\n <div class=\"container container-1\">\n <div\n class=\"dot dot-1\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n <div\n class=\"dot dot-2\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n <div\n class=\"dot dot-3\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n <div\n class=\"dot dot-4\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n </div>\n <div class=\"container container-2\">\n <div\n class=\"dot dot-1\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n <div\n class=\"dot dot-2\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n <div\n class=\"dot dot-3\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n <div\n class=\"dot dot-4\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n </div>\n <div class=\"container container-3\">\n <div\n class=\"dot dot-1\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n <div\n class=\"dot dot-2\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n <div\n class=\"dot dot-3\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n <div\n class=\"dot dot-4\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n </div>\n </div>\n </div>\n</template>\n\n<style scoped>\n.loading-11 {\n position: relative;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n}\n.loading-11-inner {\n position: relative;\n}\n.loading-11-inner .container {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n.loading-11-inner .container .dot {\n width: 20%;\n height: 20%;\n border-radius: 100%;\n position: absolute;\n animation: bouncedelay 1.2s infinite ease-in-out;\n animation-fill-mode: both;\n}\n.loading-11-inner .container .dot-1 {\n top: 0;\n left: 0;\n}\n.loading-11-inner .container .dot-2 {\n top: 0;\n right: 0;\n}\n.loading-11-inner .container .dot-3 {\n right: 0;\n bottom: 0;\n}\n.loading-11-inner .container .dot-4 {\n left: 0;\n bottom: 0;\n}\n.loading-11-inner .container-1 .dot-2 {\n animation-delay: -0.9s;\n}\n.loading-11-inner .container-1 .dot-3 {\n animation-delay: -0.6s;\n}\n.loading-11-inner .container-1 .dot-4 {\n animation-delay: -0.3s;\n}\n.loading-11-inner .container-2 {\n transform: rotateZ(45deg);\n}\n.loading-11-inner .container-2 .dot-1 {\n animation-delay: -1.1s;\n}\n.loading-11-inner .container-2 .dot-2 {\n animation-delay: -0.8s;\n}\n.loading-11-inner .container-2 .dot-3 {\n animation-delay: -0.5s;\n}\n.loading-11-inner .container-2 .dot-4 {\n animation-delay: -0.2s;\n}\n.loading-11-inner .container-3 {\n transform: rotateZ(90deg);\n}\n.loading-11-inner .container-3 .dot-1 {\n animation-delay: -1s;\n}\n.loading-11-inner .container-3 .dot-2 {\n animation-delay: -0.7s;\n}\n.loading-11-inner .container-3 .dot-3 {\n animation-delay: -0.4s;\n}\n.loading-11-inner .container-3 .dot-4 {\n animation-delay: -0.1s;\n}\n@keyframes bouncedelay {\n 0%,\n 80%,\n 100% {\n transform: scale(0.3);\n }\n 40% {\n transform: scale(1);\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, watch } from \"vue\";\nimport Icon from \"./Icon.vue\";\nimport { throttle } from \"@zyzgroup/core-common\";\nimport { __color, getCSSVar } from \"@zyzgroup/core-web\";\nimport Loading11 from \"./loading/Loading11.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: { Loading11 },\n inheritAttrs: true\n});\n\nexport type ButtonStylePatternType = \"fullfill\" | \"outline\" | \"transparent\";\n\nconst props = withDefaults(\n defineProps<{\n label?: string;\n icon?: string;\n iconPosition?: \"left\" | \"right\";\n disabled?: boolean;\n width?: string;\n height?: string;\n padding?: string;\n fontSize?: string;\n fontWeight?: string;\n borderRadius?: string; // border-radius:x/y\n stylePattern?: ButtonStylePatternType;\n fontColor?: string;\n borderColor?: string;\n bgColor?: string;\n bgColorStart?: string; // 渐变背景色-开始\n bgColorEnd?: string; // 渐变背景色-结束\n asyncClick?: () => Promise<void>;\n }>(),\n {\n iconPosition: \"left\",\n disabled: false,\n width: \"auto\",\n height: \"44px\",\n padding: \"20px\",\n fontSize: \"16px\",\n fontWeight: \"normal\", // normal bold\n borderRadius: \"4px\",\n stylePattern: \"fullfill\"\n }\n);\n\nconst emits = defineEmits<{\n // for ce element\n (event: \"yz-click\"): void;\n (event: \"click\"): void;\n}>();\n\nconst el = ref<HTMLElement>();\n\nconst xgBlue = getCSSVar(\"--xg-blue\", \"#5a82f0\");\n\nconst fontColor = ref(props.fontColor);\nconst borderColor = ref(props.borderColor);\nconst bgColor = ref(props.bgColor);\n\nconst baseFontColor = ref(fontColor.value);\nconst baseBorderColor = ref(borderColor.value);\nconst baseBgColor = ref(bgColor.value);\nconst baseBgColorStart = ref(props.bgColorStart || \"\");\nconst baseBgColorEnd = ref(props.bgColorEnd || \"\");\n\nconst isBgColorGradient = props.bgColorStart && props.bgColorEnd;\n\nfunction setStylePattern(stylePattern: ButtonStylePatternType) {\n switch (stylePattern) {\n case \"transparent\":\n borderColor.value = props.borderColor || \"rgba(255,255,255,0)\";\n bgColor.value = props.bgColor || \"rgba(255,255,255,0)\";\n fontColor.value = props.fontColor || xgBlue;\n break;\n case \"outline\":\n borderColor.value = props.borderColor || xgBlue;\n bgColor.value = props.bgColor || \"rgba(255,255,255,0)\";\n fontColor.value = props.fontColor || xgBlue;\n break;\n case \"fullfill\":\n default:\n borderColor.value = props.borderColor || \"rgba(255,255,255,0)\";\n bgColor.value = props.bgColor || xgBlue;\n fontColor.value =\n props.fontColor || __color.set(bgColor.value).opposite(true).toString();\n break;\n }\n baseFontColor.value = fontColor.value;\n baseBorderColor.value = borderColor.value;\n baseBgColor.value = bgColor.value;\n // 背景色-渐变\n if (isBgColorGradient) {\n baseBgColorStart.value = props.bgColorStart;\n baseBgColorEnd.value = props.bgColorEnd;\n bgColor.value = `linear-gradient(180deg, ${baseBgColorStart.value} 0%, ${baseBgColorEnd.value} 100%)`;\n }\n}\n\nwatch(\n () => props.stylePattern,\n () => {\n setStylePattern(props.stylePattern);\n },\n { immediate: true }\n);\n\nconst opacity = ref(props.disabled ? \"0.6\" : \"1\");\nconst cursor = ref(props.disabled ? \"not-allowed\" : \"pointer\");\n\nlet isMouseOver = false;\nconst darkenOver = 0.03;\nconst darkenClick = 0.06;\n\nconst mouseover = () => {\n if (props.disabled) return;\n isMouseOver = true;\n if (props.stylePattern == \"transparent\") {\n fontColor.value = __color\n .set(baseFontColor.value)\n .darken(darkenOver)\n .toString();\n }\n borderColor.value = __color\n .set(baseBorderColor.value)\n .darken(darkenOver)\n .toString();\n // 背景色-渐变\n if (isBgColorGradient) {\n bgColor.value = `linear-gradient(180deg, ${baseBgColorEnd.value} 0%, ${baseBgColorStart.value} 100%)`;\n } else {\n bgColor.value = __color\n .set(baseBgColor.value)\n .darken(darkenOver)\n .toString();\n }\n};\n\nconst mouseleave = () => {\n if (props.disabled) return;\n isMouseOver = false;\n fontColor.value = baseFontColor.value;\n borderColor.value = baseBorderColor.value;\n // 背景色-渐变\n if (isBgColorGradient) {\n bgColor.value = `linear-gradient(180deg, ${baseBgColorStart.value} 0%, ${baseBgColorEnd.value} 100%)`;\n } else {\n bgColor.value = baseBgColor.value;\n }\n};\n\nconst asyncClickPending = ref(false);\n\nconst click = () => {\n if (props.disabled || asyncClickPending.value) {\n return;\n }\n if (props.stylePattern == \"transparent\") {\n fontColor.value = __color\n .set(baseFontColor.value)\n .darken(darkenClick)\n .toString();\n }\n borderColor.value = __color\n .set(baseBorderColor.value)\n .darken(darkenClick)\n .toString();\n // 背景色-渐变\n if (isBgColorGradient) {\n bgColor.value = `linear-gradient(180deg, ${baseBgColorStart.value} 0%, ${baseBgColorEnd.value} 100%)`;\n } else {\n bgColor.value = __color\n .set(baseBgColor.value)\n .darken(darkenClick)\n .toString();\n }\n setTimeout(() => {\n if (isMouseOver) {\n mouseover();\n } else {\n mouseleave();\n }\n }, 150);\n emits(\"yz-click\");\n emits(\"click\");\n if (props.asyncClick) {\n asyncClickPending.value = true;\n props\n .asyncClick()\n .then(() => {\n asyncClickPending.value = false;\n })\n .catch(() => {\n asyncClickPending.value = false;\n });\n }\n};\n\nconst throttleClick = throttle(click, 300);\n\ndefineExpose({\n // 父组件ref子Button组件时:xxx.value.el.getBoundingClientRect()\n el\n});\n</script>\n\n<template>\n <div\n ref=\"el\"\n class=\"button\"\n :style=\"[\n `opacity: ${opacity}`,\n `border: 1px solid ${borderColor}`,\n `background: ${bgColor}`,\n `color: ${fontColor}`,\n `border-radius: ${props.borderRadius}`,\n `width: ${props.width}`,\n `height: ${props.height}`,\n `line-height: ${props.height}`,\n `font-size: ${props.fontSize}`,\n `cursor: ${cursor}`,\n `user-select: none`,\n `box-sizing: border-box`,\n `display: inline-flex`,\n `justify-content: center`,\n `align-items: center`,\n `z-index: 0`\n ]\"\n @mouseover=\"mouseover\"\n @mouseleave=\"mouseleave\"\n @click=\"throttleClick\"\n >\n <label\n class=\"label truncate\"\n :style=\"{\n padding: '0 ' + padding,\n cursor: cursor,\n display: 'inline-flex',\n justifyContent: 'center',\n alignItems: 'center',\n fontWeight: props.fontWeight || 'normal'\n }\"\n >\n <div\n v-if=\"asyncClickPending\"\n class=\"loading\"\n style=\"margin-right: 6px\"\n >\n <Loading11 :color=\"fontColor\"></Loading11>\n </div>\n <slot>\n <Icon\n v-if=\"icon && iconPosition === 'left'\"\n :icon=\"icon\"\n :color=\"fontColor\"\n :style=\"{\n marginRight: '4px',\n cursor: cursor\n }\"\n ></Icon>\n <span\n :style=\"{\n cursor: cursor\n }\"\n >\n {{ label }}\n </span>\n <Icon\n v-if=\"icon && iconPosition === 'right'\"\n :icon=\"icon\"\n :color=\"fontColor\"\n :style=\"{\n marginLeft: '4px',\n cursor: cursor\n }\"\n ></Icon>\n </slot>\n </label>\n </div>\n</template>\n","<script setup lang=\"tsx\">\nimport { ref, onMounted, onUnmounted } from \"vue\";\nimport { useSafeArea$ } from \"@zyzgroup/core-web\";\nimport { useRouter } from \"../../hooks\";\nimport Button from \"../Button.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: { Button },\n inheritAttrs: true\n});\n\nconst router = useRouter();\nfunction gotoPay() {\n router.push(\"/park\");\n}\n\nconst safeAreaBottom = ref(\"0px\");\nlet subcription;\nonMounted(() => {\n subcription = useSafeArea$().subscribe((s) => {\n safeAreaBottom.value = s.bottom;\n console.log(s);\n });\n});\nonUnmounted(() => {\n subcription?.unsubscribe();\n});\n</script>\n\n<template>\n <div\n class=\"xg-footer\"\n :style=\"{ paddingBottom: safeAreaBottom }\"\n >\n <div class=\"xg-footer-inner\">\n <Button\n label=\"去支付\"\n width=\"100%\"\n @click=\"gotoPay\"\n ></Button>\n </div>\n </div>\n</template>\n\n<style scoped>\n.xg-footer {\n box-sizing: border-box;\n background-color: #ffffff;\n border-top: 1px solid #cccccc;\n}\n.xg-footer-inner {\n box-sizing: border-box;\n width: 100%;\n padding: 0.2rem 0.3rem;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onMounted, ref } from \"vue\";\nimport { getEmSize } from \"@zyzgroup/core-web\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: {},\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n plate: string; // 无牌车\n plateType?:\n | \"蓝牌\"\n | \"b\"\n | \"绿牌\"\n | \"g\"\n | \"黄牌\"\n | \"y\"\n | \"黄绿\"\n | \"q\"\n | \"黑牌\"\n | \"d\"\n | \"白牌\"\n | \"w\"\n | \"未知\";\n displayType?: \"dot\" | \"chinese\" | \"plaintext\";\n // fontSize : 1em\n }>(),\n { displayType: \"chinese\" }\n);\n\nconst emits = defineEmits<{\n // (event: \"void\"): void;\n}>();\n\nconst PLATE_TYPES: { name: string; style: Record<string, string> }[] = [\n {\n name: \"蓝牌\",\n style: {\n \"background-color\": \"#0078f0\",\n color: \"#ffffff\"\n }\n },\n {\n name: \"绿牌\",\n style: {\n \"background-color\": \"#00f08c\",\n color: \"#000000\"\n }\n },\n {\n name: \"黄牌\",\n style: {\n \"background-color\": \"#fac800\",\n color: \"#000000\"\n }\n },\n {\n name: \"黄绿\",\n style: {\n background: \"linear-gradient(90deg, #fac800 51.5%, #00f08c 51.51%)\",\n color: \"#000000\"\n }\n },\n {\n name: \"黑牌\",\n style: {\n \"background-color\": \"#222222\",\n color: \"#ffffff\"\n }\n },\n {\n name: \"白牌\",\n style: {\n \"background-color\": \"#ffffff\",\n color: \"#000000\",\n border: \"1px solid #999999\"\n }\n },\n {\n name: \"未知\",\n style: {\n \"background-color\": \"#cccccc\",\n color: \"#ffffff\"\n }\n }\n];\n\nfunction getPlateType(name: string): {\n name: string;\n style: Record<string, string>;\n} {\n switch (name) {\n case \"b\":\n case \"蓝牌\":\n name = \"蓝牌\";\n break;\n case \"g\":\n case \"绿牌\":\n name = \"绿牌\";\n break;\n case \"y\":\n case \"黄牌\":\n name = \"黄牌\";\n break;\n case \"q\":\n case \"黄绿\":\n name = \"黄绿\";\n break;\n case \"d\":\n case \"黑牌\":\n name = \"黑牌\";\n break;\n case \"w\":\n case \"白牌\":\n name = \"白牌\";\n break;\n default:\n name = \"未知\";\n break;\n }\n const result = PLATE_TYPES.filter((item) => item.name === name);\n return result.length ? result[0] : getPlateType(\"未知\");\n}\n\nconst plateType = ref(getPlateType(props.plateType || \"\"));\n\nconst el = ref();\nconst dotSize = ref(14);\nonMounted(() => {\n dotSize.value = getEmSize(el.value);\n});\n\ndefineExpose({});\n</script>\n\n<template>\n <div\n class=\"plate-display\"\n ref=\"el\"\n >\n <div\n v-if=\"displayType == 'dot' && plate !== '无牌车'\"\n class=\"leading\"\n :class=\"displayType\"\n :style=\"{\n ...plateType.style,\n width: dotSize + 'px',\n height: dotSize + 'px',\n marginRight: 0.36 * dotSize + 'px'\n }\"\n >\n {{ plateType.name }}\n </div>\n <div\n v-if=\"displayType == 'chinese' && plate !== '无牌车'\"\n class=\"leading\"\n :class=\"displayType\"\n :style=\"plateType.style\"\n >\n {{ plateType.name }}\n </div>\n <div\n v-if=\"displayType == 'plaintext' && plate !== '无牌车'\"\n class=\"leading\"\n :class=\"displayType\"\n >\n {{ plateType.name }}\n </div>\n <div class=\"text\">\n {{ plate }}\n </div>\n </div>\n</template>\n\n<style scoped>\n.plate-display {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n}\n.leading {\n box-sizing: border-box;\n font-size: 0.86em;\n line-height: 1;\n border-radius: 0.3em;\n margin-right: 0.36em;\n}\n.leading.chinese {\n padding: 0.3em;\n}\n.leading.dot {\n font-size: 0;\n border-radius: 50%;\n}\n.leading.plaintext {\n padding-right: 0.36em;\n border-right: 1px solid #e6e6e6;\n border-radius: 0;\n}\n.text {\n line-height: 1;\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { onMounted, onUnmounted, ref, watchEffect } from \"vue\";\nimport {\n ElementEventBusController,\n getInnerText,\n useClipboard,\n useElementEventBus\n} from \"@zyzgroup/core-web\";\n\nexport type ContainerType = \"block\" | \"shrink\" | \"full\";\n\n/// 效果触发时机\nexport type EffectTriggerTiming =\n | \"manual\"\n | \"mouseMove\"\n | \"click\"\n | \"immediate\";\n\n/// 效果状态\nexport type EffectStatus = \"start\" | \"end\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: {},\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n type?: ContainerType;\n /// 效果触发时机\n effectTriggerTiming?: EffectTriggerTiming;\n /// 是否支持复制文字\n supportCopyText?: boolean;\n }>(),\n {\n type: \"block\",\n effectTriggerTiming: \"manual\",\n supportCopyText: false\n }\n);\n\nconst emits = defineEmits<{\n (event: \"ready\", controller: ElementEventBusController): void;\n (event: \"update\", controller: ElementEventBusController): void;\n (event: \"clipboard_success\", text: string): void;\n (event: \"clipboard_error\", text: string): void;\n /// 效果\n (event: \"start\"): void;\n (event: \"end\"): void;\n}>();\n\nlet effectStatus: EffectStatus = \"start\";\nconst start = () => {\n effectStatus = \"start\";\n emits(\"start\");\n};\nconst end = () => {\n effectStatus = \"end\";\n emits(\"end\");\n};\nconst next = () => {\n effectStatus == \"start\" ? end() : start();\n};\n\nconst r = ref();\n\nlet controller: ElementEventBusController;\n\nlet getControllerResolve: (\n value: ElementEventBusController | PromiseLike<ElementEventBusController>\n) => void;\n\nlet isEmitReady = false;\n\nwatchEffect(() => {\n if (!r.value) {\n // not mounted yet, or the element was unmounted (e.g. by v-if)\n return;\n }\n if (controller) {\n return;\n }\n\n controller = useElementEventBus(r.value);\n\n controller.eb.on(\"resize\", () => {\n if (isEmitReady) {\n emits(\"update\", controller);\n }\n });\n\n controller.eb.on(\"mouseEnter\", () => {\n if (props.effectTriggerTiming == \"mouseMove\") {\n next();\n }\n });\n\n controller.eb.on(\"mouseLeave\", () => {\n if (props.effectTriggerTiming == \"mouseMove\") {\n next();\n }\n });\n\n controller.eb.on(\"tap\", () => {\n if (props.effectTriggerTiming == \"click\") {\n next();\n }\n if (props.supportCopyText) {\n const text = getInnerText(r.value);\n useClipboard(text)\n .then(() => {\n emits(\"clipboard_success\", text);\n })\n .catch((err) => {\n emits(\"clipboard_error\", err.toString());\n });\n }\n });\n\n if (props.effectTriggerTiming !== \"manual\") {\n start();\n }\n\n if (props.effectTriggerTiming == \"immediate\") {\n next();\n }\n\n controller.start().then(() => {\n getControllerResolve?.(controller);\n emits(\"ready\", controller);\n isEmitReady = true;\n });\n});\n\nonMounted(() => {});\n\nonUnmounted(() => {\n controller?.end();\n});\n\n// 不推荐使用,只推荐使用 @ready + @update\ndefineExpose({\n getController: () =>\n new Promise<ElementEventBusController>((resolve) => {\n if (controller) {\n return resolve(controller);\n }\n getControllerResolve = resolve;\n }),\n getElement: () => r.value,\n getRect: () => r.value.getBoundingClientRect()\n});\n</script>\n\n<template>\n <div\n ref=\"r\"\n class=\"container\"\n :style=\"{\n position: 'relative',\n boxSizing: 'border-box',\n display: props.type == 'shrink' ? 'inline-block' : 'block',\n width: props.type == 'full' ? '100%' : 'auto',\n height: props.type == 'full' ? '100%' : 'auto'\n /* overflow: 'hidden', */\n /* pointer-events: none; */\n }\"\n v-bind=\"$attrs\"\n >\n <slot></slot>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, reactive, watch } from \"vue\";\nimport Container, {\n ContainerType,\n EffectTriggerTiming\n} from \"../Container.vue\";\nimport {\n ElementEventBusController,\n SupportedEaseNameToCubicBezier\n} from \"@zyzgroup/core-web\";\n\nexport type SupportedCSSAnimation =\n | \"jelly\"\n | \"bounce\"\n | \"flash\"\n | \"pulse\"\n | \"rubberBand\"\n | \"shakeX\"\n | \"shakeY\"\n | \"headShake\"\n | \"swing\"\n | \"tada\"\n | \"wobble\"\n | \"jello\"\n | \"heartBeat\"\n | \"backInLeft\"\n | \"backInRight\"\n | \"backInUp\"\n | \"backInDown\"\n | \"backOutLeft\"\n | \"backOutRight\"\n | \"backOutUp\"\n | \"backOutDown\"\n | \"bounceIn\"\n | \"bounceInLeft\"\n | \"bounceInRight\"\n | \"bounceInUp\"\n | \"bounceInDown\"\n | \"bounceOut\"\n | \"bounceOutLeft\"\n | \"bounceOutRight\"\n | \"bounceOutUp\"\n | \"bounceOutDown\"\n | \"fadeIn\"\n | \"fadeInLeft\"\n | \"fadeInLeftBig\"\n | \"fadeInRight\"\n | \"fadeInRightBig\"\n | \"fadeInUp\"\n | \"fadeInUpBig\"\n | \"fadeInDown\"\n | \"fadeInDownBig\"\n | \"fadeInTopLeft\"\n | \"fadeInTopRight\"\n | \"fadeInBottomLeft\"\n | \"fadeInBottomRight\"\n | \"fadeOut\"\n | \"fadeOutLeft\"\n | \"fadeOutLeftBig\"\n | \"fadeOutRight\"\n | \"fadeOutRightBig\"\n | \"fadeOutUp\"\n | \"fadeOutUpBig\"\n | \"fadeOutDown\"\n | \"fadeOutDownBig\"\n | \"fadeOutTopLeft\"\n | \"fadeOutTopRight\"\n | \"fadeOutBottomRight\"\n | \"fadeOutBottomLeft\"\n | \"flip\"\n | \"flipInX\"\n | \"flipInY\"\n | \"flipOutX\"\n | \"flipOutY\"\n | \"flipOutRight\"\n | \"flipInLeft\"\n | \"flipOutLeft\"\n | \"flipInRight\"\n | \"flipOutTop\"\n | \"flipInBottom\"\n | \"flipOutBottom\"\n | \"flipInTop\"\n | \"lightSpeedInLeft\"\n | \"lightSpeedInRight\"\n | \"lightSpeedOutLeft\"\n | \"lightSpeedOutRight\"\n | \"rotateIn\"\n | \"rotateInUpLeft\"\n | \"rotateInUpRight\"\n | \"rotateInDownLeft\"\n | \"rotateInDownRight\"\n | \"rotateOut\"\n | \"rotateOutUpLeft\"\n | \"rotateOutUpRight\"\n | \"rotateOutDownLeft\"\n | \"rotateOutDownRight\"\n | \"hinge\"\n | \"rotateFall\"\n | \"rotateOutNewspaper\"\n | \"rotateInNewspaper\"\n | \"jackInTheBox\"\n | \"rollIn\"\n | \"rollOut\"\n | \"zoomIn\"\n | \"zoomInLeft\"\n | \"zoomInRight\"\n | \"zoomInUp\"\n | \"zoomInDown\"\n | \"zoomOut\"\n | \"zoomOutLeft\"\n | \"zoomOutRight\"\n | \"zoomOutUp\"\n | \"zoomOutDown\"\n | \"fade\"\n | \"moveFromLeft\"\n | \"moveToLeft\"\n | \"moveFromRight\"\n | \"moveToRight\"\n | \"moveFromTop\"\n | \"moveToTop\"\n | \"moveFromBottom\"\n | \"moveToBottom\"\n | \"moveFromLeftFade\"\n | \"moveToLeftFade\"\n | \"moveFromRightFade\"\n | \"moveToRightFade\"\n | \"moveFromTopFade\"\n | \"moveToTopFade\"\n | \"moveFromBottomFade\"\n | \"moveToBottomFade\"\n | \"scaleFromSmall\"\n | \"scaleToSmall\"\n | \"scaleFromLarge\"\n | \"scaleToLarge\"\n | \"scaleFromSmallCenter\"\n | \"scaleToSmallCenter\"\n | \"slideInLeft\"\n | \"slideInRight\"\n | \"slideInUp\"\n | \"slideInDown\"\n | \"slideOutLeft\"\n | \"slideOutRight\"\n | \"slideOutUp\"\n | \"slideOutDown\"\n | \"rotateRightSideFirst\"\n | \"rotateLeftSideFirst\"\n | \"rotateTopSideFirst\"\n | \"rotateBottomSideFirst\"\n | \"rotatePushLeft\"\n | \"rotatePushRight\"\n | \"rotatePushTop\"\n | \"rotatePushBottom\"\n | \"rotatePullRight\"\n | \"rotatePullLeft\"\n | \"rotatePullTop\"\n | \"rotatePullBottom\"\n | \"rotateFoldRight\"\n | \"rotateFoldLeft\"\n | \"rotateFoldTop\"\n | \"rotateFoldBottom\"\n | \"rotateUnfoldLeft\"\n | \"rotateUnfoldRight\"\n | \"rotateUnfoldTop\"\n | \"rotateUnfoldBottom\"\n | \"rotateRoomLeftOut\"\n | \"rotateRoomLeftIn\"\n | \"rotateRoomRightOut\"\n | \"rotateRoomRightIn\"\n | \"rotateRoomTopOut\"\n | \"rotateRoomTopIn\"\n | \"rotateRoomBottomOut\"\n | \"rotateRoomBottomIn\"\n | \"rotateCubeLeftOut\"\n | \"rotateCubeLeftIn\"\n | \"rotateCubeRightOut\"\n | \"rotateCubeRightIn\"\n | \"rotateCubeTopOut\"\n | \"rotateCubeTopIn\"\n | \"rotateCubeBottomOut\"\n | \"rotateCubeBottomIn\"\n | \"rotateCarouselLeftOut\"\n | \"rotateCarouselLeftIn\"\n | \"rotateCarouselRightOut\"\n | \"rotateCarouselRightIn\"\n | \"rotateCarouselTopOut\"\n | \"rotateCarouselTopIn\"\n | \"rotateCarouselBottomOut\"\n | \"rotateCarouselBottomIn\"\n | \"rotateSidesOut\"\n | \"rotateSidesIn\"\n | \"rotateSlideOut\"\n | \"rotateSlideIn\"\n | \"superRainbow\"\n | \"statusProcessing\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: { Container },\n inheritAttrs: true\n});\n\n// timingFunction :\n// linear\n// ease\n// ease-in\n// ease-out\n// ease-in-out\n// step-start=steps(1, start) 动画执行时以开始端点为开始\n// step-end=steps(1, end) 动画执行时以结尾端点为开始、\n// cubic-bezier()\n// steps()\n\n// animation: moveObject 2s ease-in-out, fadeBox 3s linear;\n// animation-name: moveObject, fadeBox;\n// animation-duation: 2s, 3s;\n// animation-timing-function: ease-in-out, linear;\n\n// .exmaple {\n// animation-play-state: paused;\n// }\n// .exmaple:hover {\n// animation-play-state: running;\n// }\n\nconst props = withDefaults(\n defineProps<{\n containerType?: ContainerType;\n supportCopyText?: boolean;\n effectTriggerTiming?: EffectTriggerTiming;\n name?: SupportedCSSAnimation;\n timingFunction?: SupportedEaseNameToCubicBezier;\n duration?: number;\n delay?: number;\n repeat?: number | \"infinite\";\n direction?: \"normal\" | \"reverse\" | \"alternate\" | \"alternate-reverse\";\n fillMode?: \"none\" | \"forwards\" | \"backwards\" | \"both\";\n playState?: \"running\" | \"paused\";\n perspective?: string;\n }>(),\n {\n containerType: \"shrink\",\n supportCopyText: false,\n effectTriggerTiming: \"mouseMove\",\n name: \"jelly\",\n fillMode: \"both\",\n playState: \"running\",\n perspective: \"1200px\"\n }\n);\n\nconst emits = defineEmits<{\n (event: \"cssanimationstart\", name: string): void;\n (event: \"cssanimationend\", name: string): void;\n}>();\n\nconst parentStyle = reactive<Record<string, string>>({});\nconst style = reactive<Record<string, string>>({});\n\nlet animationName = props.name;\nlet duration = props.duration;\nlet timingFunction = props.timingFunction;\nlet delay = props.delay;\nlet repeat = props.repeat;\nlet direction = props.direction;\n\nfunction changeEffect(newAnimationName: SupportedCSSAnimation) {\n animationName = newAnimationName;\n /// duration\n switch (animationName) {\n case \"superRainbow\":\n duration = props.duration || 15000;\n break;\n case \"heartBeat\":\n duration = props.duration || 1300;\n break;\n case \"statusProcessing\":\n duration = props.duration || 1200;\n break;\n case \"rotateFall\":\n case \"rotateSlideOut\":\n case \"rotateSlideIn\":\n duration = props.duration || 1000;\n break;\n case \"rotateRightSideFirst\":\n case \"rotateLeftSideFirst\":\n case \"rotateTopSideFirst\":\n case \"rotateBottomSideFirst\":\n case \"rotatePushLeft\":\n case \"rotatePushRight\":\n case \"rotatePushTop\":\n case \"rotatePushBottom\":\n case \"rotateRoomLeftOut\":\n case \"rotateRoomLeftIn\":\n case \"rotateRoomRightOut\":\n case \"rotateRoomRightIn\":\n case \"rotateRoomTopOut\":\n case \"rotateRoomTopIn\":\n case \"rotateRoomBottomOut\":\n case \"rotateRoomBottomIn\":\n case \"rotateCarouselLeftOut\":\n case \"rotateCarouselLeftIn\":\n case \"rotateCarouselRightOut\":\n case \"rotateCarouselRightIn\":\n case \"rotateCarouselTopOut\":\n case \"rotateCarouselTopIn\":\n case \"rotateCarouselBottomOut\":\n case \"rotateCarouselBottomIn\":\n duration = props.duration || 800;\n break;\n case \"bounceIn\":\n case \"bounceOut\":\n case \"flipOutX\":\n case \"hinge\":\n duration = props.duration || 750;\n break;\n case \"rotateFoldRight\":\n case \"rotateFoldLeft\":\n case \"rotateFoldTop\":\n case \"rotateFoldBottom\":\n case \"rotateUnfoldLeft\":\n case \"rotateUnfoldRight\":\n case \"rotateUnfoldTop\":\n case \"rotateUnfoldBottom\":\n case \"fade\":\n case \"moveFromLeftFade\":\n case \"moveToLeftFade\":\n case \"moveFromRightFade\":\n case \"moveToRightFade\":\n case \"moveFromTopFade\":\n case \"moveToTopFade\":\n case \"moveFromBottomFade\":\n case \"moveToBottomFade\":\n duration = props.duration || 700;\n break;\n case \"moveFromLeft\":\n case \"moveToLeft\":\n case \"moveFromRight\":\n case \"moveToRight\":\n case \"moveFromTop\":\n case \"moveToTop\":\n case \"moveFromBottom\":\n case \"moveToBottom\":\n case \"rotateCubeLeftOut\":\n case \"rotateCubeLeftIn\":\n case \"rotateCubeRightOut\":\n case \"rotateCubeRightIn\":\n case \"rotateCubeTopOut\":\n case \"rotateCubeTopIn\":\n case \"rotateCubeBottomOut\":\n case \"rotateCubeBottomIn\":\n duration = props.duration || 600;\n break;\n default:\n duration = props.duration || 500;\n break;\n }\n\n /// css ease timingFunction\n switch (animationName) {\n case \"superRainbow\":\n timingFunction = props.timingFunction || \"linear\";\n break;\n case \"lightSpeedOutLeft\":\n case \"lightSpeedOutRight\":\n case \"rotateRightSideFirst\":\n case \"rotateLeftSideFirst\":\n case \"rotateTopSideFirst\":\n case \"rotateBottomSideFirst\":\n case \"flipOutRight\":\n case \"flipOutLeft\":\n case \"flipOutTop\":\n case \"flipOutBottom\":\n case \"rotateFall\":\n case \"rotateOutNewspaper\":\n case \"rotateCubeLeftOut\":\n case \"rotateCubeLeftIn\":\n case \"rotateCubeRightOut\":\n case \"rotateCubeRightIn\":\n case \"rotateCubeTopOut\":\n case \"rotateCubeTopIn\":\n case \"rotateCubeBottomOut\":\n case \"rotateCubeBottomIn\":\n case \"rotateSidesOut\":\n timingFunction = props.timingFunction || \"ease-in\";\n break;\n case \"lightSpeedInLeft\":\n case \"lightSpeedInRight\":\n case \"flipInLeft\":\n case \"flipInRight\":\n case \"flipInBottom\":\n case \"flipInTop\":\n case \"rotateInNewspaper\":\n case \"rotateSidesIn\":\n timingFunction = props.timingFunction || \"ease-out\";\n break;\n case \"pulse\":\n case \"headShake\":\n case \"heartBeat\":\n case \"statusProcessing\":\n timingFunction = props.timingFunction || \"ease-in-out\";\n break;\n default:\n timingFunction = props.timingFunction || \"ease\";\n break;\n }\n\n /// delay\n switch (animationName) {\n default:\n delay = props.delay || 0;\n break;\n }\n\n /// repeat\n switch (animationName) {\n case \"superRainbow\":\n case \"statusProcessing\":\n repeat = props.repeat || \"infinite\";\n break;\n default:\n repeat = props.repeat || 1;\n break;\n }\n\n /// direction\n switch (animationName) {\n case \"superRainbow\":\n direction = props.direction || \"alternate\";\n break;\n default:\n direction = props.direction || \"normal\";\n break;\n }\n\n /// transformOrigin: x-offset y-offset\n switch (animationName) {\n case \"hinge\":\n case \"rotateFall\":\n style.transformOrigin = \"left top\";\n // style.transformOrigin = \"0% 0%\";\n break;\n case \"zoomOutLeft\":\n case \"rotateRightSideFirst\":\n case \"rotatePushLeft\":\n case \"rotatePullLeft\":\n case \"rotateFoldRight\":\n case \"rotateUnfoldRight\":\n case \"rotateRoomLeftIn\":\n case \"rotateRoomRightOut\":\n case \"rotateCubeLeftIn\":\n case \"rotateCubeRightOut\":\n style.transformOrigin = \"left center\";\n // style.transformOrigin = \"0% 50%\";\n break;\n case \"rotateInUpLeft\":\n case \"rotateInDownLeft\":\n case \"rotateOutUpLeft\":\n case \"rotateOutDownLeft\":\n style.transformOrigin = \"left bottom\";\n // style.transformOrigin = \"0% 100%\";\n break;\n case \"swing\":\n case \"zoomOutUp\":\n case \"rotateBottomSideFirst\":\n case \"rotatePushTop\":\n case \"rotatePullTop\":\n case \"rotateFoldBottom\":\n case \"rotateUnfoldBottom\":\n case \"rotateRoomTopIn\":\n case \"rotateRoomBottomOut\":\n case \"rotateCubeTopIn\":\n case \"rotateCubeBottomOut\":\n style.transformOrigin = \"center top\";\n // style.transformOrigin = \"50% 0%\";\n break;\n case \"bounce\":\n case \"zoomOutDown\":\n case \"rotateTopSideFirst\":\n case \"rotatePushBottom\":\n case \"rotatePullBottom\":\n case \"rotateFoldTop\":\n case \"rotateUnfoldTop\":\n case \"rotateRoomTopOut\":\n case \"rotateRoomBottomIn\":\n case \"rotateCubeTopOut\":\n case \"rotateCubeBottomIn\":\n style.transformOrigin = \"center bottom\";\n // style.transformOrigin = \"50% 100%\";\n break;\n // case \"xxx\":\n // style.transformOrigin = \"right top\";\n // style.transformOrigin = \"100% 0%\";\n // break;\n case \"zoomOutRight\":\n case \"rotateLeftSideFirst\":\n case \"rotatePushRight\":\n case \"rotatePullRight\":\n case \"rotateFoldLeft\":\n case \"rotateUnfoldLeft\":\n case \"rotateRoomLeftOut\":\n case \"rotateRoomRightIn\":\n case \"rotateCubeLeftOut\":\n case \"rotateCubeRightIn\":\n style.transformOrigin = \"right center\";\n // style.transformOrigin = \"100% 50%\";\n break;\n case \"rotateInUpRight\":\n case \"rotateInDownRight\":\n case \"rotateOutUpRight\":\n case \"rotateOutDownRight\":\n style.transformOrigin = \"right bottom\";\n // style.transformOrigin = \"100% 100%\";\n break;\n default:\n // style.transformOrigin = \"center\"; // default\n // style.transformOrigin = \"50% 50%\"; // default\n delete style.transformOrigin;\n break;\n }\n\n /// overflow\n switch (animationName) {\n case \"jelly\":\n case \"bounce\":\n case \"flash\":\n case \"pulse\":\n case \"rubberBand\":\n case \"shakeX\":\n case \"shakeY\":\n case \"headShake\":\n case \"swing\":\n case \"tada\":\n case \"wobble\":\n case \"jello\":\n case \"heartBeat\":\n case \"bounceIn\":\n case \"fadeIn\":\n case \"fadeOut\":\n case \"flip\":\n case \"flipInX\":\n case \"flipInY\":\n case \"flipOutX\":\n case \"flipOutY\":\n case \"hinge\":\n case \"jackInTheBox\":\n parentStyle.overflow = \"visible\";\n break;\n default:\n parentStyle.overflow = \"hidden\";\n break;\n }\n\n /// backfaceVisibility\n switch (animationName) {\n case \"flip\":\n case \"flipInX\":\n case \"flipInY\":\n case \"flipOutX\":\n case \"flipOutY\":\n style.backfaceVisibility = \"visible\";\n break;\n default:\n delete style.backfaceVisibility;\n break;\n }\n}\n\nconst animationRef = ref();\n\nconst ready = (controller: ElementEventBusController) => {\n parentStyle.perspective = props.perspective;\n controller.eb.on(\"animationstart\", (e) => {\n emits(\"cssanimationstart\", e.animationName);\n });\n controller.eb.on(\"animationend\", (e) => {\n emits(\"cssanimationend\", e.animationName);\n });\n};\n\n/// restart css animation\nfunction resetAnimation() {\n animationRef.value.style.animation = \"none\";\n animationRef.value.offsetHeight; /* trigger reflow */\n animationRef.value.style.animation = null;\n}\n\nconst start = () => {\n style.animation = \"none\";\n};\nconst end = () => {\n resetAnimation();\n // style.animationName = `${animationName}`;\n // style.animationDuration = `${duration}ms`;\n // style.animationDelay = `${delay}ms`;\n // style.animationIterationCount = `${repeat}`;\n // style.animationFillMode = `${props.fillMode}`;\n // style.animationTimingFunction = `${timingFunction}`;\n // style.animationDirection = `${direction}`;\n // style.animationPlayState = `${props.playState}`;\n style.animation = `${duration}ms ${timingFunction} ${delay}ms ${repeat} ${direction} ${props.fillMode} ${props.playState} ${animationName}`;\n};\n\nconst trigger = (newAnimationName?: SupportedCSSAnimation) => {\n if (newAnimationName) {\n changeEffect(newAnimationName);\n }\n start();\n direction = \"normal\";\n end();\n};\n\nconst triggerReverse = (newAnimationName?: SupportedCSSAnimation) => {\n if (newAnimationName) {\n changeEffect(newAnimationName);\n }\n start();\n direction = \"reverse\";\n end();\n};\n\n/// 清除样式\nconst clear = () => {\n style.animation = \"none\";\n};\n\nwatch(\n () => props.name,\n () => {\n changeEffect(props.name);\n },\n { immediate: true }\n);\n\ndefineExpose({ trigger, triggerReverse, clear });\n</script>\n\n<template>\n <Container\n class=\"css-animation\"\n :type=\"props.containerType\"\n :supportCopyText=\"props.supportCopyText\"\n :effectTriggerTiming=\"props.effectTriggerTiming\"\n :style=\"parentStyle\"\n @ready=\"ready\"\n @start=\"start\"\n @end=\"end\"\n >\n <div\n class=\"css-animation-inner\"\n ref=\"animationRef\"\n :style=\"{\n position: 'relative',\n display: 'block',\n width: '100%',\n height: '100%',\n cursor: 'pointer',\n transformStyle: 'preserve-3d',\n ...style\n }\"\n >\n <slot></slot>\n </div>\n </Container>\n</template>\n\n<style>\n@import \"../../../../../css/animate_ce.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { ref, reactive, watch } from \"vue\";\nimport {\n Easing,\n EasingFunction,\n SupportedEaseNameToCubicBezier,\n Timeline,\n TweenValue\n} from \"@zyzgroup/core-web\";\nimport Container from \"./Container.vue\";\nimport CSSAnimation, { SupportedCSSAnimation } from \"./effect/CSSAnimation.vue\";\n\nexport type SupportedPageEffect =\n | \"static\"\n | \"fade\"\n | \"moveFromLeft\"\n | \"moveToLeft\"\n | \"moveFromRight\"\n | \"moveToRight\"\n | \"moveFromTop\"\n | \"moveToTop\"\n | \"moveFromBottom\"\n | \"moveToBottom\"\n | \"moveFromLeftFade\"\n | \"moveToLeftFade\"\n | \"moveFromRightFade\"\n | \"moveToRightFade\"\n | \"moveFromTopFade\"\n | \"moveToTopFade\"\n | \"moveFromBottomFade\"\n | \"moveToBottomFade\"\n | \"scaleFromSmall\"\n | \"scaleToSmall\"\n | \"scaleFromLarge\"\n | \"scaleToLarge\"\n | \"scaleFromSmallCenter\"\n | \"scaleToSmallCenter\"\n | \"rotateRightSideFirst\"\n | \"rotateLeftSideFirst\"\n | \"rotateTopSideFirst\"\n | \"rotateBottomSideFirst\"\n | \"flipOutRight\"\n | \"flipInLeft\"\n | \"flipOutLeft\"\n | \"flipInRight\"\n | \"flipOutTop\"\n | \"flipInBottom\"\n | \"flipOutBottom\"\n | \"flipInTop\"\n | \"rotateFall\"\n | \"rotateOutNewspaper\"\n | \"rotateInNewspaper\"\n | \"rotatePushLeft\"\n | \"rotatePushRight\"\n | \"rotatePushTop\"\n | \"rotatePushBottom\"\n | \"rotatePullRight\"\n | \"rotatePullLeft\"\n | \"rotatePullTop\"\n | \"rotatePullBottom\"\n | \"rotateFoldRight\"\n | \"rotateFoldLeft\"\n | \"rotateFoldTop\"\n | \"rotateFoldBottom\"\n | \"rotateUnfoldLeft\"\n | \"rotateUnfoldRight\"\n | \"rotateUnfoldTop\"\n | \"rotateUnfoldBottom\"\n | \"rotateRoomLeftOut\"\n | \"rotateRoomLeftIn\"\n | \"rotateRoomRightOut\"\n | \"rotateRoomRightIn\"\n | \"rotateRoomTopOut\"\n | \"rotateRoomTopIn\"\n | \"rotateRoomBottomOut\"\n | \"rotateRoomBottomIn\"\n | \"rotateCubeLeftOut\"\n | \"rotateCubeLeftIn\"\n | \"rotateCubeRightOut\"\n | \"rotateCubeRightIn\"\n | \"rotateCubeTopOut\"\n | \"rotateCubeTopIn\"\n | \"rotateCubeBottomOut\"\n | \"rotateCubeBottomIn\"\n | \"rotateCarouselLeftOut\"\n | \"rotateCarouselLeftIn\"\n | \"rotateCarouselRightOut\"\n | \"rotateCarouselRightIn\"\n | \"rotateCarouselTopOut\"\n | \"rotateCarouselTopIn\"\n | \"rotateCarouselBottomOut\"\n | \"rotateCarouselBottomIn\"\n | \"rotateSidesOut\"\n | \"rotateSidesIn\"\n | \"rotateSlideOut\"\n | \"rotateSlideIn\";\n\n// type AtomEffect =\n// | \"moveFromLeft\"\n// | \"moveToLeft\"\n// | \"moveFromRight\"\n// | \"moveToRight\"\n// | \"moveFromTop\"\n// | \"moveToTop\"\n// | \"moveFromBottom\"\n// | \"moveToBottom\"\n// | \"fadeOut\"\n// | \"fadeIn\"\n// | \"disappear\"\n// | \"appear\"\n// | \"scaleFromSmall\"\n// | \"scaleToSmall\"\n// | \"scaleFromLarge\"\n// | \"scaleToLarge\"\n// | \"scaleFromSmallCenter\"\n// | \"scaleToSmallCenter\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: { Container, CSSAnimation },\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n effect?: SupportedPageEffect;\n duration?: number;\n /// js ease\n easeFunction?: EasingFunction;\n /// css ease\n timingFunction?: SupportedEaseNameToCubicBezier;\n delay?: number;\n }>(),\n {\n effect: \"moveFromLeft\",\n duration: 500,\n easeFunction: Easing.Cubic.InOut,\n timingFunction: \"ease\",\n delay: 0\n }\n);\n\nconst emits = defineEmits<{\n (event: \"ready\", open: () => void, close: () => void): void;\n (event: \"pageOpenStart\"): void;\n (event: \"pageOpenEnd\"): void;\n (event: \"pageCloseStart\"): void;\n (event: \"pageCloseEnd\"): void;\n}>();\n\nconst pageRef = ref();\nconst style = reactive<Record<string, string>>({});\n\nconst ready = () => {\n emits(\"ready\", open, close);\n};\n\nconst update = () => {\n changeEffect();\n};\n\nconst cssAnimationRef = ref();\nlet cssAnimationName: SupportedCSSAnimation = \"rotateRightSideFirst\";\n\nlet effect: SupportedPageEffect = props.effect;\nfunction runDependOnEffectType(\n cssAnimationTask: () => void,\n jsAnimationTask: () => void\n) {\n switch (effect) {\n case \"static\":\n /// JS Animation\n jsAnimationTask();\n break;\n default:\n /// CSS Animation\n cssAnimationTask();\n break;\n }\n}\n\n// const _addAtomEffect = (\n// attrFrom: Record<string, number>,\n// attrTo: Record<string, number>,\n// effect: AtomEffect\n// ) => {\n// switch (effect) {\n// case \"moveFromLeft\":\n// attrFrom.x = -100;\n// attrTo.x = 0;\n// break;\n// case \"moveToLeft\":\n// attrFrom.x = 0;\n// attrTo.x = -100;\n// break;\n// case \"moveFromRight\":\n// attrFrom.x = 100;\n// attrTo.x = 0;\n// break;\n// case \"moveToRight\":\n// attrFrom.x = 0;\n// attrTo.x = 100;\n// break;\n// case \"moveFromTop\":\n// attrFrom.y = -100;\n// attrTo.y = 0;\n// break;\n// case \"moveToTop\":\n// attrFrom.y = 0;\n// attrTo.y = -100;\n// break;\n// case \"moveFromBottom\":\n// attrFrom.y = 100;\n// attrTo.y = 0;\n// break;\n// case \"moveToBottom\":\n// attrFrom.y = 0;\n// attrTo.y = 100;\n// break;\n// case \"fadeOut\":\n// attrFrom.opacity = 1;\n// attrTo.opacity = 0.3;\n// break;\n// case \"fadeIn\":\n// attrFrom.opacity = 0.3;\n// attrTo.opacity = 1;\n// break;\n// case \"disappear\":\n// attrFrom.opacity = 1;\n// attrTo.opacity = 0;\n// break;\n// case \"appear\":\n// attrFrom.opacity = 0;\n// attrTo.opacity = 1;\n// break;\n// case \"scaleFromSmall\":\n// attrFrom.scale = 0.8;\n// attrTo.scale = 1;\n// break;\n// case \"scaleToSmall\":\n// attrFrom.scale = 1;\n// attrTo.scale = 0.8;\n// break;\n// case \"scaleFromLarge\":\n// attrFrom.scale = 1.2;\n// attrTo.scale = 1;\n// break;\n// case \"scaleToLarge\":\n// attrFrom.scale = 1;\n// attrTo.scale = 1.2;\n// break;\n// case \"scaleFromSmallCenter\":\n// attrFrom.scale = 0.7;\n// attrTo.scale = 1;\n// break;\n// case \"scaleToSmallCenter\":\n// attrFrom.scale = 1;\n// attrTo.scale = 0.7;\n// break;\n// }\n// };\n\nlet isClose = false;\n\nconst triggerTimeline = new Timeline();\nconst changeEffect = () => {\n const triggerFrom: Record<string, number> = {};\n const triggerTo: Record<string, number> = {};\n switch (effect) {\n case \"static\":\n break;\n /// 统一用 css animation ,抹平与 js animation 的差异\n // case \"moveFromLeft\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveFromLeft\");\n // break;\n // case \"moveToLeft\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveToLeft\");\n // break;\n // case \"moveFromRight\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveFromRight\");\n // break;\n // case \"moveToRight\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveToRight\");\n // break;\n // case \"moveFromTop\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveFromTop\");\n // break;\n // case \"moveToTop\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveToTop\");\n // break;\n // case \"moveFromBottom\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveFromBottom\");\n // break;\n // case \"moveToBottom\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveToBottom\");\n // break;\n // case \"fade\":\n // _addAtomEffect(triggerFrom, triggerTo, \"fadeOut\");\n // break;\n // case \"moveFromLeftFade\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveFromLeft\");\n // _addAtomEffect(triggerFrom, triggerTo, \"fadeIn\");\n // break;\n // case \"moveToLeftFade\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveToLeft\");\n // _addAtomEffect(triggerFrom, triggerTo, \"fadeOut\");\n // break;\n // case \"moveFromRightFade\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveFromRight\");\n // _addAtomEffect(triggerFrom, triggerTo, \"fadeIn\");\n // break;\n // case \"moveToRightFade\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveToRight\");\n // _addAtomEffect(triggerFrom, triggerTo, \"fadeOut\");\n // break;\n // case \"moveFromTopFade\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveFromTop\");\n // _addAtomEffect(triggerFrom, triggerTo, \"fadeIn\");\n // break;\n // case \"moveToTopFade\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveToTop\");\n // _addAtomEffect(triggerFrom, triggerTo, \"fadeOut\");\n // break;\n // case \"moveFromBottomFade\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveFromBottom\");\n // _addAtomEffect(triggerFrom, triggerTo, \"fadeIn\");\n // break;\n // case \"moveToBottomFade\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveToBottom\");\n // _addAtomEffect(triggerFrom, triggerTo, \"fadeOut\");\n // break;\n // case \"scaleFromSmall\":\n // _addAtomEffect(triggerFrom, triggerTo, \"scaleFromSmall\");\n // _addAtomEffect(triggerFrom, triggerTo, \"appear\");\n // break;\n // case \"scaleToSmall\":\n // _addAtomEffect(triggerFrom, triggerTo, \"scaleToSmall\");\n // _addAtomEffect(triggerFrom, triggerTo, \"disappear\");\n // break;\n // case \"scaleFromLarge\":\n // _addAtomEffect(triggerFrom, triggerTo, \"scaleFromLarge\");\n // _addAtomEffect(triggerFrom, triggerTo, \"appear\");\n // break;\n // case \"scaleToLarge\":\n // _addAtomEffect(triggerFrom, triggerTo, \"scaleToLarge\");\n // _addAtomEffect(triggerFrom, triggerTo, \"disappear\");\n // break;\n // case \"scaleFromSmallCenter\":\n // _addAtomEffect(triggerFrom, triggerTo, \"scaleFromSmallCenter\");\n // _addAtomEffect(triggerFrom, triggerTo, \"appear\");\n // break;\n // case \"scaleToSmallCenter\":\n // _addAtomEffect(triggerFrom, triggerTo, \"scaleToSmallCenter\");\n // _addAtomEffect(triggerFrom, triggerTo, \"disappear\");\n // break;\n }\n triggerTimeline.clear();\n triggerTimeline.frameDuration = props.duration;\n runDependOnEffectType(\n () => {\n /// CSS Animation\n cssAnimationName = effect as SupportedCSSAnimation;\n },\n () => {\n /// JS Animation\n triggerTimeline.addTween(triggerFrom, triggerTo, {\n delay: props.delay / props.duration,\n easeFunction: props.easeFunction,\n onStart: () => {\n if (!isClose) {\n emits(\"pageOpenStart\");\n } else {\n emits(\"pageCloseStart\");\n }\n },\n onUpdate: (attrs: TweenValue) => {\n style.transform = \"\";\n if (\"x\" in attrs) {\n style.transform += ` translateX(${attrs.x}%)`;\n }\n if (\"y\" in attrs) {\n style.transform += ` translateY(${attrs.y}%)`;\n }\n if (\"rx\" in attrs) {\n style.transform += ` rotateX(${attrs.rx}deg)`;\n }\n if (\"ry\" in attrs) {\n style.transform += ` rotateY(${attrs.ry}deg)`;\n }\n if (\"scale\" in attrs) {\n style.transform += ` scale(${attrs.scale})`;\n }\n if (\"opacity\" in attrs) {\n style.opacity = `${attrs.opacity}`;\n }\n },\n onComplete: () => {\n if (!isClose) {\n emits(\"pageOpenEnd\");\n } else {\n emits(\"pageCloseEnd\");\n }\n }\n });\n }\n );\n};\n\nwatch(\n () => [props.effect, props.delay, props.duration, props.easeFunction],\n () => {\n effect = props.effect;\n changeEffect();\n },\n {\n immediate: true\n }\n);\n\nconst cssanimationstart = () => {\n if (!isClose) {\n emits(\"pageOpenStart\");\n } else {\n emits(\"pageCloseStart\");\n }\n};\n\nconst cssanimationend = () => {\n if (!isClose) {\n emits(\"pageOpenEnd\");\n } else {\n emits(\"pageCloseEnd\");\n }\n};\n\nconst start = () => {\n runDependOnEffectType(\n () => {\n /// CSS Animation\n cssAnimationRef.value.trigger(cssAnimationName);\n },\n () => {\n /// JS Animation\n triggerTimeline.play();\n }\n );\n};\n\nconst end = () => {\n runDependOnEffectType(\n () => {\n /// CSS Animation\n cssAnimationRef.value.triggerReverse(cssAnimationName);\n },\n () => {\n /// JS Animation\n triggerTimeline.reverse();\n }\n );\n};\n\n/// 清除样式\nconst clear = () => {\n style.transform = \"none\";\n style.opacity = \"1\";\n};\n\nfunction clearStyle() {\n runDependOnEffectType(\n () => {\n /// CSS Animation : clear js style\n clear();\n },\n () => {\n /// JS Animation : clear css style\n cssAnimationRef.value?.clear();\n }\n );\n}\n\nconst open = (newEffect?: SupportedPageEffect) => {\n if (newEffect) {\n effect = newEffect;\n changeEffect();\n }\n isClose = false;\n clearStyle();\n start();\n};\n\nconst close = (newEffect?: SupportedPageEffect) => {\n if (newEffect) {\n effect = newEffect;\n changeEffect();\n }\n isClose = true;\n clearStyle();\n end();\n};\n\ndefineExpose({\n open,\n close,\n clear\n});\n</script>\n\n<template>\n <Container\n class=\"page\"\n ref=\"pageRef\"\n type=\"full\"\n effectTriggerTiming=\"manual\"\n :style=\"{\n overflow: 'hidden',\n width: '100%',\n height: '100%'\n }\"\n @ready=\"ready\"\n @update=\"update\"\n >\n <CSSAnimation\n ref=\"cssAnimationRef\"\n containerType=\"full\"\n effectTriggerTiming=\"manual\"\n :duration=\"props.duration\"\n :delay=\"props.delay\"\n :timingFunction=\"props.timingFunction\"\n @cssanimationstart=\"cssanimationstart\"\n @cssanimationend=\"cssanimationend\"\n >\n <div\n class=\"page-inner\"\n :style=\"{\n position: 'relative',\n display: 'block',\n width: '100%',\n height: '100%',\n overflow: 'scroll',\n backfaceVisibility: 'hidden',\n transformStyle: 'preserve-3d',\n ...style\n }\"\n >\n <slot></slot>\n </div>\n </CSSAnimation>\n </Container>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, VNode, render, h, Component, watch } from \"vue\";\nimport Page, { SupportedPageEffect } from \"./Page.vue\";\nimport Container from \"./Container.vue\";\nimport { generateUUID, AsyncTaskQueue } from \"@zyzgroup/core-common\";\nimport {\n Easing,\n EasingFunction,\n // CSSToJSEasing,\n // reverseCSSToJSEasing,\n SupportedEaseNameToCubicBezier\n} from \"@zyzgroup/core-web\";\n// import { elementsToVNodes } from \"../vnode\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: { Page, Container },\n inheritAttrs: true\n});\n\nexport type SupportedRouteEffect =\n | \"moveToLeft\"\n | \"moveToRight\"\n | \"moveToTop\"\n | \"moveToBottom\"\n | \"moveFromLeftPrevFade\"\n | \"moveFromRightPrevFade\"\n | \"moveFromTopPrevFade\"\n | \"moveFromBottomPrevFade\"\n | \"moveToLeftFade\"\n | \"moveToRightFade\"\n | \"moveToTopFade\"\n | \"moveToBottomFade\"\n | \"moveToLeftEasing\"\n | \"moveToRightEasing\"\n | \"moveToTopEasing\"\n | \"moveToBottomEasing\"\n | \"moveFromLeftPrevScaleToSmall\"\n | \"moveFromRightPrevScaleToSmall\"\n | \"moveFromTopPrevScaleToSmall\"\n | \"moveFromBottomPrevScaleToSmall\" /// ⭐\n | \"scaleSmall\"\n | \"scaleLarge\"\n | \"scaleToLargePrevScaleToSmall\"\n | \"scaleFromSmallPrevMoveToLeft\"\n | \"scaleFromSmallPrevMoveToRight\"\n | \"scaleFromSmallPrevMoveToTop\"\n | \"scaleFromSmallPrevMoveToBottom\"\n | \"glueToLeft\"\n | \"glueToRight\"\n | \"glueToTop\"\n | \"glueToBottom\"\n | \"flipToLeft\"\n | \"flipToRight\"\n | \"flipToTop\"\n | \"flipToBottom\"\n | \"rotateFall\"\n | \"newspaper\"\n | \"moveFromLeftPrevPush\"\n | \"moveFromRightPrevPush\"\n | \"moveFromTopPrevPush\"\n | \"moveFromBottomPrevPush\"\n | \"pullFromLeftPrevPush\"\n | \"pullFromRightPrevPush\"\n | \"pullFromTopPrevPush\"\n | \"pullFromBottomPrevPush\"\n | \"moveFromLeftFadePrevFold\"\n | \"moveFromRightFadePrevFold\"\n | \"moveFromTopFadePrevFold\"\n | \"moveFromBottomFadePrevFold\"\n | \"moveToLeftFadePrevUnfold\"\n | \"moveToRightFadePrevUnfold\"\n | \"moveToTopFadePrevUnfold\"\n | \"moveToBottomFadePrevUnfold\"\n | \"rotateRoomLeftIn\"\n | \"rotateRoomRightIn\"\n | \"rotateRoomTopIn\"\n | \"rotateRoomBottomIn\"\n | \"rotateCubeLeftIn\"\n | \"rotateCubeRightIn\"\n | \"rotateCubeTopIn\"\n | \"rotateCubeBottomIn\"\n | \"rotateCarouselLeftIn\"\n | \"rotateCarouselRightIn\"\n | \"rotateCarouselTopIn\"\n | \"rotateCarouselBottomIn\"\n | \"rotateSidesIn\"\n | \"rotateSlideIn\";\n\nconst props = withDefaults(\n defineProps<{\n effect?: SupportedRouteEffect;\n duration?: number;\n /// js ease\n easeFunction?: EasingFunction;\n // differentEaseFunction?: EasingFunction;\n /// css ease\n timingFunction?: SupportedEaseNameToCubicBezier;\n delay?: number;\n }>(),\n {\n effect: \"moveToLeft\",\n duration: 500,\n easeFunction: Easing.Cubic.InOut,\n // differentEaseFunction: Easing.Quintic.InOut,\n timingFunction: \"ease\",\n delay: 0\n }\n);\n\nconst emits = defineEmits<{\n (\n event: \"routeChangeStart\",\n fromPageIndex: number,\n toPageIndex: number,\n totalPages: number\n ): void;\n (\n event: \"routeChangeEnd\",\n fromPageIndex: number,\n toPageIndex: number,\n totalPages: number\n ): void;\n (event: \"renderComplete\"): void;\n}>();\n\ntype VNodeChildAtom =\n | VNode\n | string\n | number\n | boolean\n | null\n | undefined\n | void;\ntype VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;\ntype RawChildren =\n | string\n | number\n | boolean\n | VNode\n | VNodeArrayChildren\n | (() => any);\ntype RawSlots = {\n [name: string]: unknown;\n $stable?: boolean;\n};\n\nexport type PageArgument = {\n pageKey?: string;\n // pageAttributes?: InstanceType<typeof Page>;\n component: VNode | Component | HTMLElement;\n attributes?: Record<string, any>;\n child?: RawChildren | RawSlots;\n};\n\nlet currentPageIndex = -1;\nlet nextPageIndex = -1;\nlet onRenderComplete: () => void;\nconst onRouteCompletes: (() => void)[] = [];\n\nlet pages: PageArgument[] = [];\nlet pageActions: {\n open: () => void;\n close: () => void;\n}[] = [];\nlet pageElements: HTMLElement[] = [];\n\nfunction isValidPageIndex(pageIndex: number): boolean {\n return pageIndex >= 0 && pageIndex < pages.length;\n}\n\nfunction isForward(): boolean {\n return nextPageIndex > currentPageIndex;\n}\n\n/// page effect\nfunction _getPageEffect(\n pageIndex: number,\n currentPageEffect: SupportedPageEffect,\n nextPageEffect: SupportedPageEffect\n): SupportedPageEffect {\n switch (pageIndex) {\n case currentPageIndex:\n return isForward() ? currentPageEffect : nextPageEffect;\n case nextPageIndex:\n return isForward() ? nextPageEffect : currentPageEffect;\n default:\n return \"static\";\n }\n}\nfunction getPageEffect(\n routeEffect: SupportedRouteEffect,\n pageIndex: number\n): SupportedPageEffect {\n switch (routeEffect) {\n case \"moveToLeft\":\n return _getPageEffect(pageIndex, \"moveToLeft\", \"moveFromRight\");\n case \"moveToRight\":\n return _getPageEffect(pageIndex, \"moveToRight\", \"moveFromLeft\");\n case \"moveToTop\":\n return _getPageEffect(pageIndex, \"moveToTop\", \"moveFromBottom\");\n case \"moveToBottom\":\n return _getPageEffect(pageIndex, \"moveToBottom\", \"moveFromTop\");\n\n case \"moveFromLeftPrevFade\":\n return _getPageEffect(pageIndex, \"fade\", \"moveFromLeft\");\n case \"moveFromRightPrevFade\":\n return _getPageEffect(pageIndex, \"fade\", \"moveFromRight\");\n case \"moveFromTopPrevFade\":\n return _getPageEffect(pageIndex, \"fade\", \"moveFromTop\");\n case \"moveFromBottomPrevFade\":\n return _getPageEffect(pageIndex, \"fade\", \"moveFromBottom\");\n\n case \"moveToLeftFade\":\n return _getPageEffect(pageIndex, \"moveToLeftFade\", \"moveFromRightFade\");\n case \"moveToRightFade\":\n return _getPageEffect(pageIndex, \"moveToRightFade\", \"moveFromLeftFade\");\n case \"moveToTopFade\":\n return _getPageEffect(pageIndex, \"moveToTopFade\", \"moveFromBottomFade\");\n case \"moveToBottomFade\":\n return _getPageEffect(pageIndex, \"moveToBottomFade\", \"moveFromTopFade\");\n\n case \"moveToLeftEasing\":\n return _getPageEffect(pageIndex, \"moveToLeft\", \"moveFromRight\");\n case \"moveToRightEasing\":\n return _getPageEffect(pageIndex, \"moveToRight\", \"moveFromLeft\");\n case \"moveToTopEasing\":\n return _getPageEffect(pageIndex, \"moveToTop\", \"moveFromBottom\");\n case \"moveToBottomEasing\":\n return _getPageEffect(pageIndex, \"moveToBottom\", \"moveFromTop\");\n\n case \"moveFromLeftPrevScaleToSmall\":\n return _getPageEffect(pageIndex, \"scaleToSmall\", \"moveFromLeft\");\n case \"moveFromRightPrevScaleToSmall\":\n return _getPageEffect(pageIndex, \"scaleToSmall\", \"moveFromRight\");\n case \"moveFromTopPrevScaleToSmall\":\n return _getPageEffect(pageIndex, \"scaleToSmall\", \"moveFromTop\");\n case \"moveFromBottomPrevScaleToSmall\":\n return _getPageEffect(pageIndex, \"scaleToSmall\", \"moveFromBottom\");\n\n case \"scaleSmall\":\n return _getPageEffect(pageIndex, \"scaleToSmall\", \"scaleFromLarge\");\n case \"scaleLarge\":\n return _getPageEffect(pageIndex, \"scaleToLarge\", \"scaleFromSmall\");\n case \"scaleToLargePrevScaleToSmall\":\n return _getPageEffect(\n pageIndex,\n \"scaleToSmallCenter\",\n \"scaleFromSmallCenter\"\n );\n\n case \"scaleFromSmallPrevMoveToLeft\":\n return _getPageEffect(pageIndex, \"moveToLeft\", \"scaleFromSmall\");\n case \"scaleFromSmallPrevMoveToRight\":\n return _getPageEffect(pageIndex, \"moveToRight\", \"scaleFromSmall\");\n case \"scaleFromSmallPrevMoveToTop\":\n return _getPageEffect(pageIndex, \"moveToTop\", \"scaleFromSmall\");\n case \"scaleFromSmallPrevMoveToBottom\":\n return _getPageEffect(pageIndex, \"moveToBottom\", \"scaleFromSmall\");\n\n case \"glueToLeft\":\n return _getPageEffect(pageIndex, \"rotateRightSideFirst\", \"moveFromRight\");\n case \"glueToRight\":\n return _getPageEffect(pageIndex, \"rotateLeftSideFirst\", \"moveFromLeft\");\n case \"glueToTop\":\n return _getPageEffect(\n pageIndex,\n \"rotateBottomSideFirst\",\n \"moveFromBottom\"\n );\n case \"glueToBottom\":\n return _getPageEffect(pageIndex, \"rotateTopSideFirst\", \"moveFromTop\");\n\n case \"flipToLeft\":\n return _getPageEffect(pageIndex, \"flipOutLeft\", \"flipInRight\");\n case \"flipToRight\":\n return _getPageEffect(pageIndex, \"flipOutRight\", \"flipInLeft\");\n case \"flipToTop\":\n return _getPageEffect(pageIndex, \"flipOutTop\", \"flipInBottom\");\n case \"flipToBottom\":\n return _getPageEffect(pageIndex, \"flipOutBottom\", \"flipInTop\");\n\n case \"rotateFall\":\n return _getPageEffect(pageIndex, \"rotateFall\", \"scaleFromSmall\");\n\n case \"newspaper\":\n return _getPageEffect(\n pageIndex,\n \"rotateOutNewspaper\",\n \"rotateInNewspaper\"\n );\n\n case \"moveFromLeftPrevPush\":\n return _getPageEffect(pageIndex, \"rotatePushRight\", \"moveFromLeft\");\n case \"moveFromRightPrevPush\":\n return _getPageEffect(pageIndex, \"rotatePushLeft\", \"moveFromRight\");\n case \"moveFromTopPrevPush\":\n return _getPageEffect(pageIndex, \"rotatePushBottom\", \"moveFromTop\");\n case \"moveFromBottomPrevPush\":\n return _getPageEffect(pageIndex, \"rotatePushTop\", \"moveFromBottom\");\n\n case \"pullFromLeftPrevPush\":\n return _getPageEffect(pageIndex, \"rotatePushRight\", \"rotatePullLeft\");\n case \"pullFromRightPrevPush\":\n return _getPageEffect(pageIndex, \"rotatePushLeft\", \"rotatePullRight\");\n case \"pullFromTopPrevPush\":\n return _getPageEffect(pageIndex, \"rotatePushBottom\", \"rotatePullTop\");\n case \"pullFromBottomPrevPush\":\n return _getPageEffect(pageIndex, \"rotatePushTop\", \"rotatePullBottom\");\n\n case \"moveFromLeftFadePrevFold\":\n return _getPageEffect(pageIndex, \"rotateFoldRight\", \"moveFromLeftFade\");\n case \"moveFromRightFadePrevFold\":\n return _getPageEffect(pageIndex, \"rotateFoldLeft\", \"moveFromRightFade\");\n case \"moveFromTopFadePrevFold\":\n return _getPageEffect(pageIndex, \"rotateFoldBottom\", \"moveFromTopFade\");\n case \"moveFromBottomFadePrevFold\":\n return _getPageEffect(pageIndex, \"rotateFoldTop\", \"moveFromBottomFade\");\n\n case \"moveToLeftFadePrevUnfold\":\n return _getPageEffect(pageIndex, \"moveToLeftFade\", \"rotateUnfoldRight\");\n case \"moveToRightFadePrevUnfold\":\n return _getPageEffect(pageIndex, \"moveToRightFade\", \"rotateUnfoldLeft\");\n case \"moveToTopFadePrevUnfold\":\n return _getPageEffect(pageIndex, \"moveToTopFade\", \"rotateUnfoldBottom\");\n case \"moveToBottomFadePrevUnfold\":\n return _getPageEffect(pageIndex, \"moveToBottomFade\", \"rotateUnfoldTop\");\n\n case \"rotateRoomLeftIn\":\n return _getPageEffect(pageIndex, \"rotateRoomLeftOut\", \"rotateRoomLeftIn\");\n case \"rotateRoomRightIn\":\n return _getPageEffect(\n pageIndex,\n \"rotateRoomRightOut\",\n \"rotateRoomRightIn\"\n );\n case \"rotateRoomTopIn\":\n return _getPageEffect(pageIndex, \"rotateRoomTopOut\", \"rotateRoomTopIn\");\n case \"rotateRoomBottomIn\":\n return _getPageEffect(\n pageIndex,\n \"rotateRoomBottomOut\",\n \"rotateRoomBottomIn\"\n );\n\n case \"rotateCubeLeftIn\":\n return _getPageEffect(pageIndex, \"rotateCubeLeftOut\", \"rotateCubeLeftIn\");\n case \"rotateCubeRightIn\":\n return _getPageEffect(\n pageIndex,\n \"rotateCubeRightOut\",\n \"rotateCubeRightIn\"\n );\n case \"rotateCubeTopIn\":\n return _getPageEffect(pageIndex, \"rotateCubeTopOut\", \"rotateCubeTopIn\");\n case \"rotateCubeBottomIn\":\n return _getPageEffect(\n pageIndex,\n \"rotateCubeBottomOut\",\n \"rotateCubeBottomIn\"\n );\n\n case \"rotateCarouselLeftIn\":\n return _getPageEffect(\n pageIndex,\n \"rotateCarouselLeftOut\",\n \"rotateCarouselLeftIn\"\n );\n case \"rotateCarouselRightIn\":\n return _getPageEffect(\n pageIndex,\n \"rotateCarouselRightOut\",\n \"rotateCarouselRightIn\"\n );\n case \"rotateCarouselTopIn\":\n return _getPageEffect(\n pageIndex,\n \"rotateCarouselTopOut\",\n \"rotateCarouselTopIn\"\n );\n case \"rotateCarouselBottomIn\":\n return _getPageEffect(\n pageIndex,\n \"rotateCarouselBottomOut\",\n \"rotateCarouselBottomIn\"\n );\n\n case \"rotateSidesIn\":\n return _getPageEffect(pageIndex, \"rotateSidesOut\", \"rotateSidesIn\");\n case \"rotateSlideIn\":\n return _getPageEffect(pageIndex, \"rotateSlideOut\", \"rotateSlideIn\");\n }\n}\n\n/// duration\nfunction _getPageDuration(\n pageIndex: number,\n currentDuration = 600,\n nextDuration = 600\n): number {\n switch (pageIndex) {\n case currentPageIndex:\n return currentDuration;\n case nextPageIndex:\n return nextDuration;\n default:\n return props.duration;\n }\n}\nfunction getPageDuration(\n routeEffect: SupportedRouteEffect,\n pageIndex: number\n): number {\n switch (routeEffect) {\n case \"moveFromLeftFadePrevFold\":\n case \"moveFromRightFadePrevFold\":\n case \"moveFromTopFadePrevFold\":\n case \"moveFromBottomFadePrevFold\":\n return _getPageDuration(pageIndex, 700, 700);\n case \"moveToLeftEasing\":\n case \"moveToRightEasing\":\n case \"moveToTopEasing\":\n case \"moveToBottomEasing\":\n case \"moveFromLeftPrevScaleToSmall\":\n case \"moveFromRightPrevScaleToSmall\":\n case \"moveFromTopPrevScaleToSmall\":\n case \"moveFromBottomPrevScaleToSmall\":\n return _getPageDuration(pageIndex, 700, 600);\n case \"scaleSmall\":\n return _getPageDuration(pageIndex, 700, 500);\n case \"scaleLarge\":\n return _getPageDuration(pageIndex, 500, 700);\n case \"scaleToLargePrevScaleToSmall\":\n return _getPageDuration(pageIndex, 400, 400);\n case \"scaleFromSmallPrevMoveToLeft\":\n case \"scaleFromSmallPrevMoveToRight\":\n case \"scaleFromSmallPrevMoveToTop\":\n case \"scaleFromSmallPrevMoveToBottom\":\n return _getPageDuration(pageIndex, 600, 700);\n case \"glueToLeft\":\n case \"glueToRight\":\n case \"glueToTop\":\n case \"glueToBottom\":\n return _getPageDuration(pageIndex, 800, 600);\n default:\n return props.duration;\n }\n}\n\n/// js ease\nlet timingFunction = props.timingFunction;\n// function _getPageEaseFunctionFromCSS(pageIndex: number): EasingFunction {\n// switch (pageIndex) {\n// case currentPageIndex:\n// case nextPageIndex:\n// return isForward()\n// ? CSSToJSEasing(timingFunction)\n// : reverseCSSToJSEasing(timingFunction);\n// default:\n// return props.easeFunction;\n// }\n// }\nfunction _getPageEaseFunction(pageIndex: number): EasingFunction {\n switch (pageIndex) {\n // case currentPageIndex:\n // return props.differentEaseFunction;\n // case nextPageIndex:\n default:\n return props.easeFunction;\n }\n}\nfunction getPageEaseFunction(\n routeEffect: SupportedRouteEffect,\n pageIndex: number\n): EasingFunction {\n /// css animation 和 js animation 混合\n // switch (routeEffect) {\n // case \"moveFromLeftFadePrevFold\":\n // case \"moveFromRightFadePrevFold\":\n // case \"moveFromTopFadePrevFold\":\n // case \"moveFromBottomFadePrevFold\":\n // timingFunction = \"ease\";\n // return _getPageEaseFunctionFromCSS(pageIndex);\n // default:\n // timingFunction = props.timingFunction;\n // break;\n // }\n /// js animation\n switch (routeEffect) {\n case \"moveToLeftEasing\":\n case \"moveToRightEasing\":\n case \"moveToTopEasing\":\n case \"moveToBottomEasing\":\n switch (pageIndex) {\n case currentPageIndex:\n timingFunction = isForward() ? \"ease-in-out\" : \"ease\";\n break;\n case nextPageIndex:\n default:\n timingFunction = isForward() ? \"ease\" : \"ease-in-out\";\n }\n return _getPageEaseFunction(pageIndex);\n default:\n timingFunction = props.timingFunction;\n return props.easeFunction;\n }\n}\n\n/// delay\nfunction _getPageDelay(pageIndex: number, delay = 300): number {\n switch (pageIndex) {\n case nextPageIndex:\n return props.delay + delay;\n default:\n return props.delay;\n }\n}\nfunction getPageDelay(\n routeEffect: SupportedRouteEffect,\n pageIndex: number\n): number {\n switch (routeEffect) {\n case \"flipToLeft\":\n case \"flipToRight\":\n case \"flipToTop\":\n case \"flipToBottom\":\n case \"newspaper\":\n return _getPageDelay(pageIndex, 500);\n case \"scaleSmall\":\n case \"scaleLarge\":\n return _getPageDelay(pageIndex, 300);\n case \"scaleToLargePrevScaleToSmall\":\n return _getPageDelay(pageIndex, 400);\n case \"glueToLeft\":\n case \"glueToRight\":\n case \"glueToTop\":\n case \"glueToBottom\":\n case \"rotateSidesIn\":\n return _getPageDelay(pageIndex, 200);\n case \"pullFromLeftPrevPush\":\n case \"pullFromRightPrevPush\":\n case \"pullFromTopPrevPush\":\n case \"pullFromBottomPrevPush\":\n return _getPageDelay(pageIndex, 180);\n default:\n return props.delay;\n }\n}\n\nlet currentZIndex = 2;\nlet nextZIndex = 2;\nconst sameOnTop = () => {\n currentZIndex = 2;\n nextZIndex = 2;\n};\nconst nextOnTop = () => {\n currentZIndex = 2;\n nextZIndex = 3;\n};\nconst currentOnTop = () => {\n currentZIndex = 3;\n nextZIndex = 2;\n};\nfunction setRunningStyle(pageIndex: number) {\n switch (props.effect) {\n case \"moveToLeftEasing\":\n case \"moveToRightEasing\":\n case \"moveToTopEasing\":\n case \"moveToBottomEasing\":\n currentOnTop();\n break;\n // case \"xxx\":\n // nextOnTop();\n // break;\n case \"scaleFromSmallPrevMoveToLeft\":\n case \"scaleFromSmallPrevMoveToRight\":\n case \"scaleFromSmallPrevMoveToTop\":\n case \"scaleFromSmallPrevMoveToBottom\":\n case \"rotateFall\":\n case \"rotateRoomLeftIn\":\n case \"rotateRoomRightIn\":\n case \"rotateRoomTopIn\":\n case \"rotateRoomBottomIn\":\n case \"rotateCubeLeftIn\":\n case \"rotateCubeRightIn\":\n case \"rotateCubeTopIn\":\n case \"rotateCubeBottomIn\":\n case \"rotateCarouselLeftIn\":\n case \"rotateCarouselRightIn\":\n case \"rotateCarouselTopIn\":\n case \"rotateCarouselBottomIn\":\n isForward() ? currentOnTop() : nextOnTop();\n break;\n case \"moveFromLeftPrevFade\":\n case \"moveFromRightPrevFade\":\n case \"moveFromTopPrevFade\":\n case \"moveFromBottomPrevFade\":\n case \"moveFromLeftPrevScaleToSmall\":\n case \"moveFromRightPrevScaleToSmall\":\n case \"moveFromTopPrevScaleToSmall\":\n case \"moveFromBottomPrevScaleToSmall\":\n case \"glueToLeft\":\n case \"glueToRight\":\n case \"glueToTop\":\n case \"glueToBottom\":\n isForward() ? nextOnTop() : currentOnTop();\n break;\n default:\n sameOnTop();\n break;\n }\n if (isValidPageIndex(currentPageIndex) && currentPageIndex == pageIndex) {\n pageElements[currentPageIndex].style.zIndex = `${currentZIndex}`;\n pageElements[currentPageIndex].style.visibility = \"visible\";\n }\n if (isValidPageIndex(nextPageIndex) && nextPageIndex == pageIndex) {\n pageElements[nextPageIndex].style.zIndex = `${nextZIndex}`;\n pageElements[nextPageIndex].style.visibility = \"visible\";\n }\n}\n\n/// css animation 与 js animation 有时间差\nfunction emitsEnd(pageIndex: number) {\n nextOnTop();\n if (pageIndex == currentPageIndex) {\n pageElements[currentPageIndex].style.zIndex = `${currentZIndex}`;\n pageElements[currentPageIndex].style.visibility = \"hidden\";\n }\n if (pageIndex == nextPageIndex) {\n pageElements[nextPageIndex].style.zIndex = `${nextZIndex}`;\n pageElements[nextPageIndex].style.visibility = \"visible\";\n onRouteCompletes.shift()?.();\n emits(\"routeChangeEnd\", currentPageIndex, nextPageIndex, pages.length);\n currentPageIndex = nextPageIndex;\n }\n}\n\nconst routesRef = ref();\nfunction renderPages(appendCount = 0, isReset = false) {\n if (!routesRef.value) {\n return;\n }\n let renderCount = 0;\n render(\n h(\n \"div\",\n {\n class: \"routes-pages\",\n style: {\n display: \"block\",\n width: \"100%\",\n height: \"100%\",\n overflow: \"hidden\",\n position: \"relative\"\n }\n },\n pages.map((page, index) => {\n /// 初始化\n const pageEffect = getPageEffect(props.effect, index);\n return h(\n \"div\",\n Object.assign(\n {\n class: \"routes-page\",\n style: {\n display: \"block\",\n width: \"100%\",\n height: \"100%\",\n overflow: \"hidden\",\n position: \"absolute\",\n top: \"0\",\n left: \"0\",\n backfaceVisibility: \"hidden\",\n transform: \"translate3d(0, 0, 0)\",\n transformStyle: \"preserve-3d\",\n visibility: currentPageIndex == index ? \"visible\" : \"hidden\",\n zIndex: isReset ? \"1\" : \"0\"\n }\n },\n page.pageKey\n ? { key: page.pageKey }\n : {\n /// 无 key 不会重复利用\n }\n ),\n h(\n Page,\n {\n // ...page.pageAttributes,\n effect: pageEffect,\n duration: getPageDuration(props.effect, index),\n easeFunction: getPageEaseFunction(props.effect, index),\n timingFunction: timingFunction,\n delay: getPageDelay(props.effect, index),\n onReady: (open, close) => {\n // console.log(\"onReady \", index);\n pageActions[index] = { open, close };\n /// 渲染结束\n if (++renderCount == appendCount) {\n onRenderComplete?.();\n emits(\"renderComplete\");\n }\n },\n onPageOpenStart: () => {\n // console.log(\"onPageOpenStart \", index);\n setRunningStyle(index);\n },\n onPageOpenEnd: () => {\n // console.log(\"onPageOpenEnd \", index);\n emitsEnd(index);\n },\n onPageCloseStart: () => {\n // console.log(\"onPageCloseStart \", index);\n setRunningStyle(index);\n },\n onPageCloseEnd: () => {\n // console.log(\"onPageCloseEnd \", index);\n emitsEnd(index);\n }\n },\n // () => h(page.component, page.attributes)\n {\n default: () =>\n page.component instanceof HTMLElement\n ? h(\n \"div\",\n {\n ...page.attributes,\n innerHTML: page.component.innerHTML /// ce 动态设置的 props 丢失 !\n }\n // elementsToVNodes(page.component)\n )\n : h(page.component, page.attributes, () => page.child)\n }\n )\n );\n })\n ),\n routesRef.value\n );\n pageElements = routesRef.value.children[0].children;\n}\n\nwatch(\n () => props.effect,\n () => {\n renderPages();\n }\n);\n\nfunction reset(resetPages: PageArgument[] = []) {\n pages = [...resetPages];\n pages.forEach((p) => {\n p.pageKey = p.pageKey || generateUUID();\n });\n onRenderComplete = () => {\n currentPageIndex = -1;\n goto(0);\n };\n renderPages(pages.length, true);\n}\n\nfunction push(page: PageArgument) {\n page.pageKey = page.pageKey || generateUUID();\n pages.push(page);\n onRenderComplete = () => {\n goto(pages.length - 1);\n };\n renderPages(1, pages.length == 1);\n}\n\nfunction pop() {\n if (pages.length <= 1) {\n return;\n }\n goto(pages.length - 2, () => {\n pages.splice(pages.length - 1, 1);\n /// pop 中 onRenderComplete 不会执行\n currentPageIndex = pages.length - 1;\n renderPages();\n });\n}\n\nfunction forward() {\n goto(currentPageIndex + 1);\n}\n\nfunction back() {\n goto(currentPageIndex - 1);\n}\n\nconst routeTaskQueue = new AsyncTaskQueue(1);\n\nfunction goto(index: number, cb?: () => void) {\n routeTaskQueue.addTask(\n () =>\n new Promise<void>((resolve) => {\n const onRouteComplete = () => {\n cb?.();\n resolve();\n };\n if (!isValidPageIndex(index)) {\n onRouteComplete();\n return;\n }\n nextPageIndex = index;\n if (nextPageIndex == currentPageIndex) {\n onRouteComplete();\n return;\n }\n /// 执行动画\n onRouteCompletes.push(onRouteComplete);\n /// 修改 page prop\n renderPages();\n emits(\n \"routeChangeStart\",\n currentPageIndex,\n nextPageIndex,\n pages.length\n );\n if (isForward()) {\n /// forward\n if (isValidPageIndex(currentPageIndex)) {\n pageActions[currentPageIndex].open();\n }\n if (isValidPageIndex(nextPageIndex)) {\n pageActions[nextPageIndex].open();\n }\n } else {\n /// back\n if (isValidPageIndex(currentPageIndex)) {\n pageActions[currentPageIndex].close();\n }\n if (isValidPageIndex(nextPageIndex)) {\n pageActions[nextPageIndex].close();\n }\n }\n })\n );\n}\n\ndefineExpose({\n reset,\n push,\n pop,\n forward,\n back,\n goto,\n currentPageIndex: () => currentPageIndex,\n totalPages: () => pages.length\n});\n</script>\n\n<template>\n <div\n class=\"routes\"\n ref=\"routesRef\"\n style=\"\n display: block;\n position: relative;\n width: 100%;\n height: 100%;\n overflow-x: hidden;\n overflow-y: hidden;\n \"\n ></div>\n</template>\n","<script setup lang=\"ts\">\nimport { watch, ref, computed } from \"vue\";\nimport { atomReadStyle, atomWriteStyle } from \"@zyzgroup/core-web\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: {},\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n visible?: boolean;\n global?: boolean;\n color?: string;\n }>(),\n {\n visible: false,\n global: true,\n color: \"rgba(0, 0, 0, 0.25)\"\n }\n);\n\nconst style = computed(\n () =>\n ({\n // FOUC: flash of unstyled content 未样式化文本闪烁\n display: props.visible ? \"block\" : \"none\",\n overflow: \"hidden\",\n \"background-color\": props.color,\n position: \"fixed\",\n \"z-index\": \"99999\",\n width: \"100%\",\n height: \"100%\",\n inset: \"0\"\n // 'overscroll-behavior-y': 'contain' /* avoid scroll chaining */,\n // 'scrollbar-gutter': 'stable',\n } as Record<string, string>)\n);\n\nconst el = ref();\n\nconst initDocumentOverflow =\n atomReadStyle(document.documentElement, \"overflow\") || \"visible\";\n\nlet initParentOverflow = \"\";\n\n// fixScroll\nwatch(\n () => props.visible,\n () => {\n if (props.global) {\n atomWriteStyle(\n document.documentElement,\n \"overflow\",\n props.visible ? \"hidden\" : initDocumentOverflow\n );\n } else {\n if (!initParentOverflow) {\n initParentOverflow =\n atomReadStyle(el.value.parentElement, \"overflow\") || \"visible\";\n }\n atomWriteStyle(\n el.value.parentElement,\n \"overflow\",\n props.visible ? \"hidden\" : initParentOverflow\n );\n }\n },\n { immediate: true }\n);\n\ndefineExpose({});\n</script>\n\n<template>\n <div\n ref=\"el\"\n class=\"overlay\"\n :style=\"style\"\n >\n <slot></slot>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, reactive, watch } from \"vue\";\nimport Overlay from \"./Overlay.vue\";\nimport Container from \"./Container.vue\";\nimport { Timeline, Easing, hasClass } from \"@zyzgroup/core-web\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: { Overlay, Container },\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n closeWhenClickOverlay?: boolean;\n directionFrom?: \"bottom\" | \"top\" | \"left\" | \"right\" | \"center\" | \"absolute\";\n absoluteLeft?: string;\n absoluteTop?: string;\n absoluteWidth?: string;\n absoluteHeight?: string;\n dur?: number;\n global?: boolean;\n overlayBgColor?: string;\n /// popValue 单位px, 如果不传,默认 slot width or height\n popValue?: number;\n }>(),\n {\n closeWhenClickOverlay: true,\n directionFrom: \"bottom\",\n absoluteLeft: \"0px\",\n absoluteTop: \"0px\",\n absoluteWidth: \"100%\",\n absoluteHeight: \"100%\",\n dur: 200,\n global: true\n }\n);\n\nconst emits = defineEmits<{\n (event: \"open\"): void;\n (event: \"close\"): void;\n (event: \"resize\", rect: DOMRect): void;\n (event: \"clickOverlay\"): void;\n}>();\n\nconst tl = new Timeline({ frameDuration: props.dur });\n\nconst popStyle = reactive<{\n width?: string;\n height?: string;\n top?: string;\n bottom?: string;\n left?: string;\n right?: string;\n transform?: string;\n position: string;\n // overflow: string;\n opacity?: String;\n transformOrigin?: string;\n willChange: string;\n}>({\n position: \"absolute\",\n // overflow: \"hidden\",\n opacity: \"1\",\n transformOrigin: \"center\",\n willChange: \"transform\" // 优化动画性能, 让浏览器提前为动画做准备,避免抖动或延迟\n});\n\nconst visible = ref(false);\n\nconst popType = ref<\"full\" | \"shrink\" | \"block\">(\"full\");\nwatch(\n () => [props.directionFrom, props.popValue],\n () => {\n tl.clear();\n const isShrink = !props.popValue;\n const popValue = props.popValue ? props.popValue : 100;\n const popUnit = props.popValue ? \"px\" : \"%\";\n switch (props.directionFrom) {\n case \"left\":\n popStyle.height = \"100%\";\n if (!isShrink) {\n popStyle.width = `${popValue}${popUnit}`;\n } else {\n delete popStyle.width;\n }\n popStyle.top = \"0\";\n popStyle.bottom = \"0\";\n delete popStyle.right;\n tl.addTween(\n {\n left: popValue\n },\n { left: 0 },\n {\n easeFunction: Easing.Quadratic.Out,\n onUpdate(data) {\n popStyle.left = `-${data.left}${popUnit}`;\n },\n onComplete\n }\n );\n break;\n case \"right\":\n popStyle.height = \"100%\";\n if (!isShrink) {\n popStyle.width = `${popValue}${popUnit}`;\n } else {\n delete popStyle.width;\n }\n popStyle.top = \"0\";\n popStyle.bottom = \"0\";\n delete popStyle.left;\n tl.addTween(\n {\n right: popValue\n },\n { right: 0 },\n {\n easeFunction: Easing.Quadratic.Out,\n onUpdate(data) {\n popStyle.right = `-${data.right}${popUnit}`;\n },\n onComplete\n }\n );\n break;\n case \"top\":\n popStyle.width = \"100%\";\n if (!isShrink) {\n popStyle.height = `${popValue}${popUnit}`;\n } else {\n delete popStyle.height;\n }\n popStyle.left = \"0\";\n popStyle.right = \"0\";\n delete popStyle.bottom;\n tl.addTween(\n {\n top: popValue\n },\n { top: 0 },\n {\n easeFunction: Easing.Quadratic.Out,\n onUpdate(data) {\n popStyle.top = `-${data.top}${popUnit}`;\n },\n onComplete\n }\n );\n break;\n case \"bottom\":\n popStyle.width = \"100%\";\n if (!isShrink) {\n popStyle.height = `${popValue}${popUnit}`;\n } else {\n delete popStyle.height;\n }\n popStyle.left = \"0\";\n popStyle.right = \"0\";\n delete popStyle.top;\n tl.addTween(\n {\n bottom: popValue\n },\n { bottom: 0 },\n {\n easeFunction: Easing.Quadratic.Out,\n onUpdate(data) {\n popStyle.bottom = `-${data.bottom}${popUnit}`;\n },\n onComplete\n }\n );\n break;\n case \"center\":\n delete popStyle.width;\n delete popStyle.height;\n popStyle.left = \"50%\";\n delete popStyle.right;\n popStyle.top = \"50%\";\n delete popStyle.bottom;\n tl.addTween(\n {\n scale: 0.8,\n opacity: 0\n },\n {\n scale: 1,\n opacity: 1\n },\n {\n easeFunction: Easing.Quadratic.Out,\n onUpdate(data) {\n popStyle.transform = `translate(-50%, -50%) scale(${data.scale})`;\n popStyle.opacity = `${data.opacity}`;\n },\n onComplete\n }\n );\n break;\n case \"absolute\":\n popStyle.width = props.absoluteWidth;\n popStyle.height = props.absoluteHeight;\n popStyle.left = props.absoluteLeft;\n popStyle.top = props.absoluteTop;\n delete popStyle.right;\n delete popStyle.bottom;\n break;\n }\n\n switch (props.directionFrom) {\n case \"center\":\n popType.value = \"shrink\";\n popStyle.transform = \"translate(-50%, -50%)\";\n break;\n case \"absolute\":\n popType.value = \"shrink\";\n delete popStyle.transform;\n delete popStyle.opacity;\n break;\n default:\n popType.value = \"full\";\n delete popStyle.transform;\n delete popStyle.opacity;\n break;\n }\n if (isShrink) {\n popType.value = \"shrink\";\n }\n },\n { immediate: true }\n);\n\nwatch(\n () => props.absoluteLeft,\n () => {\n switch (props.directionFrom) {\n case \"absolute\":\n popStyle.left = props.absoluteLeft;\n break;\n }\n }\n);\n\nwatch(\n () => props.absoluteTop,\n () => {\n switch (props.directionFrom) {\n case \"absolute\":\n popStyle.top = props.absoluteTop;\n break;\n }\n }\n);\n\nwatch(\n () => props.absoluteWidth,\n () => {\n switch (props.directionFrom) {\n case \"absolute\":\n popStyle.width = props.absoluteWidth;\n break;\n }\n }\n);\n\nwatch(\n () => props.absoluteHeight,\n () => {\n switch (props.directionFrom) {\n case \"absolute\":\n popStyle.height = props.absoluteHeight;\n break;\n }\n }\n);\n\nconst resize = (controller) => {\n emits(\"resize\", controller.rect);\n};\n\nlet action: \"open\" | \"close\" = \"open\";\nfunction onComplete() {\n if (action == \"open\") {\n emits(\"open\");\n } else {\n visible.value = false;\n emits(\"close\");\n }\n}\n\nfunction open() {\n visible.value = true;\n action = \"open\";\n tl.play();\n}\n\nfunction close() {\n action = \"close\";\n switch (props.directionFrom) {\n case \"absolute\":\n onComplete();\n break;\n default:\n tl.reverse();\n break;\n }\n}\n\nfunction clickOverlay(e: Event) {\n // console.log(e.target);\n // console.log(popRef.value.contains(e.target));\n // console.log(hasClass(e.target as HTMLElement, \"pop-content\"));\n const className =\n props.directionFrom == \"absolute\" &&\n props.absoluteWidth == \"100%\" &&\n props.absoluteHeight == \"100%\"\n ? \"pop-content\"\n : \"pop\";\n if (e.target && hasClass(e.target as HTMLElement, className)) {\n if (props.closeWhenClickOverlay) {\n close();\n }\n emits(\"clickOverlay\");\n }\n}\n\ndefineExpose({ open, close });\n</script>\n\n<template>\n <Overlay\n :visible=\"visible\"\n :global=\"props.global\"\n :color=\"props.overlayBgColor\"\n >\n <div\n class=\"pop\"\n style=\"display: block; position: relative; width: 100%; height: 100%\"\n @click=\"clickOverlay\"\n >\n <Container\n class=\"pop-content\"\n :type=\"popType\"\n :style=\"popStyle\"\n @ready=\"resize\"\n @update=\"resize\"\n >\n <slot><div></div></slot>\n </Container>\n </div>\n </Overlay>\n</template>\n","<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport {\n useLoadImage,\n Timeline,\n ImageDisplayMode,\n computeImageDisplayRect,\n getViewportSize,\n Easing\n} from \"@zyzgroup/core-web\";\nimport Container from \"./Container.vue\";\nimport Pop from \"./Pop.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n name: \"Image\",\n customOptions: { Container, Pop },\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n src: string;\n mode?: ImageDisplayMode;\n dur?: number;\n bgColor?: string;\n openImageDetailWhenClick?: boolean;\n }>(),\n {\n mode: \"scaleToFill\",\n dur: 300,\n bgColor: \"transparent\",\n openImageDetailWhenClick: true\n }\n);\n\nconst emits = defineEmits<{\n (event: \"settled\", x: number, y: number, width: number, height: number): void;\n}>();\n\nconst tl = new Timeline({\n frameDuration: props.dur\n});\n\nconst popX = ref(0);\nconst popY = ref(0);\nconst popWidth = ref(0);\nconst popHeight = ref(0);\n\nconst finalX = ref(0);\nconst finalY = ref(0);\nconst finalWidth = ref(0);\nconst finalHeight = ref(0);\n\nconst isCORS = ref(true);\n\nconst sourceWidth = ref(0);\nconst sourceHeight = ref(0);\n/// 初始化获取图片信息\nuseLoadImage(props.src)\n .then((info: { width: number; height: number; aspectRatio: number }) => {\n sourceWidth.value = info.width;\n sourceHeight.value = info.height;\n setImageWidthHeight();\n })\n .catch(() => {\n isCORS.value = false;\n });\n\nconst wrapWidth = ref(0);\nconst wrapHeight = ref(0);\nconst outter = (controller) => {\n wrapWidth.value = controller.rect.width;\n wrapHeight.value = controller.rect.height;\n setImageWidthHeight();\n};\n\nconst showWidth = ref(0);\nconst showHeight = ref(0);\nfunction setImageWidthHeight() {\n if (\n !wrapWidth.value ||\n !wrapHeight.value ||\n !sourceWidth.value ||\n !sourceHeight.value\n ) {\n return;\n }\n const wrapImageRect = computeImageDisplayRect(\n props.mode,\n sourceWidth.value,\n sourceHeight.value,\n wrapWidth.value,\n wrapHeight.value\n );\n showWidth.value = wrapImageRect.width;\n showHeight.value = wrapImageRect.height;\n\n const { width: viewportWidth, height: viewportHeight } = getViewportSize();\n const viewportImageRect = computeImageDisplayRect(\n \"aspectFit\",\n sourceWidth.value,\n sourceHeight.value,\n viewportWidth,\n viewportHeight\n );\n finalWidth.value = viewportImageRect.width;\n finalHeight.value = viewportImageRect.height;\n finalX.value = (viewportWidth - finalWidth.value) / 2;\n finalY.value = (viewportHeight - finalHeight.value) / 2;\n}\n\nconst inner = (controller) => {\n emits(\"settled\", controller.rect.x, controller.rect.y, controller.rect.width, controller.rect.height);\n};\n\n// const app = inject(\"app\", null) as unknown as App<Element>;\n\nlet isOpenPop = false;\nconst imageRef = ref();\nconst popRef = ref();\nasync function clickSourceImage() {\n if (!props.openImageDetailWhenClick) {\n return;\n }\n const showSize = await imageRef.value.getRect();\n tl.clear();\n tl.addTween(\n {\n left: showSize.x,\n top: showSize.y,\n width: showSize.width,\n height: showSize.height\n },\n {\n left: finalX.value,\n top: finalY.value,\n width: finalWidth.value,\n height: finalHeight.value\n },\n {\n easeFunction: Easing.Quadratic.Out,\n onUpdate(data) {\n popX.value = data.left;\n popY.value = data.top;\n popWidth.value = data.width;\n popHeight.value = data.height;\n },\n onComplete() {\n if (isOpenPop) {\n popRef.value.close();\n }\n isOpenPop = !isOpenPop;\n }\n }\n );\n if (!isOpenPop) {\n popRef.value.open();\n tl.play();\n }\n}\n\nfunction clickOverlay() {\n if (isOpenPop) {\n tl.reverse();\n }\n}\n\ndefineExpose({});\n</script>\n\n<template>\n <Container\n class=\"image\"\n type=\"full\"\n :style=\"{ backgroundColor: props.bgColor }\"\n @ready=\"outter\"\n @update=\"outter\"\n @click=\"clickSourceImage\"\n >\n <Container\n v-if=\"isCORS\"\n class=\"image-inner\"\n ref=\"imageRef\"\n type=\"shrink\"\n :style=\"{\n width: showWidth + 'px',\n height: showHeight + 'px',\n backgroundImage: `url(${props.src})`,\n backgroundSize: `${showWidth}px ${showHeight}px`\n }\"\n @ready=\"inner\"\n @update=\"inner\"\n ></Container>\n <Container v-if=\"!isCORS\" type=\"shrink\">\n <img :src=\"props.src\" :style=\"{display: 'block', objectFit: 'contain'}\"></img>\n </Container>\n <Pop\n ref=\"popRef\"\n direction-from=\"absolute\"\n :absolute-left=\"`${popX}px`\"\n :absolute-top=\"`${popY}px`\"\n :absolute-width=\"`${popWidth}px`\"\n :absolute-height=\"`${popHeight}px`\"\n :close-when-click-overlay=\"false\"\n @clickOverlay=\"clickOverlay\"\n >\n <div\n class=\"image-pop\"\n :style=\"{\n width: '100%',\n height: '100%',\n backgroundImage: `url(${props.src})`,\n backgroundSize: '100% 100%'\n }\"\n ></div>\n </Pop>\n </Container>\n</template>\n\n<style scoped>\n.image {\n overflow: hidden;\n display: flex !important;\n justify-content: center;\n align-items: center;\n}\n.image-inner,\n.image-pop {\n background-repeat: no-repeat;\n background-position: center center;\n /* background-size: contain; */\n}\n/*\n.none {\n object-fit: none;\n}\n.fill {\n object-fit: fill;\n}\n.cover {\n object-fit: cover;\n}\n.contain {\n object-fit: contain;\n}\n.scale-down {\n object-fit: scale-down;\n}\n*/\n</style>\n","<script setup lang=\"ts\">\nimport { ref, h } from \"vue\";\nimport { ElementEventBusController, hasClass } from \"@zyzgroup/core-web\";\nimport Routes, { SupportedRouteEffect } from \"./Routes.vue\";\nimport Pop from \"./Pop.vue\";\nimport Image from \"./Image.vue\";\nimport Container from \"./Container.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: { Image, Container, Routes },\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n urls: string[];\n effect?: SupportedRouteEffect;\n }>(),\n {\n urls: () => [],\n effect: \"moveToLeftFade\"\n }\n);\n\nconst emits = defineEmits<{\n // (event: \"click\"): void;\n}>();\n\nconst currentIndex = ref(0);\nfunction routeChangeEnd(_: number, toPageIndex: number) {\n currentIndex.value = toPageIndex;\n}\n\nconst routesRef = ref();\nconst ready = (controller: ElementEventBusController) => {\n controller.eb.on(\"panLeft\", () => {\n routesRef.value?.forward();\n });\n controller.eb.on(\"panRight\", () => {\n routesRef.value?.back();\n });\n routesRef.value.reset(\n props.urls.map((url) => ({\n component: h(Image, {\n mode: \"aspectFit\",\n src: url,\n openImageDetailWhenClick: false\n })\n }))\n );\n};\n\nconst popRef = ref();\nfunction open() {\n popRef.value?.open();\n}\nfunction close() {\n popRef.value?.close();\n}\n\nconst checkClose = (e: Event) => {\n // console.log(e.target);\n if (e.target && hasClass(e.target as HTMLElement, \"image\")) {\n close();\n }\n};\n\ndefineExpose({ open, close });\n</script>\n\n<template>\n <Pop\n ref=\"popRef\"\n directionFrom=\"absolute\"\n @click=\"checkClose\"\n >\n <div\n v-if=\"props.urls.length > 1\"\n style=\"\n position: absolute;\n top: 30px;\n left: 50%;\n transform: translate(-50%, 0);\n color: #ffffff;\n font-size: 1em;\n z-index: 98;\n \"\n >\n {{ currentIndex + 1 }} / {{ props.urls.length }}\n </div>\n <Container\n style=\"\n position: absolute;\n top: 50%;\n transform: translate(0, -50%);\n width: 100%;\n height: 100%;\n z-index: 97;\n \"\n @ready=\"ready\"\n >\n <Routes\n ref=\"routesRef\"\n :effect=\"props.effect\"\n @routeChangeEnd=\"routeChangeEnd\"\n />\n </Container>\n </Pop>\n</template>\n","<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport Pop from \"../Pop.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: { Pop },\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n tel: string;\n }>(),\n {}\n);\n\nconst emits = defineEmits<{}>();\n\nconst el = ref();\nfunction open() {\n el.value?.open();\n}\nfunction close() {\n el.value?.close();\n}\ndefineExpose({ open, close });\n</script>\n\n<template>\n <Pop\n directionFrom=\"bottom\"\n :closeWhenClickOverlay=\"false\"\n ref=\"el\"\n >\n <div class=\"pop-tel\">\n <div>{{ tel }}</div>\n <a\n class=\"pop-tel-call\"\n @click=\"close\"\n :href=\"`tel:${tel}`\"\n >\n 呼叫\n </a>\n <div\n class=\"pop-tel-cancel\"\n @click=\"close\"\n >\n 取消\n </div>\n </div>\n </Pop>\n</template>\n\n<style scoped>\n.pop-tel {\n background-color: #ffffff;\n color: #333333;\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n}\n.pop-tel > div,\n.pop-tel-call {\n display: block;\n height: 64px;\n line-height: 64px;\n font-size: 18px;\n text-align: center;\n}\n.pop-tel-cancel,\n.pop-tel-call {\n border-top: 1px solid #e6e6e6;\n}\n.pop-tel > div:nth-child(1) {\n color: #999999;\n}\n.pop-tel-call {\n color: #333333;\n font-weight: bold;\n}\n.pop-tel-call,\n.pop-tel-call:link,\n.pop-tel-call:visited,\n.pop-tel-call:hover,\n.pop-tel-call:active {\n /* 禁止长按链接与图片弹出菜单 */\n -webkit-touch-callout: none;\n text-decoration: none;\n}\n.pop-tel-call:focus {\n outline: none;\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { ref } from \"vue\";\nimport { useRouter } from \"../../hooks\";\nimport LayoutPage from \"../layout/LayoutPage.vue\";\nimport Footer from \"./Footer.vue\";\nimport PlateDisplay from \"../PlateDisplay.vue\";\nimport ImageView from \"../ImageView.vue\";\nimport ViewDocument from \"../form/ViewDocument.vue\";\nimport PopTel from \"../pop/PopTel.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: {\n LayoutPage,\n Footer,\n PlateDisplay,\n ViewDocument,\n PopTel,\n ImageView\n },\n inheritAttrs: true\n});\n\nconst router = useRouter();\n\nfunction viewDocument() {\n router.push({\n name: \"view-document\",\n params: {\n title: \"收费标准\",\n src: encodeURIComponent(\n \"https://erichd2.oss-cn-shanghai.aliyuncs.com/0000/0002/2159\"\n )\n }\n });\n}\n\nconst popTelEl = ref();\nfunction call() {\n popTelEl.value?.open();\n}\n\nconst imageViewEl = ref();\nfunction viewPhotos() {\n imageViewEl.value?.open();\n}\n</script>\n\n<template>\n <LayoutPage class=\"lot\">\n <div class=\"lot-main-bg\"></div>\n <div class=\"lot-main\">\n <div>若临测试泊位机器人停车场</div>\n <div>\n <div></div>\n <div>编号</div>\n <div></div>\n </div>\n <div>\n <span>103</span>\n <span>002</span>\n </div>\n <div>\n <div>停车场主页</div>\n <div>更换附近车位</div>\n <div @click=\"viewDocument\">收费标准</div>\n </div>\n <div class=\"lot-detail\">\n <div>\n <div>待支付</div>\n <div class=\"red\">¥0.01</div>\n </div>\n <div>\n <div>已支付</div>\n <div>¥0.01</div>\n </div>\n <div>\n <div>订单编号</div>\n <div>33333333333</div>\n </div>\n <div>\n <div>开始时间</div>\n <div>2025-04-08 09:41:25</div>\n </div>\n <div>\n <div>停车时长</div>\n <div>51小时53分钟15秒</div>\n </div>\n <div>\n <div>优惠券</div>\n <div class=\"red\">1分钟</div>\n </div>\n <div>\n <div>优惠信息</div>\n <div class=\"red\">xxxx</div>\n </div>\n <!-- <div>\n <div>包月开始时间</div>\n <div>2025-04-08 09:41:25</div>\n </div>\n <div>\n <div>包月结束时间</div>\n <div>2025-04-08 09:41:25</div>\n </div> -->\n <div class=\"lot-detail-gap\"></div>\n <div>\n <div>车牌号</div>\n <div class=\"bold\">\n <PlateDisplay\n plate=\"苏U77777\"\n plate-type=\"b\"\n ></PlateDisplay>\n </div>\n </div>\n <div>\n <div>现场照片</div>\n <div @click=\"viewPhotos\">查看</div>\n </div>\n </div>\n <div class=\"lot-actions\">\n <div @click=\"call\">联系客服</div>\n </div>\n </div>\n <template #footer><Footer></Footer></template>\n <template #global>\n <PopTel\n tel=\"15851575410\"\n ref=\"popTelEl\"\n ></PopTel>\n <ImageView\n :urls=\"[\n 'https://erichd2.oss-cn-shanghai.aliyuncs.com/0000/0002/2159',\n 'https://erichd2.oss-cn-shanghai.aliyuncs.com/0000/0002/2159'\n ]\"\n ref=\"imageViewEl\"\n ></ImageView>\n </template>\n </LayoutPage>\n</template>\n\n<style scoped>\n.lot-main-bg {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n height: 5.2rem;\n border-bottom-left-radius: 2rem 0.5rem;\n border-bottom-right-radius: 2rem 0.5rem;\n background: linear-gradient(180deg, #5a82f0 0%, #66b3ff 100%);\n}\n.lot-main {\n position: relative;\n z-index: 2;\n width: 100%;\n overflow: hidden;\n box-sizing: border-box;\n line-height: 1;\n color: #ffffff;\n padding: 0 0.3rem;\n margin-bottom: 0.3rem;\n text-align: center;\n}\n.lot-main > div:nth-child(1) {\n font-size: 0.32rem;\n padding-top: 0.4rem;\n word-break: break-all;\n font-weight: bold;\n}\n.lot-main > div:nth-child(2) > div:nth-child(1) {\n width: 2.4rem;\n height: 0.04rem;\n background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, #ffffff 100%);\n}\n.lot-main > div:nth-child(2) > div:nth-child(3) {\n width: 2.4rem;\n height: 0.04rem;\n background: linear-gradient(90deg, #ffffff 0%, rgba(255, 255, 255, 0) 100%);\n}\n.lot-main > div:nth-child(2) > div:nth-child(2) {\n width: 1rem;\n font-size: 0.28rem;\n line-height: 0.32rem;\n}\n.lot-main > div:nth-child(2) {\n display: flex;\n align-items: center;\n margin: 0.28rem auto 0;\n width: 4.8rem;\n position: relative;\n}\n.lot-main > div:nth-child(3) {\n font-family: \"D-DINExp-Bold-number\";\n margin-top: 0.12rem;\n font-size: 0.8rem;\n letter-spacing: 0.06rem;\n}\n.lot-main > div:nth-child(3) > span + span {\n margin-left: 0.3rem;\n}\n.lot-main > div:nth-child(4) {\n display: flex;\n justify-content: space-between;\n font-size: 0.28rem;\n line-height: 0.28rem;\n margin: 0.3rem 0;\n}\n.lot-main > div:nth-child(4) > div {\n flex: 1 1 auto;\n text-align: center;\n}\n.lot-main > div:nth-child(4) > div + div {\n border-left: 1px solid rgba(255, 255, 255, 0.4);\n}\n.lot-detail {\n position: relative;\n background: #ffffff;\n box-shadow: 0 0.04rem 0.1rem rgba(0, 0, 0, 0.1);\n border-radius: 0.08rem;\n padding: 0 0.3rem 0.1rem;\n font-size: 0.28rem;\n color: #666666;\n}\n.lot-detail > div {\n line-height: 0.4rem;\n margin: 0.2rem auto;\n display: flex;\n justify-content: space-between;\n}\n.lot-detail > div:nth-child(1) {\n border-bottom: 1px solid var(--yz-xg-border-color);\n line-height: 0.88rem;\n margin: 0 0 0.2rem;\n font-weight: bold;\n}\n.lot-detail > div:nth-child(1) > div:nth-child(2) {\n font-size: 0.4rem;\n}\n.lot-detail > div > div:nth-child(1) {\n flex: 0 0 auto;\n padding-right: 0.2rem;\n}\n.lot-detail > div > div:nth-child(2) {\n color: #333333;\n}\n.lot-detail-gap {\n border-top: 1px solid var(--yz-xg-border-color);\n}\n.lot-actions {\n margin: 0.2rem 0;\n background: #ffffff;\n box-shadow: 0px 0.04rem 0.1rem rgba(0, 0, 0, 0.1);\n border-radius: 0.08rem;\n display: flex;\n align-items: center;\n font-size: 0.28rem;\n}\n.lot-actions > div {\n flex: 1;\n line-height: 0.88rem;\n position: relative;\n cursor: pointer;\n color: var(--yz-xg-primary);\n text-align: center;\n font-weight: 700;\n}\n</style>\n","<template>\n <div\n class=\"resize-observer\"\n tabindex=\"-1\"\n />\n</template>\n\n<script>\nimport { isIE } from \"@zyzgroup/core-web\";\n\nfunction initCompat() {\n if (!initCompat.init) {\n initCompat.init = true;\n }\n}\n\nexport default {\n name: \"ResizeObserver\",\n\n props: {\n emitOnMount: {\n type: Boolean,\n default: true\n },\n ignoreWidth: {\n type: Boolean,\n default: false\n },\n ignoreHeight: {\n type: Boolean,\n default: false\n }\n },\n\n mounted() {\n initCompat();\n this.$nextTick(() => {\n this._w = this.$el.offsetWidth;\n this._h = this.$el.offsetHeight;\n if (this.emitOnMount) {\n this.emitSize();\n }\n });\n const object = document.createElement(\"object\");\n this._resizeObject = object;\n object.setAttribute(\"aria-hidden\", \"true\");\n object.setAttribute(\"tabindex\", -1);\n object.onload = this.addResizeHandlers;\n object.type = \"text/html\";\n if (isIE) {\n this.$el.appendChild(object);\n }\n object.data = \"about:blank\";\n if (!isIE) {\n this.$el.appendChild(object);\n }\n },\n\n beforeDestroy() {\n this.removeResizeHandlers();\n },\n\n methods: {\n compareAndNotify() {\n if (\n (!this.ignoreWidth && this._w !== this.$el.offsetWidth) ||\n (!this.ignoreHeight && this._h !== this.$el.offsetHeight)\n ) {\n this._w = this.$el.offsetWidth;\n this._h = this.$el.offsetHeight;\n this.emitSize();\n }\n },\n\n emitSize() {\n this.$emit(\"resize\", {\n width: this._w,\n height: this._h\n });\n },\n\n addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener(\n \"resize\",\n this.compareAndNotify\n );\n this.compareAndNotify();\n },\n\n removeResizeHandlers() {\n if (this._resizeObject && this._resizeObject.onload) {\n if (!isIE && this._resizeObject.contentDocument) {\n this._resizeObject.contentDocument.defaultView.removeEventListener(\n \"resize\",\n this.compareAndNotify\n );\n }\n this.$el.removeChild(this._resizeObject);\n this._resizeObject.onload = null;\n this._resizeObject = null;\n }\n }\n }\n};\n</script>\n\n<style scoped>\n.resize-observer {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n border: none;\n background-color: transparent;\n pointer-events: none;\n display: block;\n overflow: hidden;\n opacity: 0;\n}\n\n/* .resize-observer >>> object */\n.resize-observer :deep(object) {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n display: block;\n overflow: hidden;\n pointer-events: none;\n z-index: -1;\n}\n</style>\n","/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nvar Stats = function () {\n var mode = 0;\n\n var container = document.createElement(\"div\");\n container.style.cssText =\n \"position:fixed;top:0;right:0;cursor:pointer;opacity:0.9;z-index:10000\";\n container.addEventListener(\n \"click\",\n function (event) {\n event.preventDefault();\n showPanel(++mode % container.children.length);\n },\n false\n );\n\n //\n\n function addPanel(panel) {\n container.appendChild(panel.dom);\n return panel;\n }\n\n function showPanel(id) {\n for (var i = 0; i < container.children.length; i++) {\n container.children[i].style.display = i === id ? \"block\" : \"none\";\n }\n\n mode = id;\n }\n\n //\n\n var beginTime = (performance || Date).now(),\n prevTime = beginTime,\n frames = 0;\n\n var fpsPanel = addPanel(new Stats.Panel(\"FPS\", \"#0ff\", \"#002\"));\n var msPanel = addPanel(new Stats.Panel(\"MS\", \"#0f0\", \"#020\"));\n\n if (self.performance && self.performance.memory) {\n var memPanel = addPanel(new Stats.Panel(\"MB\", \"#f08\", \"#201\"));\n }\n\n showPanel(0);\n\n return {\n REVISION: 16,\n\n dom: container,\n\n addPanel: addPanel,\n showPanel: showPanel,\n\n begin: function () {\n beginTime = (performance || Date).now();\n },\n\n end: function () {\n frames++;\n\n var time = (performance || Date).now();\n\n msPanel.update(time - beginTime, 200);\n\n if (time > prevTime + 1000) {\n fpsPanel.update((frames * 1000) / (time - prevTime), 100);\n\n prevTime = time;\n frames = 0;\n\n if (memPanel) {\n var memory = performance.memory;\n memPanel.update(\n memory.usedJSHeapSize / 1048576,\n memory.jsHeapSizeLimit / 1048576\n );\n }\n }\n\n return time;\n },\n\n update: function () {\n beginTime = this.end();\n },\n\n // Backwards Compatibility\n\n domElement: container,\n setMode: showPanel\n };\n};\n\nStats.Panel = function (name, fg, bg) {\n var min = Infinity,\n max = 0,\n round = Math.round;\n var PR = round(window.devicePixelRatio || 1);\n\n var WIDTH = 80 * PR,\n HEIGHT = 48 * PR,\n TEXT_X = 3 * PR,\n TEXT_Y = 2 * PR,\n GRAPH_X = 3 * PR,\n GRAPH_Y = 15 * PR,\n GRAPH_WIDTH = 74 * PR,\n GRAPH_HEIGHT = 30 * PR;\n\n var canvas = document.createElement(\"canvas\");\n canvas.width = WIDTH;\n canvas.height = HEIGHT;\n canvas.style.cssText = \"width:80px;height:48px\";\n\n var context = canvas.getContext(\"2d\");\n context.font = \"bold \" + 9 * PR + \"px Helvetica,Arial,sans-serif\";\n context.textBaseline = \"top\";\n\n context.fillStyle = bg;\n context.fillRect(0, 0, WIDTH, HEIGHT);\n\n context.fillStyle = fg;\n context.fillText(name, TEXT_X, TEXT_Y);\n context.fillRect(GRAPH_X, GRAPH_Y, GRAPH_WIDTH, GRAPH_HEIGHT);\n\n context.fillStyle = bg;\n context.globalAlpha = 0.9;\n context.fillRect(GRAPH_X, GRAPH_Y, GRAPH_WIDTH, GRAPH_HEIGHT);\n\n return {\n dom: canvas,\n\n update: function (value, maxValue) {\n min = Math.min(min, value);\n max = Math.max(max, value);\n\n context.fillStyle = bg;\n context.globalAlpha = 1;\n context.fillRect(0, 0, WIDTH, GRAPH_Y);\n context.fillStyle = fg;\n context.fillText(\n round(value) + \" \" + name + \" (\" + round(min) + \"-\" + round(max) + \")\",\n TEXT_X,\n TEXT_Y\n );\n\n context.drawImage(\n canvas,\n GRAPH_X + PR,\n GRAPH_Y,\n GRAPH_WIDTH - PR,\n GRAPH_HEIGHT,\n GRAPH_X,\n GRAPH_Y,\n GRAPH_WIDTH - PR,\n GRAPH_HEIGHT\n );\n\n context.fillRect(GRAPH_X + GRAPH_WIDTH - PR, GRAPH_Y, PR, GRAPH_HEIGHT);\n\n context.fillStyle = bg;\n context.globalAlpha = 0.9;\n context.fillRect(\n GRAPH_X + GRAPH_WIDTH - PR,\n GRAPH_Y,\n PR,\n round((1 - value / maxValue) * GRAPH_HEIGHT)\n );\n }\n };\n};\n\nexport { Stats as default };\n","<script setup>\nimport { ref, onMounted } from \"vue\";\nimport { requestAnimationFrameCycle } from \"@zyzgroup/core-web\";\nimport Stats from \"@lib/third/stats/stats.js\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: {},\n inheritAttrs: true\n});\n\nconst containerRef = ref();\n\nonMounted(() => {\n const stats = new Stats();\n stats.domElement.style.margin = \"1em\";\n containerRef.value.appendChild(stats.domElement);\n requestAnimationFrameCycle(() => {\n stats.update();\n return true;\n });\n});\n\ndefineExpose({});\n</script>\n\n<template>\n <div ref=\"containerRef\"></div>\n</template>\n","<script setup lang=\"tsx\">\nconst props = withDefaults(\n defineProps<{\n width?: string;\n height?: string;\n color?: string;\n }>(),\n {\n width: \"1em\",\n color: \"#cccccc\"\n }\n);\n</script>\n\n<template>\n <svg\n viewBox=\"0 0 20 20\"\n :width=\"props.width\"\n :height=\"props.height || props.width\"\n style=\"transform-origin: center\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z\"\n clip-rule=\"evenodd\"\n :fill=\"props.color\"\n />\n </svg>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, watchEffect, onMounted, nextTick } from \"vue\";\nimport Container from \"./Container.vue\";\nimport SVGDown from \"./svg/SVGDown.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: { Container, SVGDown },\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n initOpen?: boolean;\n titleHeight?: string;\n bgColor?: string;\n fontColor?: string;\n borderColor?: string;\n borderRadius?: string;\n padding?: string;\n duration?: number;\n }>(),\n {\n initOpen: false,\n titleHeight: \"44px\",\n bgColor: \"#efefef\",\n fontColor: \"#333333\",\n borderColor: \"#dddddd\",\n borderRadius: \"4px\",\n padding: \"1em\",\n duration: 500\n }\n);\n\nconst emits = defineEmits<{\n (event: \"open\"): void;\n (event: \"close\"): void;\n}>();\n\nconst content = ref();\nconst contentMaxHeight = ref(Number.MAX_SAFE_INTEGER + \"px\");\nconst open = ref(true);\n\nonMounted(() => {\n nextTick(() => {\n contentMaxHeight.value =\n content.value.getBoundingClientRect().height + \"px\";\n open.value = props.initOpen;\n });\n});\n\nfunction toggleOpen() {\n open.value = !open.value;\n if (open.value) {\n emits(\"open\");\n } else {\n emits(\"close\");\n }\n}\n\nconst rotate = ref(0);\nwatchEffect(() => {\n rotate.value = open.value ? 0 : -90;\n});\n\ndefineExpose({});\n</script>\n\n<template>\n <Container>\n <div\n class=\"accordion\"\n :style=\"{\n background: props.bgColor,\n color: props.fontColor,\n borderRadius: props.borderRadius\n }\"\n >\n <div\n class=\"accordion-title\"\n @click=\"toggleOpen\"\n :style=\"{\n height: props.titleHeight,\n lineHeight: props.titleHeight,\n margin: `0 ${props.padding}`,\n transitionDelay: `${open ? 0 : props.duration}ms`,\n borderBottom: `${open ? 1 : 0}px solid ${props.borderColor}`\n }\"\n >\n <slot name=\"title\">title</slot>\n <SVGDown\n class=\"arrow\"\n :style=\"{\n transition: `transform ${props.duration}ms ease-in-out`,\n transform: `rotate(${rotate}deg)`\n }\"\n ></SVGDown>\n </div>\n\n <div\n class=\"accordion-content\"\n ref=\"content\"\n :style=\"{\n margin: `0 ${props.padding}`,\n transition: `max-height ${props.duration}ms ease-in-out`,\n maxHeight: open ? contentMaxHeight : '0'\n }\"\n >\n <slot name=\"content\"></slot>\n </div>\n </div>\n </Container>\n</template>\n\n<style scoped>\n.accordion {\n width: 100%;\n font-size: 1em;\n position: relative;\n overflow: hidden;\n}\n.accordion-title {\n display: flex;\n justify-content: space-between;\n align-items: center;\n user-select: none;\n cursor: pointer;\n}\n.accordion-content {\n word-break: break-all;\n overflow: hidden;\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { ref } from \"vue\";\n\nconst props = withDefaults(\n defineProps<{\n bgColor?: string;\n progressColor?: string;\n borderColor?: string;\n borderRadius?: string;\n showText?: boolean;\n }>(),\n {\n bgColor: \"#efefef\",\n progressColor: \"#a0dde9\",\n borderColor: \"#eeeeee\",\n borderRadius: \"4px\",\n showText: false\n }\n);\n\nconst emits = defineEmits<{\n (event: \"complete\", currentPercent: number): void;\n}>();\n\nconst barPercent = ref(0);\n\nfunction goto(toValue: number) {\n barPercent.value = Math.min(Math.max(0, toValue), 100);\n}\n\ndefineExpose({ goto });\n</script>\n\n<template>\n <div\n class=\"bar\"\n :style=\"{\n border: `1px solid ${props.borderColor}`,\n borderRadius: props.borderRadius,\n backgroundColor: props.bgColor\n }\"\n >\n <div\n class=\"bar-inner\"\n :style=\"{ width: barPercent + '%', backgroundColor: props.progressColor }\"\n >\n {{ props.showText ? barPercent + \"%\" : \"\" }}\n </div>\n </div>\n</template>\n\n<style scoped>\n.bar {\n position: relative;\n overflow: hidden;\n width: 100%;\n height: 100%;\n}\n.bar-inner {\n position: absolute;\n top: 0;\n left: 0;\n width: 0;\n height: 100%;\n text-align: center;\n font-size: 12px;\n display: flex;\n justify-content: center;\n align-items: center;\n color: #666666;\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { ref, onUnmounted } from \"vue\";\nimport {\n useScroll$,\n getVerticalScrollPercentInPage,\n getDocumentElementPosition\n} from \"@zyzgroup/core-web\";\nimport ProgressBar from \"./ProgressBar.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: { ProgressBar },\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n bgColor?: string;\n progressColor?: string;\n borderColor?: string;\n borderRadius?: string;\n duringTimeGap?: number;\n showText?: boolean;\n }>(),\n {\n bgColor: \"#efefef\",\n progressColor: \"#07B56D\",\n borderColor: \"transparent\",\n borderRadius: \"4px\",\n duringTimeGap: 1,\n showText: false\n }\n);\n\nconst emits = defineEmits<{\n (event: \"progress\", percent: number): void;\n}>();\n\nconst bar = ref();\nconst subscription = useScroll$().subscribe((e) => {\n const percent = getVerticalScrollPercentInPage();\n emits(\"progress\", percent);\n bar.value?.goto(percent);\n});\n\nonUnmounted(() => {\n subscription.unsubscribe();\n});\n\ndefineExpose({});\n</script>\n\n<template>\n <div class=\"page-vertical-scroll-progress-bar\">\n <ProgressBar\n ref=\"bar\"\n :bgColor=\"props.bgColor\"\n :progressColor=\"props.progressColor\"\n :borderColor=\"props.borderColor\"\n :borderRadius=\"props.borderRadius\"\n :duringTimeGap=\"props.duringTimeGap\"\n :showText=\"props.showText\"\n ></ProgressBar>\n </div>\n</template>\n\n<style scoped>\n.page-vertical-scroll-progress-bar {\n position: relative;\n overflow: hidden;\n width: 100%;\n height: 100%;\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { onMounted, onUnmounted, ref, watch, watchEffect } from \"vue\";\nimport {\n getInnerText,\n useClipboard,\n useResize$,\n tap$,\n DrawShape,\n DrawType,\n DrawContext,\n useDraw,\n requestAnimationFrameCycle\n} from \"@zyzgroup/core-web\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: {},\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n type?: DrawType | \"div\";\n shapes?: DrawShape[];\n loop?: boolean;\n // 是否支持复制文字\n supportCopyToClipboard?: boolean;\n }>(),\n {\n type: \"div\",\n shapes: () => [],\n loop: false,\n supportCopyToClipboard: false\n }\n);\n\nconst emits = defineEmits<{\n (event: \"init\", box: { el: HTMLElement; rect: DOMRect }): void;\n (event: \"resize\", box: { el: HTMLElement; rect: DOMRect }): void;\n (event: \"frameInit\", drawContext: DrawContext): void;\n (event: \"frame\", drawContext: DrawContext): void;\n (event: \"copyToClipboardSuccess\", text: string): void;\n (event: \"copyToClipboardError\", err: string): void;\n}>();\n\nconst r = ref();\n\nconst isDrawType = props.type !== \"div\";\nlet drawContext;\n\nlet isEmitInit = false;\nlet isEmitFrameInit = false;\nlet resizeSubscription;\nlet tapSubscription;\nlet cancelAnimationFrame;\n\n// props.shapes 改变后没有触发?\nwatch(\n () => props.shapes,\n () => {\n isEmitFrameInit = false;\n }\n);\n\nwatchEffect(() => {\n if (!r.value) {\n // not mounted yet, or the element was unmounted (e.g. by v-if)\n return;\n }\n if (resizeSubscription) {\n return;\n }\n\n resizeSubscription = useResize$(r.value).subscribe((rect: DOMRect) => {\n const box = { el: r.value, rect };\n if (!isEmitInit) {\n emits(\"init\", box);\n isEmitInit = true;\n if (isDrawType) {\n drawContext = useDraw(box.el, props.type);\n cancelAnimationFrame = requestAnimationFrameCycle(() => {\n if (!isEmitFrameInit) {\n emits(\"frameInit\", drawContext);\n isEmitFrameInit = true;\n }\n emits(\"frame\", drawContext);\n drawContext.draw(...props.shapes);\n return props.loop;\n });\n }\n }\n emits(\"resize\", box);\n });\n\n if (props.supportCopyToClipboard) {\n tapSubscription = tap$(r.value).subscribe(() => {\n const text = getInnerText(r.value);\n useClipboard(text)\n .then(() => {\n emits(\"copyToClipboardSuccess\", text);\n })\n .catch((err) => {\n emits(\"copyToClipboardError\", err.toString());\n });\n });\n }\n});\n\nonMounted(() => {});\n\nonUnmounted(() => {\n resizeSubscription?.unsubscribe();\n tapSubscription?.unsubscribe();\n cancelAnimationFrame?.();\n});\n\n// 不推荐使用,推荐使用 @resize\ndefineExpose({\n getElement: () => r.value,\n getRect: () => r.value.getBoundingClientRect()\n});\n</script>\n\n<template>\n <!-- v-bind=\"$attrs\" -->\n <div\n ref=\"r\"\n class=\"box\"\n :style=\"{\n position: 'relative',\n boxSizing: 'border-box'\n /* overflow: 'hidden', */\n /* pointer-events: none; */\n }\"\n >\n <slot></slot>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { onMounted, reactive, ref } from \"vue\";\nimport { flushArray } from \"@zyzgroup/core-common\";\nimport {\n ArrowShape,\n BallShape,\n Color,\n CrossShape,\n FoxShape,\n HeartShape,\n HeartVariantShape,\n LineShape,\n RabbitShape,\n RectShape,\n SegmentShapeCombo,\n ShipShapeCombo,\n SliderShapeCombo,\n StarShape,\n TreeShapeCombo,\n animateSpringMassShapes,\n gravitateShapes\n} from \"@zyzgroup/core-web\";\n\nimport ResizeObserver from \"../components/ResizeObserver.vue\";\nconst sizeChange = (_size: any) => {\n console.log(\"ResizeObserver\", _size.width, _size.height);\n};\n\nimport FPSStats from \"../components/FPSStats.vue\";\n\nimport Button from \"../components/Button.vue\";\nimport Accordion from \"../components/Accordion.vue\";\n\nimport PageVerticalScrollProgressBar from \"../components/form/PageVerticalScrollProgressBar.vue\";\n\nimport Box from \"../components/base/Box.vue\";\n\nlet SVGShapes = [];\nlet svgFrameInit = (d) => {};\nlet svgFrame = (d) => {};\n\nlet CanvasShapes = [];\nlet canvasFrameInit = (d) => {};\nlet canvasFrame = (d) => {};\n\nconst currentType = ref(\"shapes\");\nconst boxCases = [\n {\n name: \"shapes\",\n onClick: () => {\n currentType.value = \"shapes\";\n\n const marker = new BallShape({\n ballRadius: 4,\n attrs: {\n fill: \"#ff0000\"\n }\n });\n const markerClone = marker.clone();\n\n const line = new LineShape({\n lineLength: 100,\n lineDegree: 0,\n attrs: { stroke: Color.random().toString(), strokeWidth: \"1\" }\n });\n line.moveTo(100, 100);\n const lineClone = line.clone() as LineShape;\n\n const lineDegree = line.clone() as LineShape;\n lineDegree.rotateTo(30);\n const lineDegreeClone = lineDegree.clone() as LineShape;\n\n const p = line.intersection(lineDegree);\n if (p) {\n marker.moveTo(p.x, p.y);\n }\n const p2 = lineClone.intersection(lineDegreeClone);\n if (p2) {\n markerClone.moveTo(p2.x, p2.y);\n }\n\n const tree = new TreeShapeCombo(\n {},\n {\n attrs: { stroke: \"#ff0000\", strokeWidth: \"1\" },\n drag: {\n enable: true\n }\n }\n );\n tree.comboMove(100, 100);\n const treeClone = tree.clone();\n\n const treeRotate = tree.clone();\n treeRotate.setAttr(\"stroke\", \"#0000ff\");\n treeRotate.comboRotate(30);\n const treeRotateClone = treeRotate.clone();\n\n const rect = new RectShape({\n x: 100,\n y: 200,\n scale: 0.5,\n degree: 5,\n rectWidth: 100,\n rectHeight: 60,\n rectBorderRadius: 10,\n attrs: {\n fill: \"pink\",\n stroke: \"#ff0000\",\n strokeWidth: \"1\"\n },\n drag: {\n enable: true\n }\n // strokeArmyAnts: true\n });\n const rectClone = rect.clone();\n\n const heart = new HeartShape({\n x: 200,\n y: 200,\n scale: 0.5,\n degree: -10,\n attrs: {\n fill: Color.random().toString(),\n stroke: \"#ff0000\",\n strokeWidth: \"3\"\n },\n drag: {\n enable: true\n }\n // strokeArmyAnts: true\n });\n const heartClone = heart.clone();\n\n const heartVariant = new HeartVariantShape({\n x: 220,\n y: 200,\n scale: 0.5,\n degree: 0,\n attrs: {\n fill: Color.random().toString(),\n stroke: \"#ff0000\",\n strokeWidth: \"3\"\n },\n drag: {\n enable: true\n }\n // strokeArmyAnts: true\n });\n const heartVariantClone = heartVariant.clone();\n\n const star = new StarShape({\n x: 240,\n y: 200,\n scale: 1,\n degree: 0,\n attrs: {\n fill: Color.random().toString()\n },\n drag: {\n enable: true\n }\n // strokeArmyAnts: true\n });\n const starClone = star.clone();\n\n const fox = new FoxShape({\n x: 260,\n y: 200,\n scale: 1,\n degree: 0,\n attrs: {\n fill: \"rgb(200,80,80)\",\n stroke: \"#ff0000\",\n strokeWidth: \"3\"\n },\n drag: {\n enable: true\n }\n // strokeArmyAnts: true\n });\n const foxClone = fox.clone();\n\n const rabbit = new RabbitShape({\n x: 300,\n y: 200,\n scale: 1,\n degree: 0,\n attrs: {\n fill: Color.random().toString(),\n stroke: \"#ff0000\",\n strokeWidth: \"1\"\n },\n drag: {\n enable: true\n }\n // strokeArmyAnts: true\n });\n const rabbitClone = rabbit.clone();\n\n const cross = new CrossShape({\n x: 320,\n y: 200,\n scale: 1,\n degree: 0,\n attrs: {\n fill: Color.random().toString()\n },\n drag: {\n enable: true\n }\n // strokeArmyAnts: true\n });\n const crossClone = cross.clone();\n\n const ship = new ShipShapeCombo(\n {\n showFlame: true\n },\n {\n attrs: {\n stroke: Color.random().toString()\n },\n drag: {\n enable: true\n }\n }\n );\n ship.comboMove(400, 100);\n ship.comboRotate(30);\n ship.comboScale(2);\n const shipClone = ship.clone();\n\n const segment = new SegmentShapeCombo(\n {\n segmentWidth: 100,\n segmentHeight: 20\n // segmentCornerRadius: 5\n },\n {\n attrs: {\n stroke: Color.random().toString()\n },\n drag: {\n enable: true\n }\n }\n );\n segment.comboMove(200, 100);\n segment.comboRotate(0);\n segment.comboScale(1);\n const segmentRotate = segment.clone();\n segmentRotate.comboRotate(30);\n const segmentClone = segment.clone();\n const segmentRotateClone = segmentRotate.clone();\n\n const slider = new SliderShapeCombo({\n sliderMin: 0,\n sliderMax: 200,\n sliderStep: 2,\n sliderDefaultValue: 10,\n sliderWidth: 200\n });\n slider.comboMove(250, 100);\n slider.comboRotate(30);\n slider.value$.subscribe((v) => {\n console.log(\"slider : \" + v);\n });\n const sliderClone = slider.clone() as SliderShapeCombo;\n sliderClone.value$.subscribe((v) => {\n console.log(\"sliderClone : \" + v);\n });\n\n SVGShapes = [\n line,\n lineDegree,\n tree,\n treeRotate,\n rect,\n heart,\n heartVariant,\n star,\n fox,\n rabbit,\n cross,\n ship,\n segment,\n segmentRotate,\n slider,\n marker\n ];\n CanvasShapes = [\n lineClone,\n lineDegreeClone,\n treeClone,\n treeRotateClone,\n rectClone,\n heartClone,\n heartVariantClone,\n starClone,\n foxClone,\n rabbitClone,\n crossClone,\n shipClone,\n segmentClone,\n segmentRotateClone,\n sliderClone,\n markerClone\n ];\n\n const frameInit = (d) => {};\n svgFrameInit = (d) => {\n frameInit(d);\n };\n canvasFrameInit = (d) => {\n frameInit(d);\n };\n svgFrame = (d) => {};\n canvasFrame = (d) => {};\n }\n },\n {\n name: \"checkCollision\",\n onClick: () => {\n currentType.value = \"checkCollision\";\n const ball1 = new BallShape({\n ballRadius: 30,\n attrs: {\n fill: Color.random().toString()\n },\n mass: 2,\n vx: 2\n });\n const ball1Clone = ball1.clone();\n const ball2 = new BallShape({\n ballRadius: 30,\n attrs: {\n fill: Color.random().toString()\n },\n mass: 1,\n vx: -2\n });\n const ball2Clone = ball2.clone();\n SVGShapes = [ball1, ball2];\n CanvasShapes = [ball1Clone, ball2Clone];\n let isSetCommonFrameInit = false;\n const frameInit = (d) => {\n if (isSetCommonFrameInit) {\n return;\n }\n isSetCommonFrameInit = true;\n const centerY = d.rect.height * 0.5;\n ball1.moveTo(50, centerY);\n ball2.moveTo(d.rect.width - 50, centerY);\n ball1Clone.moveTo(50, centerY);\n ball2Clone.moveTo(d.rect.width - 50, centerY);\n };\n svgFrameInit = (d) => {\n frameInit(d);\n };\n canvasFrameInit = (d) => {\n frameInit(d);\n };\n svgFrame = (d) => {\n ball1.checkCollision(ball2);\n ball1.animate();\n ball2.animate();\n };\n canvasFrame = (d) => {\n ball1Clone.checkCollision(ball2Clone);\n ball1Clone.animate();\n ball2Clone.animate();\n };\n }\n },\n {\n name: \"followMouse\",\n onClick: () => {\n currentType.value = \"followMouse\";\n const arrow = new ArrowShape({\n attrs: {\n fill: Color.random().toString()\n },\n scale: 0.5,\n followMouse: true\n });\n const arrowClone = arrow.clone();\n const arrowLine = new LineShape({\n attrs: {\n \"stroke-width\": \"1\",\n stroke: \"#666666\"\n }\n });\n const arrowLineClone = arrowLine.clone() as LineShape;\n SVGShapes = [arrowLine, arrow];\n CanvasShapes = [arrowLineClone, arrowClone];\n let isSetCommonFrameInit = false;\n const frameInit = (d) => {\n if (isSetCommonFrameInit) {\n return;\n }\n isSetCommonFrameInit = true;\n const centerX = d.rect.width * 0.5;\n const centerY = d.rect.height * 0.5;\n arrowLine.moveTo(centerX, centerY);\n arrowLineClone.moveTo(centerX, centerY);\n };\n svgFrameInit = (d) => {\n frameInit(d);\n };\n canvasFrameInit = (d) => {\n frameInit(d);\n };\n svgFrame = (d) => {\n arrowLine.lineToAbsolutePoint(arrow);\n };\n canvasFrame = (d) => {\n arrowLineClone.lineToAbsolutePoint(arrowClone);\n };\n }\n },\n {\n name: \"dragBall\",\n onClick: () => {\n currentType.value = \"dragBall\";\n const dragBall = new BallShape({\n ballRadius: 30,\n attrs: {\n fill: Color.random().toString()\n }\n });\n const dragBallClone = dragBall.clone();\n SVGShapes = [dragBall];\n CanvasShapes = [dragBallClone];\n let isSetCommonFrameInit = false;\n const frameInit = (d) => {\n if (isSetCommonFrameInit) {\n return;\n }\n isSetCommonFrameInit = true;\n const centerX = d.rect.width * 0.5;\n const centerY = d.rect.height * 0.5;\n dragBall.moveTo(centerX, centerY);\n dragBallClone.moveTo(centerX, centerY);\n dragBallClone.drag = dragBall.drag = {\n enable: true,\n targetToAfterDrop: { x: centerX, y: centerY }\n };\n };\n svgFrameInit = (d) => {\n frameInit(d);\n };\n canvasFrameInit = (d) => {\n frameInit(d);\n };\n svgFrame = (d) => {};\n canvasFrame = (d) => {};\n }\n },\n {\n name: \"animateSpringMassShapes\",\n onClick: () => {\n currentType.value = \"animateSpringMassShapes\";\n const springMassBalls: BallShape[] = [];\n const springMassLines: LineShape[] = [];\n const color0 = new Color(\"#000000\");\n const numParticles = 30;\n for (let i = 0; i < numParticles; i++) {\n const size = Math.random() * 10 + 2;\n const particle = new BallShape({\n ballRadius: size,\n attrs: { fill: Color.random().toString() }\n });\n particle.vx = Math.random() * 6 - 3;\n particle.vy = Math.random() * 6 - 3;\n particle.mass = size;\n springMassBalls.push(particle);\n }\n const springMassBallsClone = springMassBalls.map((s) => s.clone());\n const springMassLinesClone = springMassLines.map((s) => s.clone());\n // SVGShapes = [...springMassLines, ...springMassBalls];\n SVGShapes = [...springMassBalls];\n CanvasShapes = [...springMassLinesClone, ...springMassBallsClone];\n let isSetCommonFrameInit = false;\n const frameInit = (d) => {\n if (isSetCommonFrameInit) {\n return;\n }\n isSetCommonFrameInit = true;\n springMassBalls.forEach((b, i) => {\n const x = Math.random() * d.rect.width;\n const y = Math.random() * d.rect.height;\n b.moveTo(x, y);\n springMassBallsClone[i].moveTo(x, y);\n });\n };\n svgFrameInit = (d) => {\n frameInit(d);\n };\n canvasFrameInit = (d) => {\n frameInit(d);\n };\n const frame = (d, springMassBalls, springMassLines) => {\n animateSpringMassShapes(\n springMassBalls,\n {\n x: 0,\n y: 0,\n width: d.rect.width,\n height: d.rect.height\n },\n {\n spring: 0.0005\n }\n ).forEach(([fromX, fromY, toX, toY, alpha], i) => {\n if (!springMassLines[i]) {\n const l = new LineShape({\n x: fromX,\n y: fromY,\n lineDx: toX - fromX,\n lineDy: toY - fromY,\n attrs: {\n strokeWidth: \"1\",\n stroke: color0.setAlpha(alpha).toString()\n }\n });\n springMassLines.push(l);\n } else {\n springMassLines[i].moveTo(fromX, fromY);\n springMassLines[i].lineToAbsolutePoint({ x: toX, y: toY });\n springMassLines[i].setAttr(\n \"stroke\",\n color0.setAlpha(alpha).toString()\n );\n }\n });\n return d;\n };\n svgFrame = (d) => {\n frame(d, springMassBalls, springMassLines);\n };\n canvasFrame = (d) => {\n frame(d, springMassBallsClone, springMassLinesClone);\n CanvasShapes = [...springMassLinesClone, ...springMassBallsClone];\n };\n }\n },\n {\n name: \"gravitateShapes\",\n onClick: () => {\n currentType.value = \"gravitateShapes\";\n const numBalls = 30;\n const balls: BallShape[] = [];\n for (let i = 0; i < numBalls; i++) {\n const radius = Math.random() * 25 + 5;\n const ball = new BallShape({\n ballRadius: radius,\n attrs: {\n fill: Color.random().toString()\n }\n });\n ball.mass = radius;\n balls.push(ball);\n }\n const ballsClone = balls.map((s) => s.clone());\n SVGShapes = [...balls];\n CanvasShapes = [...ballsClone];\n let isSetCommonFrameInit = false;\n const frameInit = (d) => {\n if (isSetCommonFrameInit) {\n return;\n }\n isSetCommonFrameInit = true;\n balls.forEach((b, i) => {\n const x = Math.random() * d.rect.width;\n const y = Math.random() * d.rect.height;\n b.moveTo(x, y);\n ballsClone[i].moveTo(x, y);\n });\n };\n svgFrameInit = (d) => {\n frameInit(d);\n };\n canvasFrameInit = (d) => {\n frameInit(d);\n };\n svgFrame = (d) => {\n gravitateShapes(balls);\n };\n canvasFrame = (d) => {\n gravitateShapes(ballsClone);\n };\n }\n }\n];\n\nonMounted(() => {\n boxCases[0].onClick();\n});\n</script>\n\n<template>\n <div style=\"position: relative; overflow: hidden\">\n <div\n style=\"\n position: fixed;\n top: 0;\n left: 0;\n z-index: 100;\n width: 100%;\n height: 6px;\n \"\n >\n <PageVerticalScrollProgressBar></PageVerticalScrollProgressBar>\n </div>\n\n <FPSStats></FPSStats>\n\n <ResizeObserver @resize=\"sizeChange\"></ResizeObserver>\n\n <Accordion\n :initOpen=\"true\"\n style=\"margin: 30px\"\n >\n <template #title>Shape</template>\n <template #content>\n <div class=\"btns\">\n <Button\n v-for=\"item in boxCases\"\n :key=\"item.name\"\n :item=\"item\"\n @click=\"item.onClick\"\n :stylePattern=\"currentType == item.name ? 'fullfill' : 'outline'\"\n >\n {{ item.name }}\n </Button>\n </div>\n\n <Box\n type=\"svg\"\n :shapes=\"SVGShapes\"\n :loop=\"true\"\n style=\"\n width: 100%;\n height: 300px;\n background-color: rgba(0, 0, 0, 0.1);\n \"\n @frameInit=\"svgFrameInit\"\n @frame=\"svgFrame\"\n ></Box>\n <Box\n type=\"canvas\"\n :shapes=\"CanvasShapes\"\n :loop=\"true\"\n style=\"\n width: 100%;\n height: 300px;\n background-color: rgba(0, 0, 0, 0.2);\n \"\n @frameInit=\"canvasFrameInit\"\n @frame=\"canvasFrame\"\n ></Box>\n </template>\n </Accordion>\n </div>\n</template>\n\n<style scoped>\n:root {\n --min-font-size: 16;\n --max-font-size: 16;\n}\n</style>\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return function (source) {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n//# sourceMappingURL=isPromise.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n//# sourceMappingURL=isAsyncIterable.js.map","export function createInvalidObservableTypeError(input) {\n return new TypeError(\"You provided \" + (input !== null && typeof input === 'object' ? 'an invalid object' : \"'\" + input + \"'\") + \" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.\");\n}\n//# sourceMappingURL=throwUnobservableError.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\n//# sourceMappingURL=iterator.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n//# sourceMappingURL=isIterable.js.map","import { __asyncGenerator, __await, __generator } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {\n var reader, _a, value, done;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = readableStream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 9, 10]);\n _b.label = 2;\n case 2:\n if (!true) return [3, 8];\n return [4, __await(reader.read())];\n case 3:\n _a = _b.sent(), value = _a.value, done = _a.done;\n if (!done) return [3, 5];\n return [4, __await(void 0)];\n case 4: return [2, _b.sent()];\n case 5: return [4, __await(value)];\n case 6: return [4, _b.sent()];\n case 7:\n _b.sent();\n return [3, 2];\n case 8: return [3, 10];\n case 9:\n reader.releaseLock();\n return [7];\n case 10: return [2];\n }\n });\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n//# sourceMappingURL=isReadableStreamLike.js.map","import { __asyncValues, __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable(function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable(function (subscriber) {\n for (var i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable(function (subscriber) {\n promise\n .then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable(function (subscriber) {\n var e_1, _a;\n try {\n for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {\n var value = iterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable(function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_2, _a;\n return __awaiter(this, void 0, void 0, function () {\n var value, e_2_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = __asyncValues(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return [2];\n }\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_2_1 = _b.sent();\n e_2 = { error: e_2_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_2) throw e_2.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=innerFrom.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nvar OperatorSubscriber = (function (_super) {\n __extends(OperatorSubscriber, _super);\n function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n var _this = _super.call(this, destination) || this;\n _this.onFinalize = onFinalize;\n _this.shouldUnsubscribe = shouldUnsubscribe;\n _this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : _super.prototype._next;\n _this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._error;\n _this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._complete;\n return _this;\n }\n OperatorSubscriber.prototype.unsubscribe = function () {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n var closed_1 = this.closed;\n _super.prototype.unsubscribe.call(this);\n !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n };\n return OperatorSubscriber;\n}(Subscriber));\nexport { OperatorSubscriber };\n//# sourceMappingURL=OperatorSubscriber.js.map","import { operate } from '../util/lift';\nimport { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function audit(durationSelector) {\n return operate(function (source, subscriber) {\n var hasValue = false;\n var lastValue = null;\n var durationSubscriber = null;\n var isComplete = false;\n var endDuration = function () {\n durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe();\n durationSubscriber = null;\n if (hasValue) {\n hasValue = false;\n var value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n isComplete && subscriber.complete();\n };\n var cleanupDuration = function () {\n durationSubscriber = null;\n isComplete && subscriber.complete();\n };\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n hasValue = true;\n lastValue = value;\n if (!durationSubscriber) {\n innerFrom(durationSelector(value)).subscribe((durationSubscriber = createOperatorSubscriber(subscriber, endDuration, cleanupDuration)));\n }\n }, function () {\n isComplete = true;\n (!hasValue || !durationSubscriber || durationSubscriber.closed) && subscriber.complete();\n }));\n });\n}\n//# sourceMappingURL=audit.js.map","import { __extends } from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = (function (_super) {\n __extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var intervalProvider = {\n setInterval: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = intervalProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) {\n return delegate.setInterval.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setInterval.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearInterval: function (handle) {\n var delegate = intervalProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=intervalProvider.js.map","import { __extends } from \"tslib\";\nimport { Action } from './Action';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nvar AsyncAction = (function (_super) {\n __extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n var _a;\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = (_a = this.id) !== null && _a !== void 0 ? _a : this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, _id, delay) {\n if (delay === void 0) { delay = 0; }\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (_scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, _delay) {\n var errored = false;\n var errorValue;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype.unsubscribe = function () {\n if (!this.closed) {\n var _a = this, id = _a.id, scheduler = _a.scheduler;\n var actions = scheduler.actions;\n this.work = this.state = this.scheduler = null;\n this.pending = false;\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n _super.prototype.unsubscribe.call(this);\n }\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map","export var dateTimestampProvider = {\n now: function () {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n//# sourceMappingURL=dateTimestampProvider.js.map","import { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nvar Scheduler = (function () {\n function Scheduler(schedulerActionCtor, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.schedulerActionCtor = schedulerActionCtor;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n };\n Scheduler.now = dateTimestampProvider.now;\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map","import { __extends } from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = (function (_super) {\n __extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n var _this = _super.call(this, SchedulerAction, now) || this;\n _this.actions = [];\n _this._active = false;\n return _this;\n }\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this._active) {\n actions.push(action);\n return;\n }\n var error;\n this._active = true;\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()));\n this._active = false;\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var asyncScheduler = new AsyncScheduler(AsyncAction);\nexport var async = asyncScheduler;\n//# sourceMappingURL=async.js.map","import { isFunction } from './isFunction';\nexport function isScheduler(value) {\n return value && isFunction(value.schedule);\n}\n//# sourceMappingURL=isScheduler.js.map","export function isValidDate(value) {\n return value instanceof Date && !isNaN(value);\n}\n//# sourceMappingURL=isDate.js.map","import { Observable } from '../Observable';\nimport { async as asyncScheduler } from '../scheduler/async';\nimport { isScheduler } from '../util/isScheduler';\nimport { isValidDate } from '../util/isDate';\nexport function timer(dueTime, intervalOrScheduler, scheduler) {\n if (dueTime === void 0) { dueTime = 0; }\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n var intervalDuration = -1;\n if (intervalOrScheduler != null) {\n if (isScheduler(intervalOrScheduler)) {\n scheduler = intervalOrScheduler;\n }\n else {\n intervalDuration = intervalOrScheduler;\n }\n }\n return new Observable(function (subscriber) {\n var due = isValidDate(dueTime) ? +dueTime - scheduler.now() : dueTime;\n if (due < 0) {\n due = 0;\n }\n var n = 0;\n return scheduler.schedule(function () {\n if (!subscriber.closed) {\n subscriber.next(n++);\n if (0 <= intervalDuration) {\n this.schedule(undefined, intervalDuration);\n }\n else {\n subscriber.complete();\n }\n }\n }, due);\n });\n}\n//# sourceMappingURL=timer.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { audit } from './audit';\nimport { timer } from '../observable/timer';\nexport function auditTime(duration, scheduler) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n return audit(function () { return timer(duration, scheduler); });\n}\n//# sourceMappingURL=auditTime.js.map","import { operate } from '../util/lift';\nimport { noop } from '../util/noop';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nexport function buffer(closingNotifier) {\n return operate(function (source, subscriber) {\n var currentBuffer = [];\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return currentBuffer.push(value); }, function () {\n subscriber.next(currentBuffer);\n subscriber.complete();\n }));\n innerFrom(closingNotifier).subscribe(createOperatorSubscriber(subscriber, function () {\n var b = currentBuffer;\n currentBuffer = [];\n subscriber.next(b);\n }, noop));\n return function () {\n currentBuffer = null;\n };\n });\n}\n//# sourceMappingURL=buffer.js.map","import { __values } from \"tslib\";\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { arrRemove } from '../util/arrRemove';\nexport function bufferCount(bufferSize, startBufferEvery) {\n if (startBufferEvery === void 0) { startBufferEvery = null; }\n startBufferEvery = startBufferEvery !== null && startBufferEvery !== void 0 ? startBufferEvery : bufferSize;\n return operate(function (source, subscriber) {\n var buffers = [];\n var count = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var e_1, _a, e_2, _b;\n var toEmit = null;\n if (count++ % startBufferEvery === 0) {\n buffers.push([]);\n }\n try {\n for (var buffers_1 = __values(buffers), buffers_1_1 = buffers_1.next(); !buffers_1_1.done; buffers_1_1 = buffers_1.next()) {\n var buffer = buffers_1_1.value;\n buffer.push(value);\n if (bufferSize <= buffer.length) {\n toEmit = toEmit !== null && toEmit !== void 0 ? toEmit : [];\n toEmit.push(buffer);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (buffers_1_1 && !buffers_1_1.done && (_a = buffers_1.return)) _a.call(buffers_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (toEmit) {\n try {\n for (var toEmit_1 = __values(toEmit), toEmit_1_1 = toEmit_1.next(); !toEmit_1_1.done; toEmit_1_1 = toEmit_1.next()) {\n var buffer = toEmit_1_1.value;\n arrRemove(buffers, buffer);\n subscriber.next(buffer);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (toEmit_1_1 && !toEmit_1_1.done && (_b = toEmit_1.return)) _b.call(toEmit_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }, function () {\n var e_3, _a;\n try {\n for (var buffers_2 = __values(buffers), buffers_2_1 = buffers_2.next(); !buffers_2_1.done; buffers_2_1 = buffers_2.next()) {\n var buffer = buffers_2_1.value;\n subscriber.next(buffer);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (buffers_2_1 && !buffers_2_1.done && (_a = buffers_2.return)) _a.call(buffers_2);\n }\n finally { if (e_3) throw e_3.error; }\n }\n subscriber.complete();\n }, undefined, function () {\n buffers = null;\n }));\n });\n}\n//# sourceMappingURL=bufferCount.js.map","import { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nexport function popResultSelector(args) {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\nexport function popScheduler(args) {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\nexport function popNumber(args, defaultValue) {\n return typeof last(args) === 'number' ? args.pop() : defaultValue;\n}\n//# sourceMappingURL=args.js.map","export function executeSchedule(parentSubscription, scheduler, work, delay, repeat) {\n if (delay === void 0) { delay = 0; }\n if (repeat === void 0) { repeat = false; }\n var scheduleSubscription = scheduler.schedule(function () {\n work();\n if (repeat) {\n parentSubscription.add(this.schedule(null, delay));\n }\n else {\n this.unsubscribe();\n }\n }, delay);\n parentSubscription.add(scheduleSubscription);\n if (!repeat) {\n return scheduleSubscription;\n }\n}\n//# sourceMappingURL=executeSchedule.js.map","import { __values } from \"tslib\";\nimport { Subscription } from '../Subscription';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { arrRemove } from '../util/arrRemove';\nimport { asyncScheduler } from '../scheduler/async';\nimport { popScheduler } from '../util/args';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function bufferTime(bufferTimeSpan) {\n var _a, _b;\n var otherArgs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n otherArgs[_i - 1] = arguments[_i];\n }\n var scheduler = (_a = popScheduler(otherArgs)) !== null && _a !== void 0 ? _a : asyncScheduler;\n var bufferCreationInterval = (_b = otherArgs[0]) !== null && _b !== void 0 ? _b : null;\n var maxBufferSize = otherArgs[1] || Infinity;\n return operate(function (source, subscriber) {\n var bufferRecords = [];\n var restartOnEmit = false;\n var emit = function (record) {\n var buffer = record.buffer, subs = record.subs;\n subs.unsubscribe();\n arrRemove(bufferRecords, record);\n subscriber.next(buffer);\n restartOnEmit && startBuffer();\n };\n var startBuffer = function () {\n if (bufferRecords) {\n var subs = new Subscription();\n subscriber.add(subs);\n var buffer = [];\n var record_1 = {\n buffer: buffer,\n subs: subs,\n };\n bufferRecords.push(record_1);\n executeSchedule(subs, scheduler, function () { return emit(record_1); }, bufferTimeSpan);\n }\n };\n if (bufferCreationInterval !== null && bufferCreationInterval >= 0) {\n executeSchedule(subscriber, scheduler, startBuffer, bufferCreationInterval, true);\n }\n else {\n restartOnEmit = true;\n }\n startBuffer();\n var bufferTimeSubscriber = createOperatorSubscriber(subscriber, function (value) {\n var e_1, _a;\n var recordsCopy = bufferRecords.slice();\n try {\n for (var recordsCopy_1 = __values(recordsCopy), recordsCopy_1_1 = recordsCopy_1.next(); !recordsCopy_1_1.done; recordsCopy_1_1 = recordsCopy_1.next()) {\n var record = recordsCopy_1_1.value;\n var buffer = record.buffer;\n buffer.push(value);\n maxBufferSize <= buffer.length && emit(record);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (recordsCopy_1_1 && !recordsCopy_1_1.done && (_a = recordsCopy_1.return)) _a.call(recordsCopy_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }, function () {\n while (bufferRecords === null || bufferRecords === void 0 ? void 0 : bufferRecords.length) {\n subscriber.next(bufferRecords.shift().buffer);\n }\n bufferTimeSubscriber === null || bufferTimeSubscriber === void 0 ? void 0 : bufferTimeSubscriber.unsubscribe();\n subscriber.complete();\n subscriber.unsubscribe();\n }, undefined, function () { return (bufferRecords = null); });\n source.subscribe(bufferTimeSubscriber);\n });\n}\n//# sourceMappingURL=bufferTime.js.map","import { __values } from \"tslib\";\nimport { Subscription } from '../Subscription';\nimport { operate } from '../util/lift';\nimport { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { noop } from '../util/noop';\nimport { arrRemove } from '../util/arrRemove';\nexport function bufferToggle(openings, closingSelector) {\n return operate(function (source, subscriber) {\n var buffers = [];\n innerFrom(openings).subscribe(createOperatorSubscriber(subscriber, function (openValue) {\n var buffer = [];\n buffers.push(buffer);\n var closingSubscription = new Subscription();\n var emitBuffer = function () {\n arrRemove(buffers, buffer);\n subscriber.next(buffer);\n closingSubscription.unsubscribe();\n };\n closingSubscription.add(innerFrom(closingSelector(openValue)).subscribe(createOperatorSubscriber(subscriber, emitBuffer, noop)));\n }, noop));\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var e_1, _a;\n try {\n for (var buffers_1 = __values(buffers), buffers_1_1 = buffers_1.next(); !buffers_1_1.done; buffers_1_1 = buffers_1.next()) {\n var buffer = buffers_1_1.value;\n buffer.push(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (buffers_1_1 && !buffers_1_1.done && (_a = buffers_1.return)) _a.call(buffers_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }, function () {\n while (buffers.length > 0) {\n subscriber.next(buffers.shift());\n }\n subscriber.complete();\n }));\n });\n}\n//# sourceMappingURL=bufferToggle.js.map","import { operate } from '../util/lift';\nimport { noop } from '../util/noop';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nexport function bufferWhen(closingSelector) {\n return operate(function (source, subscriber) {\n var buffer = null;\n var closingSubscriber = null;\n var openBuffer = function () {\n closingSubscriber === null || closingSubscriber === void 0 ? void 0 : closingSubscriber.unsubscribe();\n var b = buffer;\n buffer = [];\n b && subscriber.next(b);\n innerFrom(closingSelector()).subscribe((closingSubscriber = createOperatorSubscriber(subscriber, openBuffer, noop)));\n };\n openBuffer();\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return buffer === null || buffer === void 0 ? void 0 : buffer.push(value); }, function () {\n buffer && subscriber.next(buffer);\n subscriber.complete();\n }, undefined, function () { return (buffer = closingSubscriber = null); }));\n });\n}\n//# sourceMappingURL=bufferWhen.js.map","var isArray = Array.isArray;\nvar getPrototypeOf = Object.getPrototypeOf, objectProto = Object.prototype, getKeys = Object.keys;\nexport function argsArgArrayOrObject(args) {\n if (args.length === 1) {\n var first_1 = args[0];\n if (isArray(first_1)) {\n return { args: first_1, keys: null };\n }\n if (isPOJO(first_1)) {\n var keys = getKeys(first_1);\n return {\n args: keys.map(function (key) { return first_1[key]; }),\n keys: keys,\n };\n }\n }\n return { args: args, keys: null };\n}\nfunction isPOJO(obj) {\n return obj && typeof obj === 'object' && getPrototypeOf(obj) === objectProto;\n}\n//# sourceMappingURL=argsArgArrayOrObject.js.map","import { executeSchedule } from '../util/executeSchedule';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function observeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return operate(function (source, subscriber) {\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return executeSchedule(subscriber, scheduler, function () { return subscriber.next(value); }, delay); }, function () { return executeSchedule(subscriber, scheduler, function () { return subscriber.complete(); }, delay); }, function (err) { return executeSchedule(subscriber, scheduler, function () { return subscriber.error(err); }, delay); }));\n });\n}\n//# sourceMappingURL=observeOn.js.map","import { operate } from '../util/lift';\nexport function subscribeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return operate(function (source, subscriber) {\n subscriber.add(scheduler.schedule(function () { return source.subscribe(subscriber); }, delay));\n });\n}\n//# sourceMappingURL=subscribeOn.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function scheduleObservable(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n//# sourceMappingURL=scheduleObservable.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function schedulePromise(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n//# sourceMappingURL=schedulePromise.js.map","import { Observable } from '../Observable';\nexport function scheduleArray(input, scheduler) {\n return new Observable(function (subscriber) {\n var i = 0;\n return scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n }\n else {\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n this.schedule();\n }\n }\n });\n });\n}\n//# sourceMappingURL=scheduleArray.js.map","import { Observable } from '../Observable';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from '../util/isFunction';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleIterable(input, scheduler) {\n return new Observable(function (subscriber) {\n var iterator;\n executeSchedule(subscriber, scheduler, function () {\n iterator = input[Symbol_iterator]();\n executeSchedule(subscriber, scheduler, function () {\n var _a;\n var value;\n var done;\n try {\n (_a = iterator.next(), value = _a.value, done = _a.done);\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n }\n }, 0, true);\n });\n return function () { return isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return(); };\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map","import { Observable } from '../Observable';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(function (subscriber) {\n executeSchedule(subscriber, scheduler, function () {\n var iterator = input[Symbol.asyncIterator]();\n executeSchedule(subscriber, scheduler, function () {\n iterator.next().then(function (result) {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n }\n });\n }, 0, true);\n });\n });\n}\n//# sourceMappingURL=scheduleAsyncIterable.js.map","import { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nexport function scheduleReadableStreamLike(input, scheduler) {\n return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);\n}\n//# sourceMappingURL=scheduleReadableStreamLike.js.map","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isReadableStreamLike } from '../util/isReadableStreamLike';\nimport { scheduleReadableStreamLike } from './scheduleReadableStreamLike';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n if (isAsyncIterable(input)) {\n return scheduleAsyncIterable(input, scheduler);\n }\n if (isIterable(input)) {\n return scheduleIterable(input, scheduler);\n }\n if (isReadableStreamLike(input)) {\n return scheduleReadableStreamLike(input, scheduler);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\n//# sourceMappingURL=scheduled.js.map","import { scheduled } from '../scheduled/scheduled';\nimport { innerFrom } from './innerFrom';\nexport function from(input, scheduler) {\n return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\n//# sourceMappingURL=from.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","import { __read, __spreadArray } from \"tslib\";\nimport { map } from \"../operators/map\";\nvar isArray = Array.isArray;\nfunction callOrApply(fn, args) {\n return isArray(args) ? fn.apply(void 0, __spreadArray([], __read(args))) : fn(args);\n}\nexport function mapOneOrManyArgs(fn) {\n return map(function (args) { return callOrApply(fn, args); });\n}\n//# sourceMappingURL=mapOneOrManyArgs.js.map","export function createObject(keys, values) {\n return keys.reduce(function (result, key, i) { return ((result[key] = values[i]), result); }, {});\n}\n//# sourceMappingURL=createObject.js.map","import { Observable } from '../Observable';\nimport { argsArgArrayOrObject } from '../util/argsArgArrayOrObject';\nimport { from } from './from';\nimport { identity } from '../util/identity';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { popResultSelector, popScheduler } from '../util/args';\nimport { createObject } from '../util/createObject';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function combineLatest() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = popScheduler(args);\n var resultSelector = popResultSelector(args);\n var _a = argsArgArrayOrObject(args), observables = _a.args, keys = _a.keys;\n if (observables.length === 0) {\n return from([], scheduler);\n }\n var result = new Observable(combineLatestInit(observables, scheduler, keys\n ?\n function (values) { return createObject(keys, values); }\n :\n identity));\n return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result;\n}\nexport function combineLatestInit(observables, scheduler, valueTransform) {\n if (valueTransform === void 0) { valueTransform = identity; }\n return function (subscriber) {\n maybeSchedule(scheduler, function () {\n var length = observables.length;\n var values = new Array(length);\n var active = length;\n var remainingFirstValues = length;\n var _loop_1 = function (i) {\n maybeSchedule(scheduler, function () {\n var source = from(observables[i], scheduler);\n var hasFirstValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n values[i] = value;\n if (!hasFirstValue) {\n hasFirstValue = true;\n remainingFirstValues--;\n }\n if (!remainingFirstValues) {\n subscriber.next(valueTransform(values.slice()));\n }\n }, function () {\n if (!--active) {\n subscriber.complete();\n }\n }));\n }, subscriber);\n };\n for (var i = 0; i < length; i++) {\n _loop_1(i);\n }\n }, subscriber);\n };\n}\nfunction maybeSchedule(scheduler, execute, subscription) {\n if (scheduler) {\n executeSchedule(subscription, scheduler, execute);\n }\n else {\n execute();\n }\n}\n//# sourceMappingURL=combineLatest.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {\n var buffer = [];\n var active = 0;\n var index = 0;\n var isComplete = false;\n var checkComplete = function () {\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n var outerNext = function (value) { return (active < concurrent ? doInnerSub(value) : buffer.push(value)); };\n var doInnerSub = function (value) {\n expand && subscriber.next(value);\n active++;\n var innerComplete = false;\n innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, function (innerValue) {\n onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);\n if (expand) {\n outerNext(innerValue);\n }\n else {\n subscriber.next(innerValue);\n }\n }, function () {\n innerComplete = true;\n }, undefined, function () {\n if (innerComplete) {\n try {\n active--;\n var _loop_1 = function () {\n var bufferedValue = buffer.shift();\n if (innerSubScheduler) {\n executeSchedule(subscriber, innerSubScheduler, function () { return doInnerSub(bufferedValue); });\n }\n else {\n doInnerSub(bufferedValue);\n }\n };\n while (buffer.length && active < concurrent) {\n _loop_1();\n }\n checkComplete();\n }\n catch (err) {\n subscriber.error(err);\n }\n }\n }));\n };\n source.subscribe(createOperatorSubscriber(subscriber, outerNext, function () {\n isComplete = true;\n checkComplete();\n }));\n return function () {\n additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();\n };\n}\n//# sourceMappingURL=mergeInternals.js.map","import { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\nexport function mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n if (isFunction(resultSelector)) {\n return mergeMap(function (a, i) { return map(function (b, ii) { return resultSelector(a, b, i, ii); })(innerFrom(project(a, i))); }, concurrent);\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return operate(function (source, subscriber) { return mergeInternals(source, subscriber, project, concurrent); });\n}\n//# sourceMappingURL=mergeMap.js.map","import { createOperatorSubscriber } from './OperatorSubscriber';\nexport function scanInternals(accumulator, seed, hasSeed, emitOnNext, emitBeforeComplete) {\n return function (source, subscriber) {\n var hasState = hasSeed;\n var state = seed;\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var i = index++;\n state = hasState\n ?\n accumulator(state, value, i)\n :\n ((hasState = true), value);\n emitOnNext && subscriber.next(state);\n }, emitBeforeComplete &&\n (function () {\n hasState && subscriber.next(state);\n subscriber.complete();\n })));\n };\n}\n//# sourceMappingURL=scanInternals.js.map","import { scanInternals } from './scanInternals';\nimport { operate } from '../util/lift';\nexport function reduce(accumulator, seed) {\n return operate(scanInternals(accumulator, seed, arguments.length >= 2, false, true));\n}\n//# sourceMappingURL=reduce.js.map","import { reduce } from './reduce';\nimport { operate } from '../util/lift';\nvar arrReducer = function (arr, value) { return (arr.push(value), arr); };\nexport function toArray() {\n return operate(function (source, subscriber) {\n reduce(arrReducer, [])(source).subscribe(subscriber);\n });\n}\n//# sourceMappingURL=toArray.js.map","import { identity } from '../util/identity';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { pipe } from '../util/pipe';\nimport { mergeMap } from './mergeMap';\nimport { toArray } from './toArray';\nexport function joinAllInternals(joinFn, project) {\n return pipe(toArray(), mergeMap(function (sources) { return joinFn(sources); }), project ? mapOneOrManyArgs(project) : identity);\n}\n//# sourceMappingURL=joinAllInternals.js.map","import { combineLatest } from '../observable/combineLatest';\nimport { joinAllInternals } from './joinAllInternals';\nexport function combineLatestAll(project) {\n return joinAllInternals(combineLatest, project);\n}\n//# sourceMappingURL=combineLatestAll.js.map","var isArray = Array.isArray;\nexport function argsOrArgArray(args) {\n return args.length === 1 && isArray(args[0]) ? args[0] : args;\n}\n//# sourceMappingURL=argsOrArgArray.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map","import { mergeMap } from './mergeMap';\nimport { isFunction } from '../util/isFunction';\nexport function concatMap(project, resultSelector) {\n return isFunction(resultSelector) ? mergeMap(project, resultSelector, 1) : mergeMap(project, 1);\n}\n//# sourceMappingURL=concatMap.js.map","import { createErrorClass } from './createErrorClass';\nexport var ObjectUnsubscribedError = createErrorClass(function (_super) {\n return function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n };\n});\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import { __extends, __values } from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.closed = false;\n _this.currentObservers = null;\n _this.observers = [];\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype._throwIfClosed = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n };\n Subject.prototype.next = function (value) {\n var _this = this;\n errorContext(function () {\n var e_1, _a;\n _this._throwIfClosed();\n if (!_this.isStopped) {\n if (!_this.currentObservers) {\n _this.currentObservers = Array.from(_this.observers);\n }\n try {\n for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var observer = _c.value;\n observer.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n });\n };\n Subject.prototype.error = function (err) {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.hasError = _this.isStopped = true;\n _this.thrownError = err;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n };\n Subject.prototype.complete = function () {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.isStopped = true;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n };\n Object.defineProperty(Subject.prototype, \"observed\", {\n get: function () {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n },\n enumerable: false,\n configurable: true\n });\n Subject.prototype._trySubscribe = function (subscriber) {\n this._throwIfClosed();\n return _super.prototype._trySubscribe.call(this, subscriber);\n };\n Subject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n };\n Subject.prototype._innerSubscribe = function (subscriber) {\n var _this = this;\n var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(function () {\n _this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n };\n Subject.prototype._checkFinalizedStatuses = function (subscriber) {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n };\n AnonymousSubject.prototype.error = function (err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n AnonymousSubject.prototype.complete = function () {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","import { reduce } from './reduce';\nexport function count(predicate) {\n return reduce(function (total, value, i) { return (!predicate || predicate(value, i) ? total + 1 : total); }, 0);\n}\n//# sourceMappingURL=count.js.map","import { operate } from '../util/lift';\nimport { noop } from '../util/noop';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nexport function debounce(durationSelector) {\n return operate(function (source, subscriber) {\n var hasValue = false;\n var lastValue = null;\n var durationSubscriber = null;\n var emit = function () {\n durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe();\n durationSubscriber = null;\n if (hasValue) {\n hasValue = false;\n var value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n };\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe();\n hasValue = true;\n lastValue = value;\n durationSubscriber = createOperatorSubscriber(subscriber, emit, noop);\n innerFrom(durationSelector(value)).subscribe(durationSubscriber);\n }, function () {\n emit();\n subscriber.complete();\n }, undefined, function () {\n lastValue = durationSubscriber = null;\n }));\n });\n}\n//# sourceMappingURL=debounce.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function debounceTime(dueTime, scheduler) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n return operate(function (source, subscriber) {\n var activeTask = null;\n var lastValue = null;\n var lastTime = null;\n var emit = function () {\n if (activeTask) {\n activeTask.unsubscribe();\n activeTask = null;\n var value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n };\n function emitWhenIdle() {\n var targetTime = lastTime + dueTime;\n var now = scheduler.now();\n if (now < targetTime) {\n activeTask = this.schedule(undefined, targetTime - now);\n subscriber.add(activeTask);\n return;\n }\n emit();\n }\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n lastValue = value;\n lastTime = scheduler.now();\n if (!activeTask) {\n activeTask = scheduler.schedule(emitWhenIdle, dueTime);\n subscriber.add(activeTask);\n }\n }, function () {\n emit();\n subscriber.complete();\n }, undefined, function () {\n lastValue = activeTask = null;\n }));\n });\n}\n//# sourceMappingURL=debounceTime.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function defaultIfEmpty(defaultValue) {\n return operate(function (source, subscriber) {\n var hasValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n hasValue = true;\n subscriber.next(value);\n }, function () {\n if (!hasValue) {\n subscriber.next(defaultValue);\n }\n subscriber.complete();\n }));\n });\n}\n//# sourceMappingURL=defaultIfEmpty.js.map","import { concatAll } from '../operators/concatAll';\nimport { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function concat() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return concatAll()(from(args, popScheduler(args)));\n}\n//# sourceMappingURL=concat.js.map","import { Observable } from '../Observable';\nexport var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map","import { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function take(count) {\n return count <= 0\n ?\n function () { return EMPTY; }\n : operate(function (source, subscriber) {\n var seen = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n if (++seen <= count) {\n subscriber.next(value);\n if (count <= seen) {\n subscriber.complete();\n }\n }\n }));\n });\n}\n//# sourceMappingURL=take.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { noop } from '../util/noop';\nexport function ignoreElements() {\n return operate(function (source, subscriber) {\n source.subscribe(createOperatorSubscriber(subscriber, noop));\n });\n}\n//# sourceMappingURL=ignoreElements.js.map","import { map } from './map';\nexport function mapTo(value) {\n return map(function () { return value; });\n}\n//# sourceMappingURL=mapTo.js.map","import { concat } from '../observable/concat';\nimport { take } from './take';\nimport { ignoreElements } from './ignoreElements';\nimport { mapTo } from './mapTo';\nimport { mergeMap } from './mergeMap';\nimport { innerFrom } from '../observable/innerFrom';\nexport function delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return function (source) {\n return concat(subscriptionDelay.pipe(take(1), ignoreElements()), source.pipe(delayWhen(delayDurationSelector)));\n };\n }\n return mergeMap(function (value, index) { return innerFrom(delayDurationSelector(value, index)).pipe(take(1), mapTo(value)); });\n}\n//# sourceMappingURL=delayWhen.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { delayWhen } from './delayWhen';\nimport { timer } from '../observable/timer';\nexport function delay(due, scheduler) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n var duration = timer(due, scheduler);\n return delayWhen(function () { return duration; });\n}\n//# sourceMappingURL=delay.js.map","import { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function of() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = popScheduler(args);\n return from(args, scheduler);\n}\n//# sourceMappingURL=of.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { noop } from '../util/noop';\nimport { innerFrom } from '../observable/innerFrom';\nexport function distinct(keySelector, flushes) {\n return operate(function (source, subscriber) {\n var distinctKeys = new Set();\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var key = keySelector ? keySelector(value) : value;\n if (!distinctKeys.has(key)) {\n distinctKeys.add(key);\n subscriber.next(value);\n }\n }));\n flushes && innerFrom(flushes).subscribe(createOperatorSubscriber(subscriber, function () { return distinctKeys.clear(); }, noop));\n });\n}\n//# sourceMappingURL=distinct.js.map","import { identity } from '../util/identity';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function distinctUntilChanged(comparator, keySelector) {\n if (keySelector === void 0) { keySelector = identity; }\n comparator = comparator !== null && comparator !== void 0 ? comparator : defaultCompare;\n return operate(function (source, subscriber) {\n var previousKey;\n var first = true;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var currentKey = keySelector(value);\n if (first || !comparator(previousKey, currentKey)) {\n first = false;\n previousKey = currentKey;\n subscriber.next(value);\n }\n }));\n });\n}\nfunction defaultCompare(a, b) {\n return a === b;\n}\n//# sourceMappingURL=distinctUntilChanged.js.map","import { createErrorClass } from './createErrorClass';\nexport var ArgumentOutOfRangeError = createErrorClass(function (_super) {\n return function ArgumentOutOfRangeErrorImpl() {\n _super(this);\n this.name = 'ArgumentOutOfRangeError';\n this.message = 'argument out of range';\n };\n});\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function filter(predicate, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return predicate.call(thisArg, value, index++) && subscriber.next(value); }));\n });\n}\n//# sourceMappingURL=filter.js.map","import { createErrorClass } from './createErrorClass';\nexport var EmptyError = createErrorClass(function (_super) {\n return function EmptyErrorImpl() {\n _super(this);\n this.name = 'EmptyError';\n this.message = 'no elements in sequence';\n };\n});\n//# sourceMappingURL=EmptyError.js.map","import { EmptyError } from '../util/EmptyError';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function throwIfEmpty(errorFactory) {\n if (errorFactory === void 0) { errorFactory = defaultErrorFactory; }\n return operate(function (source, subscriber) {\n var hasValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n hasValue = true;\n subscriber.next(value);\n }, function () { return (hasValue ? subscriber.complete() : subscriber.error(errorFactory())); }));\n });\n}\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n//# sourceMappingURL=throwIfEmpty.js.map","import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { filter } from './filter';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { take } from './take';\nexport function elementAt(index, defaultValue) {\n if (index < 0) {\n throw new ArgumentOutOfRangeError();\n }\n var hasDefaultValue = arguments.length >= 2;\n return function (source) {\n return source.pipe(filter(function (v, i) { return i === index; }), take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new ArgumentOutOfRangeError(); }));\n };\n}\n//# sourceMappingURL=elementAt.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function every(predicate, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n if (!predicate.call(thisArg, value, index++, source)) {\n subscriber.next(false);\n subscriber.complete();\n }\n }, function () {\n subscriber.next(true);\n subscriber.complete();\n }));\n });\n}\n//# sourceMappingURL=every.js.map","import { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function exhaustMap(project, resultSelector) {\n if (resultSelector) {\n return function (source) {\n return source.pipe(exhaustMap(function (a, i) { return innerFrom(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }));\n };\n }\n return operate(function (source, subscriber) {\n var index = 0;\n var innerSub = null;\n var isComplete = false;\n source.subscribe(createOperatorSubscriber(subscriber, function (outerValue) {\n if (!innerSub) {\n innerSub = createOperatorSubscriber(subscriber, undefined, function () {\n innerSub = null;\n isComplete && subscriber.complete();\n });\n innerFrom(project(outerValue, index++)).subscribe(innerSub);\n }\n }, function () {\n isComplete = true;\n !innerSub && subscriber.complete();\n }));\n });\n}\n//# sourceMappingURL=exhaustMap.js.map","import { exhaustMap } from './exhaustMap';\nimport { identity } from '../util/identity';\nexport function exhaustAll() {\n return exhaustMap(identity);\n}\n//# sourceMappingURL=exhaustAll.js.map","import { operate } from '../util/lift';\nexport function finalize(callback) {\n return operate(function (source, subscriber) {\n try {\n source.subscribe(subscriber);\n }\n finally {\n subscriber.add(callback);\n }\n });\n}\n//# sourceMappingURL=finalize.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function find(predicate, thisArg) {\n return operate(createFind(predicate, thisArg, 'value'));\n}\nexport function createFind(predicate, thisArg, emit) {\n var findIndex = emit === 'index';\n return function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var i = index++;\n if (predicate.call(thisArg, value, i, source)) {\n subscriber.next(findIndex ? i : value);\n subscriber.complete();\n }\n }, function () {\n subscriber.next(findIndex ? -1 : undefined);\n subscriber.complete();\n }));\n };\n}\n//# sourceMappingURL=find.js.map","import { operate } from '../util/lift';\nimport { createFind } from './find';\nexport function findIndex(predicate, thisArg) {\n return operate(createFind(predicate, thisArg, 'index'));\n}\n//# sourceMappingURL=findIndex.js.map","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) {\n return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); }));\n };\n}\n//# sourceMappingURL=first.js.map","import { Observable } from '../Observable';\nimport { innerFrom } from '../observable/innerFrom';\nimport { Subject } from '../Subject';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber, OperatorSubscriber } from './OperatorSubscriber';\nexport function groupBy(keySelector, elementOrOptions, duration, connector) {\n return operate(function (source, subscriber) {\n var element;\n if (!elementOrOptions || typeof elementOrOptions === 'function') {\n element = elementOrOptions;\n }\n else {\n (duration = elementOrOptions.duration, element = elementOrOptions.element, connector = elementOrOptions.connector);\n }\n var groups = new Map();\n var notify = function (cb) {\n groups.forEach(cb);\n cb(subscriber);\n };\n var handleError = function (err) { return notify(function (consumer) { return consumer.error(err); }); };\n var activeGroups = 0;\n var teardownAttempted = false;\n var groupBySourceSubscriber = new OperatorSubscriber(subscriber, function (value) {\n try {\n var key_1 = keySelector(value);\n var group_1 = groups.get(key_1);\n if (!group_1) {\n groups.set(key_1, (group_1 = connector ? connector() : new Subject()));\n var grouped = createGroupedObservable(key_1, group_1);\n subscriber.next(grouped);\n if (duration) {\n var durationSubscriber_1 = createOperatorSubscriber(group_1, function () {\n group_1.complete();\n durationSubscriber_1 === null || durationSubscriber_1 === void 0 ? void 0 : durationSubscriber_1.unsubscribe();\n }, undefined, undefined, function () { return groups.delete(key_1); });\n groupBySourceSubscriber.add(innerFrom(duration(grouped)).subscribe(durationSubscriber_1));\n }\n }\n group_1.next(element ? element(value) : value);\n }\n catch (err) {\n handleError(err);\n }\n }, function () { return notify(function (consumer) { return consumer.complete(); }); }, handleError, function () { return groups.clear(); }, function () {\n teardownAttempted = true;\n return activeGroups === 0;\n });\n source.subscribe(groupBySourceSubscriber);\n function createGroupedObservable(key, groupSubject) {\n var result = new Observable(function (groupSubscriber) {\n activeGroups++;\n var innerSub = groupSubject.subscribe(groupSubscriber);\n return function () {\n innerSub.unsubscribe();\n --activeGroups === 0 && teardownAttempted && groupBySourceSubscriber.unsubscribe();\n };\n });\n result.key = key;\n return result;\n }\n });\n}\n//# sourceMappingURL=groupBy.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function isEmpty() {\n return operate(function (source, subscriber) {\n source.subscribe(createOperatorSubscriber(subscriber, function () {\n subscriber.next(false);\n subscriber.complete();\n }, function () {\n subscriber.next(true);\n subscriber.complete();\n }));\n });\n}\n//# sourceMappingURL=isEmpty.js.map","import { __values } from \"tslib\";\nimport { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function takeLast(count) {\n return count <= 0\n ? function () { return EMPTY; }\n : operate(function (source, subscriber) {\n var buffer = [];\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n buffer.push(value);\n count < buffer.length && buffer.shift();\n }, function () {\n var e_1, _a;\n try {\n for (var buffer_1 = __values(buffer), buffer_1_1 = buffer_1.next(); !buffer_1_1.done; buffer_1_1 = buffer_1.next()) {\n var value = buffer_1_1.value;\n subscriber.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (buffer_1_1 && !buffer_1_1.done && (_a = buffer_1.return)) _a.call(buffer_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n }, undefined, function () {\n buffer = null;\n }));\n });\n}\n//# sourceMappingURL=takeLast.js.map","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\nexport function last(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) {\n return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); }));\n };\n}\n//# sourceMappingURL=last.js.map","import { reduce } from './reduce';\nimport { isFunction } from '../util/isFunction';\nexport function max(comparer) {\n return reduce(isFunction(comparer) ? function (x, y) { return (comparer(x, y) > 0 ? x : y); } : function (x, y) { return (x > y ? x : y); });\n}\n//# sourceMappingURL=max.js.map","import { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nexport function mergeScan(accumulator, seed, concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n return operate(function (source, subscriber) {\n var state = seed;\n return mergeInternals(source, subscriber, function (value, index) { return accumulator(state, value, index); }, concurrent, function (value) {\n state = value;\n }, false, undefined, function () { return (state = null); });\n });\n}\n//# sourceMappingURL=mergeScan.js.map","import { reduce } from './reduce';\nimport { isFunction } from '../util/isFunction';\nexport function min(comparer) {\n return reduce(isFunction(comparer) ? function (x, y) { return (comparer(x, y) < 0 ? x : y); } : function (x, y) { return (x < y ? x : y); });\n}\n//# sourceMappingURL=min.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function pairwise() {\n return operate(function (source, subscriber) {\n var prev;\n var hasPrev = false;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var p = prev;\n prev = value;\n hasPrev && subscriber.next([p, value]);\n hasPrev = true;\n }));\n });\n}\n//# sourceMappingURL=pairwise.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nvar BehaviorSubject = (function (_super) {\n __extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: false,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, (this._value = value));\n };\n return BehaviorSubject;\n}(Subject));\nexport { BehaviorSubject };\n//# sourceMappingURL=BehaviorSubject.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nvar ReplaySubject = (function (_super) {\n __extends(ReplaySubject, _super);\n function ReplaySubject(_bufferSize, _windowTime, _timestampProvider) {\n if (_bufferSize === void 0) { _bufferSize = Infinity; }\n if (_windowTime === void 0) { _windowTime = Infinity; }\n if (_timestampProvider === void 0) { _timestampProvider = dateTimestampProvider; }\n var _this = _super.call(this) || this;\n _this._bufferSize = _bufferSize;\n _this._windowTime = _windowTime;\n _this._timestampProvider = _timestampProvider;\n _this._buffer = [];\n _this._infiniteTimeWindow = true;\n _this._infiniteTimeWindow = _windowTime === Infinity;\n _this._bufferSize = Math.max(1, _bufferSize);\n _this._windowTime = Math.max(1, _windowTime);\n return _this;\n }\n ReplaySubject.prototype.next = function (value) {\n var _a = this, isStopped = _a.isStopped, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow, _timestampProvider = _a._timestampProvider, _windowTime = _a._windowTime;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._trimBuffer();\n var subscription = this._innerSubscribe(subscriber);\n var _a = this, _infiniteTimeWindow = _a._infiniteTimeWindow, _buffer = _a._buffer;\n var copy = _buffer.slice();\n for (var i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i]);\n }\n this._checkFinalizedStatuses(subscriber);\n return subscription;\n };\n ReplaySubject.prototype._trimBuffer = function () {\n var _a = this, _bufferSize = _a._bufferSize, _timestampProvider = _a._timestampProvider, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow;\n var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n if (!_infiniteTimeWindow) {\n var now = _timestampProvider.now();\n var last = 0;\n for (var i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n };\n return ReplaySubject;\n}(Subject));\nexport { ReplaySubject };\n//# sourceMappingURL=ReplaySubject.js.map","import { Observable } from '../Observable';\nimport { innerFrom } from './innerFrom';\nimport { argsOrArgArray } from '../util/argsOrArgArray';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nexport function race() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n sources = argsOrArgArray(sources);\n return sources.length === 1 ? innerFrom(sources[0]) : new Observable(raceInit(sources));\n}\nexport function raceInit(sources) {\n return function (subscriber) {\n var subscriptions = [];\n var _loop_1 = function (i) {\n subscriptions.push(innerFrom(sources[i]).subscribe(createOperatorSubscriber(subscriber, function (value) {\n if (subscriptions) {\n for (var s = 0; s < subscriptions.length; s++) {\n s !== i && subscriptions[s].unsubscribe();\n }\n subscriptions = null;\n }\n subscriber.next(value);\n })));\n };\n for (var i = 0; subscriptions && !subscriber.closed && i < sources.length; i++) {\n _loop_1(i);\n }\n };\n}\n//# sourceMappingURL=race.js.map","import { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { timer } from '../observable/timer';\nexport function repeat(countOrConfig) {\n var _a;\n var count = Infinity;\n var delay;\n if (countOrConfig != null) {\n if (typeof countOrConfig === 'object') {\n (_a = countOrConfig.count, count = _a === void 0 ? Infinity : _a, delay = countOrConfig.delay);\n }\n else {\n count = countOrConfig;\n }\n }\n return count <= 0\n ? function () { return EMPTY; }\n : operate(function (source, subscriber) {\n var soFar = 0;\n var sourceSub;\n var resubscribe = function () {\n sourceSub === null || sourceSub === void 0 ? void 0 : sourceSub.unsubscribe();\n sourceSub = null;\n if (delay != null) {\n var notifier = typeof delay === 'number' ? timer(delay) : innerFrom(delay(soFar));\n var notifierSubscriber_1 = createOperatorSubscriber(subscriber, function () {\n notifierSubscriber_1.unsubscribe();\n subscribeToSource();\n });\n notifier.subscribe(notifierSubscriber_1);\n }\n else {\n subscribeToSource();\n }\n };\n var subscribeToSource = function () {\n var syncUnsub = false;\n sourceSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, function () {\n if (++soFar < count) {\n if (sourceSub) {\n resubscribe();\n }\n else {\n syncUnsub = true;\n }\n }\n else {\n subscriber.complete();\n }\n }));\n if (syncUnsub) {\n resubscribe();\n }\n };\n subscribeToSource();\n });\n}\n//# sourceMappingURL=repeat.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { noop } from '../util/noop';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function sample(notifier) {\n return operate(function (source, subscriber) {\n var hasValue = false;\n var lastValue = null;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n hasValue = true;\n lastValue = value;\n }));\n innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, function () {\n if (hasValue) {\n hasValue = false;\n var value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n }, noop));\n });\n}\n//# sourceMappingURL=sample.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { timer } from './timer';\nexport function interval(period, scheduler) {\n if (period === void 0) { period = 0; }\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n if (period < 0) {\n period = 0;\n }\n return timer(period, period, scheduler);\n}\n//# sourceMappingURL=interval.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { sample } from './sample';\nimport { interval } from '../observable/interval';\nexport function sampleTime(period, scheduler) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n return sample(interval(period, scheduler));\n}\n//# sourceMappingURL=sampleTime.js.map","import { operate } from '../util/lift';\nimport { scanInternals } from './scanInternals';\nexport function scan(accumulator, seed) {\n return operate(scanInternals(accumulator, seed, arguments.length >= 2, true));\n}\n//# sourceMappingURL=scan.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nexport function sequenceEqual(compareTo, comparator) {\n if (comparator === void 0) { comparator = function (a, b) { return a === b; }; }\n return operate(function (source, subscriber) {\n var aState = createState();\n var bState = createState();\n var emit = function (isEqual) {\n subscriber.next(isEqual);\n subscriber.complete();\n };\n var createSubscriber = function (selfState, otherState) {\n var sequenceEqualSubscriber = createOperatorSubscriber(subscriber, function (a) {\n var buffer = otherState.buffer, complete = otherState.complete;\n if (buffer.length === 0) {\n complete ? emit(false) : selfState.buffer.push(a);\n }\n else {\n !comparator(a, buffer.shift()) && emit(false);\n }\n }, function () {\n selfState.complete = true;\n var complete = otherState.complete, buffer = otherState.buffer;\n complete && emit(buffer.length === 0);\n sequenceEqualSubscriber === null || sequenceEqualSubscriber === void 0 ? void 0 : sequenceEqualSubscriber.unsubscribe();\n });\n return sequenceEqualSubscriber;\n };\n source.subscribe(createSubscriber(aState, bState));\n innerFrom(compareTo).subscribe(createSubscriber(bState, aState));\n });\n}\nfunction createState() {\n return {\n buffer: [],\n complete: false,\n };\n}\n//# sourceMappingURL=sequenceEqual.js.map","import { __read, __spreadArray } from \"tslib\";\nimport { innerFrom } from '../observable/innerFrom';\nimport { Subject } from '../Subject';\nimport { SafeSubscriber } from '../Subscriber';\nimport { operate } from '../util/lift';\nexport function share(options) {\n if (options === void 0) { options = {}; }\n var _a = options.connector, connector = _a === void 0 ? function () { return new Subject(); } : _a, _b = options.resetOnError, resetOnError = _b === void 0 ? true : _b, _c = options.resetOnComplete, resetOnComplete = _c === void 0 ? true : _c, _d = options.resetOnRefCountZero, resetOnRefCountZero = _d === void 0 ? true : _d;\n return function (wrapperSource) {\n var connection;\n var resetConnection;\n var subject;\n var refCount = 0;\n var hasCompleted = false;\n var hasErrored = false;\n var cancelReset = function () {\n resetConnection === null || resetConnection === void 0 ? void 0 : resetConnection.unsubscribe();\n resetConnection = undefined;\n };\n var reset = function () {\n cancelReset();\n connection = subject = undefined;\n hasCompleted = hasErrored = false;\n };\n var resetAndUnsubscribe = function () {\n var conn = connection;\n reset();\n conn === null || conn === void 0 ? void 0 : conn.unsubscribe();\n };\n return operate(function (source, subscriber) {\n refCount++;\n if (!hasErrored && !hasCompleted) {\n cancelReset();\n }\n var dest = (subject = subject !== null && subject !== void 0 ? subject : connector());\n subscriber.add(function () {\n refCount--;\n if (refCount === 0 && !hasErrored && !hasCompleted) {\n resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero);\n }\n });\n dest.subscribe(subscriber);\n if (!connection &&\n refCount > 0) {\n connection = new SafeSubscriber({\n next: function (value) { return dest.next(value); },\n error: function (err) {\n hasErrored = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnError, err);\n dest.error(err);\n },\n complete: function () {\n hasCompleted = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnComplete);\n dest.complete();\n },\n });\n innerFrom(source).subscribe(connection);\n }\n })(wrapperSource);\n };\n}\nfunction handleReset(reset, on) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n if (on === true) {\n reset();\n return;\n }\n if (on === false) {\n return;\n }\n var onSubscriber = new SafeSubscriber({\n next: function () {\n onSubscriber.unsubscribe();\n reset();\n },\n });\n return innerFrom(on.apply(void 0, __spreadArray([], __read(args)))).subscribe(onSubscriber);\n}\n//# sourceMappingURL=share.js.map","import { createErrorClass } from './createErrorClass';\nexport var SequenceError = createErrorClass(function (_super) {\n return function SequenceErrorImpl(message) {\n _super(this);\n this.name = 'SequenceError';\n this.message = message;\n };\n});\n//# sourceMappingURL=SequenceError.js.map","import { createErrorClass } from './createErrorClass';\nexport var NotFoundError = createErrorClass(function (_super) {\n return function NotFoundErrorImpl(message) {\n _super(this);\n this.name = 'NotFoundError';\n this.message = message;\n };\n});\n//# sourceMappingURL=NotFoundError.js.map","import { EmptyError } from '../util/EmptyError';\nimport { SequenceError } from '../util/SequenceError';\nimport { NotFoundError } from '../util/NotFoundError';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function single(predicate) {\n return operate(function (source, subscriber) {\n var hasValue = false;\n var singleValue;\n var seenValue = false;\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n seenValue = true;\n if (!predicate || predicate(value, index++, source)) {\n hasValue && subscriber.error(new SequenceError('Too many matching values'));\n hasValue = true;\n singleValue = value;\n }\n }, function () {\n if (hasValue) {\n subscriber.next(singleValue);\n subscriber.complete();\n }\n else {\n subscriber.error(seenValue ? new NotFoundError('No matching values') : new EmptyError());\n }\n }));\n });\n}\n//# sourceMappingURL=single.js.map","import { filter } from './filter';\nexport function skip(count) {\n return filter(function (_, index) { return count <= index; });\n}\n//# sourceMappingURL=skip.js.map","import { identity } from '../util/identity';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function skipLast(skipCount) {\n return skipCount <= 0\n ?\n identity\n : operate(function (source, subscriber) {\n var ring = new Array(skipCount);\n var seen = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var valueIndex = seen++;\n if (valueIndex < skipCount) {\n ring[valueIndex] = value;\n }\n else {\n var index = valueIndex % skipCount;\n var oldValue = ring[index];\n ring[index] = value;\n subscriber.next(oldValue);\n }\n }));\n return function () {\n ring = null;\n };\n });\n}\n//# sourceMappingURL=skipLast.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { noop } from '../util/noop';\nexport function skipUntil(notifier) {\n return operate(function (source, subscriber) {\n var taking = false;\n var skipSubscriber = createOperatorSubscriber(subscriber, function () {\n skipSubscriber === null || skipSubscriber === void 0 ? void 0 : skipSubscriber.unsubscribe();\n taking = true;\n }, noop);\n innerFrom(notifier).subscribe(skipSubscriber);\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return taking && subscriber.next(value); }));\n });\n}\n//# sourceMappingURL=skipUntil.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function skipWhile(predicate) {\n return operate(function (source, subscriber) {\n var taking = false;\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return (taking || (taking = !predicate(value, index++))) && subscriber.next(value); }));\n });\n}\n//# sourceMappingURL=skipWhile.js.map","import { concat } from '../observable/concat';\nimport { popScheduler } from '../util/args';\nimport { operate } from '../util/lift';\nexport function startWith() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n var scheduler = popScheduler(values);\n return operate(function (source, subscriber) {\n (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);\n });\n}\n//# sourceMappingURL=startWith.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function switchMap(project, resultSelector) {\n return operate(function (source, subscriber) {\n var innerSubscriber = null;\n var index = 0;\n var isComplete = false;\n var checkComplete = function () { return isComplete && !innerSubscriber && subscriber.complete(); };\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe();\n var innerIndex = 0;\n var outerIndex = index++;\n innerFrom(project(value, outerIndex)).subscribe((innerSubscriber = createOperatorSubscriber(subscriber, function (innerValue) { return subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue); }, function () {\n innerSubscriber = null;\n checkComplete();\n })));\n }, function () {\n isComplete = true;\n checkComplete();\n }));\n });\n}\n//# sourceMappingURL=switchMap.js.map","import { switchMap } from './switchMap';\nimport { identity } from '../util/identity';\nexport function switchAll() {\n return switchMap(identity);\n}\n//# sourceMappingURL=switchAll.js.map","import { switchMap } from './switchMap';\nimport { operate } from '../util/lift';\nexport function switchScan(accumulator, seed) {\n return operate(function (source, subscriber) {\n var state = seed;\n switchMap(function (value, index) { return accumulator(state, value, index); }, function (_, innerValue) { return ((state = innerValue), innerValue); })(source).subscribe(subscriber);\n return function () {\n state = null;\n };\n });\n}\n//# sourceMappingURL=switchScan.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { noop } from '../util/noop';\nexport function takeUntil(notifier) {\n return operate(function (source, subscriber) {\n innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, function () { return subscriber.complete(); }, noop));\n !subscriber.closed && source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=takeUntil.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function takeWhile(predicate, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var result = predicate(value, index++);\n (result || inclusive) && subscriber.next(value);\n !result && subscriber.complete();\n }));\n });\n}\n//# sourceMappingURL=takeWhile.js.map","import { isFunction } from '../util/isFunction';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { identity } from '../util/identity';\nexport function tap(observerOrNext, error, complete) {\n var tapObserver = isFunction(observerOrNext) || error || complete\n ?\n { next: observerOrNext, error: error, complete: complete }\n : observerOrNext;\n return tapObserver\n ? operate(function (source, subscriber) {\n var _a;\n (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n var isUnsub = true;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var _a;\n (_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);\n subscriber.next(value);\n }, function () {\n var _a;\n isUnsub = false;\n (_a = tapObserver.complete) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n subscriber.complete();\n }, function (err) {\n var _a;\n isUnsub = false;\n (_a = tapObserver.error) === null || _a === void 0 ? void 0 : _a.call(tapObserver, err);\n subscriber.error(err);\n }, function () {\n var _a, _b;\n if (isUnsub) {\n (_a = tapObserver.unsubscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n }\n (_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver);\n }));\n })\n :\n identity;\n}\n//# sourceMappingURL=tap.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nexport function throttle(durationSelector, config) {\n return operate(function (source, subscriber) {\n var _a = config !== null && config !== void 0 ? config : {}, _b = _a.leading, leading = _b === void 0 ? true : _b, _c = _a.trailing, trailing = _c === void 0 ? false : _c;\n var hasValue = false;\n var sendValue = null;\n var throttled = null;\n var isComplete = false;\n var endThrottling = function () {\n throttled === null || throttled === void 0 ? void 0 : throttled.unsubscribe();\n throttled = null;\n if (trailing) {\n send();\n isComplete && subscriber.complete();\n }\n };\n var cleanupThrottling = function () {\n throttled = null;\n isComplete && subscriber.complete();\n };\n var startThrottle = function (value) {\n return (throttled = innerFrom(durationSelector(value)).subscribe(createOperatorSubscriber(subscriber, endThrottling, cleanupThrottling)));\n };\n var send = function () {\n if (hasValue) {\n hasValue = false;\n var value = sendValue;\n sendValue = null;\n subscriber.next(value);\n !isComplete && startThrottle(value);\n }\n };\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n hasValue = true;\n sendValue = value;\n !(throttled && !throttled.closed) && (leading ? send() : startThrottle(value));\n }, function () {\n isComplete = true;\n !(trailing && hasValue && throttled && !throttled.closed) && subscriber.complete();\n }));\n });\n}\n//# sourceMappingURL=throttle.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { throttle } from './throttle';\nimport { timer } from '../observable/timer';\nexport function throttleTime(duration, scheduler, config) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n var duration$ = timer(duration, scheduler);\n return throttle(function () { return duration$; }, config);\n}\n//# sourceMappingURL=throttleTime.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function timeInterval(scheduler) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n return operate(function (source, subscriber) {\n var last = scheduler.now();\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var now = scheduler.now();\n var interval = now - last;\n last = now;\n subscriber.next(new TimeInterval(value, interval));\n }));\n });\n}\nvar TimeInterval = (function () {\n function TimeInterval(value, interval) {\n this.value = value;\n this.interval = interval;\n }\n return TimeInterval;\n}());\nexport { TimeInterval };\n//# sourceMappingURL=timeInterval.js.map","import { dateTimestampProvider } from '../scheduler/dateTimestampProvider';\nimport { map } from './map';\nexport function timestamp(timestampProvider) {\n if (timestampProvider === void 0) { timestampProvider = dateTimestampProvider; }\n return map(function (value) { return ({ value: value, timestamp: timestampProvider.now() }); });\n}\n//# sourceMappingURL=timestamp.js.map","import { __read, __spreadArray } from \"tslib\";\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { identity } from '../util/identity';\nimport { noop } from '../util/noop';\nimport { popResultSelector } from '../util/args';\nexport function withLatestFrom() {\n var inputs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n inputs[_i] = arguments[_i];\n }\n var project = popResultSelector(inputs);\n return operate(function (source, subscriber) {\n var len = inputs.length;\n var otherValues = new Array(len);\n var hasValue = inputs.map(function () { return false; });\n var ready = false;\n var _loop_1 = function (i) {\n innerFrom(inputs[i]).subscribe(createOperatorSubscriber(subscriber, function (value) {\n otherValues[i] = value;\n if (!ready && !hasValue[i]) {\n hasValue[i] = true;\n (ready = hasValue.every(identity)) && (hasValue = null);\n }\n }, noop));\n };\n for (var i = 0; i < len; i++) {\n _loop_1(i);\n }\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n if (ready) {\n var values = __spreadArray([value], __read(otherValues));\n subscriber.next(project ? project.apply(void 0, __spreadArray([], __read(values))) : values);\n }\n }));\n });\n}\n//# sourceMappingURL=withLatestFrom.js.map","import { __read, __spreadArray } from \"tslib\";\nimport { Observable } from '../Observable';\nimport { innerFrom } from './innerFrom';\nimport { argsOrArgArray } from '../util/argsOrArgArray';\nimport { EMPTY } from './empty';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { popResultSelector } from '../util/args';\nexport function zip() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var resultSelector = popResultSelector(args);\n var sources = argsOrArgArray(args);\n return sources.length\n ? new Observable(function (subscriber) {\n var buffers = sources.map(function () { return []; });\n var completed = sources.map(function () { return false; });\n subscriber.add(function () {\n buffers = completed = null;\n });\n var _loop_1 = function (sourceIndex) {\n innerFrom(sources[sourceIndex]).subscribe(createOperatorSubscriber(subscriber, function (value) {\n buffers[sourceIndex].push(value);\n if (buffers.every(function (buffer) { return buffer.length; })) {\n var result = buffers.map(function (buffer) { return buffer.shift(); });\n subscriber.next(resultSelector ? resultSelector.apply(void 0, __spreadArray([], __read(result))) : result);\n if (buffers.some(function (buffer, i) { return !buffer.length && completed[i]; })) {\n subscriber.complete();\n }\n }\n }, function () {\n completed[sourceIndex] = true;\n !buffers[sourceIndex].length && subscriber.complete();\n }));\n };\n for (var sourceIndex = 0; !subscriber.closed && sourceIndex < sources.length; sourceIndex++) {\n _loop_1(sourceIndex);\n }\n return function () {\n buffers = completed = null;\n };\n })\n : EMPTY;\n}\n//# sourceMappingURL=zip.js.map","import { __extends } from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nvar VirtualTimeScheduler = (function (_super) {\n __extends(VirtualTimeScheduler, _super);\n function VirtualTimeScheduler(schedulerActionCtor, maxFrames) {\n if (schedulerActionCtor === void 0) { schedulerActionCtor = VirtualAction; }\n if (maxFrames === void 0) { maxFrames = Infinity; }\n var _this = _super.call(this, schedulerActionCtor, function () { return _this.frame; }) || this;\n _this.maxFrames = maxFrames;\n _this.frame = 0;\n _this.index = -1;\n return _this;\n }\n VirtualTimeScheduler.prototype.flush = function () {\n var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;\n var error;\n var action;\n while ((action = actions[0]) && action.delay <= maxFrames) {\n actions.shift();\n this.frame = action.delay;\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n }\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n VirtualTimeScheduler.frameTimeFactor = 10;\n return VirtualTimeScheduler;\n}(AsyncScheduler));\nexport { VirtualTimeScheduler };\nvar VirtualAction = (function (_super) {\n __extends(VirtualAction, _super);\n function VirtualAction(scheduler, work, index) {\n if (index === void 0) { index = (scheduler.index += 1); }\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.index = index;\n _this.active = true;\n _this.index = scheduler.index = index;\n return _this;\n }\n VirtualAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (Number.isFinite(delay)) {\n if (!this.id) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.active = false;\n var action = new VirtualAction(this.scheduler, this.work);\n this.add(action);\n return action.schedule(state, delay);\n }\n else {\n return Subscription.EMPTY;\n }\n };\n VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n this.delay = scheduler.frame + delay;\n var actions = scheduler.actions;\n actions.push(this);\n actions.sort(VirtualAction.sortActions);\n return 1;\n };\n VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return undefined;\n };\n VirtualAction.prototype._execute = function (state, delay) {\n if (this.active === true) {\n return _super.prototype._execute.call(this, state, delay);\n }\n };\n VirtualAction.sortActions = function (a, b) {\n if (a.delay === b.delay) {\n if (a.index === b.index) {\n return 0;\n }\n else if (a.index > b.index) {\n return 1;\n }\n else {\n return -1;\n }\n }\n else if (a.delay > b.delay) {\n return 1;\n }\n else {\n return -1;\n }\n };\n return VirtualAction;\n}(AsyncAction));\nexport { VirtualAction };\n//# sourceMappingURL=VirtualTimeScheduler.js.map","import { Observable } from '../Observable';\nimport { innerFrom } from './innerFrom';\nexport function defer(observableFactory) {\n return new Observable(function (subscriber) {\n innerFrom(observableFactory()).subscribe(subscriber);\n });\n}\n//# sourceMappingURL=defer.js.map","import { Observable } from '../Observable';\nimport { argsArgArrayOrObject } from '../util/argsArgArrayOrObject';\nimport { innerFrom } from './innerFrom';\nimport { popResultSelector } from '../util/args';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { createObject } from '../util/createObject';\nexport function forkJoin() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var resultSelector = popResultSelector(args);\n var _a = argsArgArrayOrObject(args), sources = _a.args, keys = _a.keys;\n var result = new Observable(function (subscriber) {\n var length = sources.length;\n if (!length) {\n subscriber.complete();\n return;\n }\n var values = new Array(length);\n var remainingCompletions = length;\n var remainingEmissions = length;\n var _loop_1 = function (sourceIndex) {\n var hasValue = false;\n innerFrom(sources[sourceIndex]).subscribe(createOperatorSubscriber(subscriber, function (value) {\n if (!hasValue) {\n hasValue = true;\n remainingEmissions--;\n }\n values[sourceIndex] = value;\n }, function () { return remainingCompletions--; }, undefined, function () {\n if (!remainingCompletions || !hasValue) {\n if (!remainingEmissions) {\n subscriber.next(keys ? createObject(keys, values) : values);\n }\n subscriber.complete();\n }\n }));\n };\n for (var sourceIndex = 0; sourceIndex < length; sourceIndex++) {\n _loop_1(sourceIndex);\n }\n });\n return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result;\n}\n//# sourceMappingURL=forkJoin.js.map","import { __generator } from \"tslib\";\nimport { identity } from '../util/identity';\nimport { isScheduler } from '../util/isScheduler';\nimport { defer } from './defer';\nimport { scheduleIterable } from '../scheduled/scheduleIterable';\nexport function generate(initialStateOrOptions, condition, iterate, resultSelectorOrScheduler, scheduler) {\n var _a, _b;\n var resultSelector;\n var initialState;\n if (arguments.length === 1) {\n (_a = initialStateOrOptions, initialState = _a.initialState, condition = _a.condition, iterate = _a.iterate, _b = _a.resultSelector, resultSelector = _b === void 0 ? identity : _b, scheduler = _a.scheduler);\n }\n else {\n initialState = initialStateOrOptions;\n if (!resultSelectorOrScheduler || isScheduler(resultSelectorOrScheduler)) {\n resultSelector = identity;\n scheduler = resultSelectorOrScheduler;\n }\n else {\n resultSelector = resultSelectorOrScheduler;\n }\n }\n function gen() {\n var state;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n state = initialState;\n _a.label = 1;\n case 1:\n if (!(!condition || condition(state))) return [3, 4];\n return [4, resultSelector(state)];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3:\n state = iterate(state);\n return [3, 1];\n case 4: return [2];\n }\n });\n }\n return defer((scheduler\n ?\n function () { return scheduleIterable(gen(), scheduler); }\n :\n gen));\n}\n//# sourceMappingURL=generate.js.map","import { defer } from './defer';\nexport function iif(condition, trueResult, falseResult) {\n return defer(function () { return (condition() ? trueResult : falseResult); });\n}\n//# sourceMappingURL=iif.js.map","import { mergeAll } from '../operators/mergeAll';\nimport { innerFrom } from './innerFrom';\nimport { EMPTY } from './empty';\nimport { popNumber, popScheduler } from '../util/args';\nimport { from } from './from';\nexport function merge() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = popScheduler(args);\n var concurrent = popNumber(args, Infinity);\n var sources = args;\n return !sources.length\n ?\n EMPTY\n : sources.length === 1\n ?\n innerFrom(sources[0])\n :\n mergeAll(concurrent)(from(sources, scheduler));\n}\n//# sourceMappingURL=merge.js.map","import { Observable } from '../Observable';\nimport { EMPTY } from './empty';\nexport function range(start, count, scheduler) {\n if (count == null) {\n count = start;\n start = 0;\n }\n if (count <= 0) {\n return EMPTY;\n }\n var end = count + start;\n return new Observable(scheduler\n ?\n function (subscriber) {\n var n = start;\n return scheduler.schedule(function () {\n if (n < end) {\n subscriber.next(n++);\n this.schedule();\n }\n else {\n subscriber.complete();\n }\n });\n }\n :\n function (subscriber) {\n var n = start;\n while (n < end && !subscriber.closed) {\n subscriber.next(n++);\n }\n subscriber.complete();\n });\n}\n//# sourceMappingURL=range.js.map","import {\n bindCallback,\n bindNodeCallback,\n defer,\n EMPTY,\n fromEvent,\n fromEventPattern,\n from,\n generate,\n iif,\n interval,\n of,\n range,\n throwError,\n timer\n} from \"rxjs\";\nimport { delayWhen } from \"rxjs/operators\";\n\nexport const creationExamples = {\n // Creates the Observable lazily, that is, only when it is subscribed.\n defer: {\n label: \"defer(() => of(10, 20, 30))\",\n inputs: [],\n apply: function (inputs, scheduler) {\n return defer(() =>\n of(10, 20, 30).pipe(delayWhen((x) => timer(x, scheduler)))\n );\n }\n },\n\n // Just emits 'complete', and nothing else.\n EMPTY: {\n label: \"EMPTY\",\n inputs: [],\n apply: function (inputs, scheduler) {\n return EMPTY;\n }\n },\n\n from: {\n label: \"from([10, 20, 30])\",\n inputs: [],\n apply: function (inputs, scheduler) {\n return from([10, 20, 30]).pipe(delayWhen((x) => timer(x, scheduler)));\n }\n },\n\n fromEvent: {\n label: \"fromEvent(document, 'click')\",\n inputs: [],\n apply: function (inputs, scheduler) {\n let t = 30;\n return from([\"ev\", \"ev\"]).pipe(\n delayWhen((ev) => timer((t += 20), scheduler))\n );\n }\n },\n\n fromEventPattern: {\n label: \"fromEventPattern(addHandler, removeHandler)\",\n inputs: [],\n apply: function (inputs, scheduler) {\n let t = 30;\n return from([\"ev\", \"ev\"]).pipe(\n delayWhen((ev) => timer((t += 20), scheduler))\n );\n }\n },\n\n generate: {\n label:\n \"generate({initialState: 0,condition: (x) => x < 3,iterate: (x) => x + 1,resultSelector: (x) => x})\",\n inputs: [],\n apply: function (inputs, scheduler) {\n return generate({\n initialState: 0,\n condition: (x) => x < 3,\n iterate: (x) => x + 1,\n resultSelector: (x) => x\n }).pipe(delayWhen((x) => timer(x * 10, scheduler)));\n }\n },\n\n iif: {\n label: \"iif(() => boolean, trueObservable, falseObservable)\",\n inputs: [],\n apply: function (inputs, scheduler) {\n return iif(() => true, of(\"true\"), of(\"false\"));\n }\n },\n\n interval: {\n label: \"interval(10, scheduler)\",\n inputs: [],\n apply: function (inputs, scheduler) {\n return interval(10, scheduler);\n }\n },\n\n of: {\n label: \"of(1,2,3)\",\n inputs: [],\n apply: function (inputs, scheduler) {\n return of(1, 2, 3).pipe(delayWhen((x) => timer(x * 10, scheduler)));\n }\n },\n\n range: {\n label: \"range(1, 10)\",\n inputs: [],\n apply: function (inputs, scheduler) {\n return range(1, 10).pipe(delayWhen((x) => timer(x * 10, scheduler)));\n }\n },\n\n timer: {\n label: \"timer(start: 30, interval: 10)\",\n inputs: [],\n apply: function (inputs, scheduler) {\n return timer(30, 10, scheduler);\n }\n }\n};\n","import { combineLatest, concat, forkJoin, merge, race, zip } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\n\nexport const combinationExamples = {\n combineLatest: {\n label: \"combineLatest([$0, $1])\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 20, c: 2 },\n { t: 65, c: 3 },\n { t: 75, c: 4 },\n { t: 92, c: 5 }\n ],\n [\n { t: 10, c: \"A\" },\n { t: 25, c: \"B\" },\n { t: 50, c: \"C\" },\n { t: 57, c: \"D\" }\n ]\n ],\n apply: function (inputs) {\n return combineLatest([inputs[0], inputs[1]]).pipe(\n map(([x, y]) => `[${x.content},${y.content}]`)\n );\n }\n },\n\n concat: {\n label: \"concat\",\n inputs: [\n [{ t: 0, c: 1 }, { t: 15, c: 1 }, { t: 50, c: 1 }, 57],\n [{ t: 0, c: 2 }, { t: 8, c: 2 }, 12]\n ],\n apply: function (inputs) {\n return concat(...inputs);\n }\n },\n\n forkJoin: {\n label: \"forkJoin\",\n inputs: [\n [{ t: 0, c: \"A\" }, { t: 15, c: \"B\" }, { t: 30, c: \"C\" }, 50],\n [{ t: 37, c: \"D\" }, { t: 68, c: \"E\" }, 80]\n ],\n apply: function (inputs) {\n return forkJoin(inputs).pipe(\n map(([x, y]) => `[${x.content},${y.content}]`)\n );\n }\n },\n\n merge: {\n label: \"merge\",\n inputs: [\n [{ t: 0, c: 1 }, { t: 15, c: 1 }, { t: 50, c: 1 }, 57],\n [{ t: 0, c: 2 }, { t: 8, c: 2 }, 12]\n ],\n apply: function (inputs) {\n return merge(...inputs);\n }\n },\n\n race: {\n label: \"race\",\n inputs: [\n [\n { t: 10, c: 20 },\n { t: 20, c: 40 },\n { t: 30, c: 60 }\n ],\n [\n { t: 5, c: 1 },\n { t: 15, c: 2 },\n { t: 25, c: 3 }\n ],\n [\n { t: 20, c: 0 },\n { t: 32, c: 0 },\n { t: 44, c: 0 }\n ]\n ],\n apply: function (inputs) {\n return race(inputs);\n }\n },\n\n zip: {\n label: \"zip\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 20, c: 2 },\n { t: 65, c: 3 },\n { t: 75, c: 4 },\n { t: 92, c: 5 }\n ],\n [\n { t: 10, c: \"A\" },\n { t: 25, c: \"B\" },\n { t: 50, c: \"C\" },\n { t: 57, c: \"D\" }\n ]\n ],\n apply: function (inputs) {\n return zip(inputs[0], inputs[1], (x, y) => \"\" + x.content + y.content);\n }\n }\n};\n","import { defaultIfEmpty, every, isEmpty, sequenceEqual } from \"rxjs/operators\";\n\nexport const conditionalExamples = {\n defaultIfEmpty: {\n label: \"defaultIfEmpty(true)\",\n inputs: [[99]],\n apply: function (inputs) {\n return inputs[0].pipe(defaultIfEmpty(true));\n }\n },\n\n every: {\n label: \"every(x => x < 10)\",\n inputs: [\n [\n { t: 5, c: 1 },\n { t: 15, c: 2 },\n { t: 25, c: 3 },\n { t: 35, c: 4 },\n { t: 65, c: 5 },\n 80\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(every(({ content }) => content < 10));\n }\n },\n\n isEmpty: {\n label: \"isEmpty(true)\",\n inputs: [[99]],\n apply: function (inputs) {\n return inputs[0].pipe(isEmpty(true));\n }\n },\n\n sequenceEqual: {\n label: \"sequenceEqual\",\n inputs: [\n [\n { t: 5, c: 1 },\n { t: 15, c: 2 },\n { t: 25, c: 3 },\n { t: 35, c: 4 },\n { t: 65, c: 5 },\n 85\n ],\n [\n { t: 2, c: 1 },\n { t: 20, c: 2 },\n { t: 40, c: 3 },\n { t: 70, c: 4 },\n { t: 77, c: 5 },\n 85\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(\n sequenceEqual(inputs[1], (x, y) => x.content === y.content)\n );\n }\n }\n};\n","import { timer } from \"rxjs\";\nimport {\n tap,\n /////////////////\n audit,\n auditTime,\n debounce,\n debounceTime,\n distinct,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n elementAt,\n filter,\n find,\n findIndex,\n first,\n ignoreElements,\n last,\n sample,\n sampleTime,\n single,\n skip,\n skipLast,\n skipUntil,\n skipWhile,\n take,\n takeLast,\n takeUntil,\n takeWhile,\n throttle,\n throttleTime\n} from \"rxjs/operators\";\n\nexport const filteringExamples = {\n audit: {\n label: \"audit\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 26, c: 2 },\n { t: 34, c: 3 },\n { t: 40, c: 4 },\n { t: 45, c: 5 },\n { t: 79, c: 6 }\n ],\n [\n { t: 30, c: \"A\" },\n { t: 60, c: \"B\" }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n audit(() => inputs[1].pipe(tap(console.log)), scheduler)\n );\n }\n },\n\n auditTime: {\n label: \"auditTime(30)\",\n inputs: [\n [\n { t: 0, c: 0 },\n { t: 26, c: 26 },\n { t: 34, c: 34 },\n { t: 40, c: 40 },\n { t: 45, c: 45 },\n { t: 79, c: 79 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(auditTime(30, scheduler));\n }\n },\n\n debounce: {\n label: \"debounce\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 26, c: 2 },\n { t: 34, c: 1 },\n { t: 40, c: 1 },\n { t: 45, c: 2 },\n { t: 79, c: 1 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n // debounce((x) => timer(x.content * 10, 1000, scheduler))\n debounce((x) => timer(x.content * 10, scheduler))\n );\n }\n },\n\n debounceTime: {\n label: \"debounceTime(10)\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 26, c: 2 },\n { t: 34, c: 3 },\n { t: 40, c: 4 },\n { t: 45, c: 5 },\n { t: 79, c: 6 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(debounceTime(10, scheduler));\n }\n },\n\n distinct: {\n label: \"distinct\",\n inputs: [\n [\n { t: 5, c: 1 },\n { t: 20, c: 2 },\n { t: 35, c: 2 },\n { t: 60, c: 1 },\n { t: 70, c: 3 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(distinct((x) => x.content));\n }\n },\n\n distinctUntilChanged: {\n label: \"distinctUntilChanged\",\n inputs: [\n [\n { t: 5, c: 1 },\n { t: 20, c: 2 },\n { t: 35, c: 2 },\n { t: 60, c: 1 },\n { t: 70, c: 3 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(distinctUntilChanged(undefined, (x) => x.content));\n }\n },\n\n elementAt: {\n label: \"elementAt(2)\",\n inputs: [\n [\n { t: 30, c: 1 },\n { t: 40, c: 2 },\n { t: 65, c: 3 },\n { t: 75, c: 4 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(elementAt(2));\n }\n },\n\n filter: {\n label: \"filter(x => x > 10)\",\n inputs: [\n [\n { t: 5, c: 2 },\n { t: 15, c: 30 },\n { t: 25, c: 22 },\n { t: 35, c: 5 },\n { t: 45, c: 60 },\n { t: 55, c: 1 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(filter((x) => x.content > 10));\n }\n },\n\n find: {\n label: \"find(x => x > 10)\",\n inputs: [\n [\n { t: 5, c: 2 },\n { t: 15, c: 30 },\n { t: 25, c: 22 },\n { t: 35, c: 5 },\n { t: 45, c: 60 },\n { t: 55, c: 1 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(find((x) => x.content > 10));\n }\n },\n\n findIndex: {\n label: \"findIndex(x => x > 10)\",\n inputs: [\n [\n { t: 5, c: 2 },\n { t: 15, c: 30 },\n { t: 25, c: 22 },\n { t: 35, c: 5 },\n { t: 45, c: 60 },\n { t: 55, c: 1 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(findIndex(({ content }) => content > 10));\n }\n },\n\n first: {\n label: \"first\",\n inputs: [\n [{ t: 30, c: 1 }, { t: 40, c: 2 }, { t: 65, c: 3 }, { t: 75, c: 4 }, 85]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(first());\n }\n },\n\n ignoreElements: {\n label: \"ignoreElements\",\n inputs: [\n [\n { t: 20, c: \"A\" },\n { t: 40, c: \"B\" },\n { t: 50, c: \"C\" },\n { t: 75, c: \"D\" },\n 90\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(ignoreElements());\n }\n },\n\n last: {\n label: \"last\",\n inputs: [\n [{ t: 30, c: 1 }, { t: 40, c: 2 }, { t: 65, c: 3 }, { t: 75, c: 4 }, 85]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(last());\n }\n },\n\n // Emits the most recently emitted value from the source Observable whenever another Observable, the notifier, emits.\n sample: {\n label: \"sample\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 20, c: 2 },\n { t: 40, c: 3 },\n { t: 60, c: 4 },\n { t: 80, c: 5 }\n ],\n [\n { t: 10, c: \"A\" },\n { t: 25, c: \"B\" },\n { t: 33, c: \"C\" },\n { t: 70, c: \"D\" },\n 90\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(sample(inputs[1]));\n }\n },\n\n sampleTime: {\n label: \"sampleTime(10)\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 20, c: 2 },\n { t: 40, c: 3 },\n { t: 60, c: 4 },\n { t: 80, c: 5 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(sampleTime(10, scheduler));\n }\n },\n\n single: {\n label: \"single\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 20, c: 2 },\n { t: 40, c: 3 },\n { t: 60, c: 4 },\n { t: 80, c: 5 },\n 100\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(single((x) => x.content == 3));\n }\n },\n\n skip: {\n label: \"skip(2)\",\n inputs: [\n [\n { t: 30, c: 1 },\n { t: 40, c: 2 },\n { t: 65, c: 3 },\n { t: 75, c: 4 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(skip(2));\n }\n },\n\n skipLast: {\n label: \"skipLast(2)\",\n inputs: [\n [\n { t: 30, c: 1 },\n { t: 40, c: 2 },\n { t: 65, c: 3 },\n { t: 75, c: 4 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(skipLast(2));\n }\n },\n\n skipUntil: {\n label: \"skipUntil\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 10, c: 2 },\n { t: 20, c: 3 },\n { t: 30, c: 4 },\n { t: 40, c: 5 },\n { t: 50, c: 6 },\n { t: 60, c: 7 },\n { t: 70, c: 8 },\n { t: 80, c: 9 }\n ],\n [\n { t: 45, c: 0 },\n { t: 73, c: 0 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(skipUntil(inputs[1]));\n }\n },\n\n skipWhile: {\n label: \"skipWhile(x => x < 5)\",\n inputs: [\n [\n { t: 5, c: 1 },\n { t: 20, c: 3 },\n { t: 35, c: 6 },\n { t: 50, c: 4 },\n { t: 65, c: 7 },\n { t: 80, c: 2 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(skipWhile((x) => x.content < 5));\n }\n },\n\n take: {\n label: \"take(2)\",\n inputs: [\n [{ t: 30, c: 1 }, { t: 40, c: 2 }, { t: 65, c: 3 }, { t: 75, c: 4 }, 85]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(take(2, scheduler));\n }\n },\n\n takeLast: {\n label: \"takeLast(1)\",\n inputs: [\n [{ t: 30, c: 1 }, { t: 40, c: 2 }, { t: 65, c: 3 }, { t: 75, c: 4 }, 85]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(takeLast(1));\n }\n },\n\n takeUntil: {\n label: \"takeUntil\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 10, c: 2 },\n { t: 20, c: 3 },\n { t: 30, c: 4 },\n { t: 40, c: 5 },\n { t: 50, c: 6 },\n { t: 60, c: 7 },\n { t: 70, c: 8 },\n { t: 80, c: 9 }\n ],\n [\n { t: 45, c: 0 },\n { t: 73, c: 0 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(takeUntil(inputs[1]));\n }\n },\n\n takeWhile: {\n label: \"takeWhile(x => x < 5)\",\n inputs: [\n [\n { t: 5, c: 1 },\n { t: 20, c: 3 },\n { t: 35, c: 6 },\n { t: 50, c: 4 },\n { t: 65, c: 7 },\n { t: 80, c: 2 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(takeWhile((x) => x.content < 5));\n }\n },\n\n throttle: {\n label: \"throttle\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 26, c: 2 },\n { t: 34, c: 1 },\n { t: 40, c: 1 },\n { t: 45, c: 2 },\n { t: 79, c: 1 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n throttle((x) => timer(x.content * 10, 1000, scheduler))\n );\n }\n },\n\n throttleTime: {\n label: \"throttleTime(25)\",\n inputs: [\n [\n { t: 0, c: \"A\" },\n { t: 8, c: \"B\" },\n { t: 16, c: \"C\" },\n { t: 40, c: \"D\" },\n { t: 55, c: \"E\" },\n { t: 60, c: \"F\" },\n { t: 70, c: \"G\" }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(throttleTime(25, scheduler));\n }\n }\n};\n","import { count, max, min, reduce } from \"rxjs/operators\";\n\nexport const mathExamples = {\n count: {\n label: \"count(x => x > 10)\",\n inputs: [\n [\n { t: 5, c: 2 },\n { t: 15, c: 30 },\n { t: 25, c: 22 },\n { t: 35, c: 5 },\n { t: 45, c: 60 },\n { t: 55, c: 1 },\n 80\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(count(({ content }) => content > 10));\n }\n },\n\n max: {\n label: \"max\",\n inputs: [\n [\n { t: 5, c: 2 },\n { t: 15, c: 30 },\n { t: 25, c: 22 },\n { t: 35, c: 5 },\n { t: 45, c: 60 },\n { t: 55, c: 1 },\n 80\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(\n max((x, y) => {\n if (x.content > y.content) {\n return 1;\n }\n if (x.content < y.content) {\n return -1;\n }\n return 0;\n })\n );\n }\n },\n\n min: {\n label: \"min\",\n inputs: [\n [\n { t: 5, c: 2 },\n { t: 15, c: 30 },\n { t: 25, c: 22 },\n { t: 35, c: 5 },\n { t: 45, c: 60 },\n { t: 55, c: 1 },\n 80\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(\n min((x, y) => {\n if (x.content > y.content) {\n return 1;\n }\n if (x.content < y.content) {\n return -1;\n }\n return 0;\n })\n );\n }\n },\n\n reduce: {\n label: \"reduce((x, y) => x + y)\",\n inputs: [\n [\n { t: 5, c: 1 },\n { t: 15, c: 2 },\n { t: 25, c: 3 },\n { t: 35, c: 4 },\n { t: 65, c: 5 },\n 80\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(\n reduce((x, y) =>\n Object.assign(x, { content: x.content + y.content, id: x.id + y.id })\n )\n );\n }\n }\n};\n","import { timer, EMPTY, of } from \"rxjs\";\nimport {\n reduce,\n tap,\n delayWhen,\n /////////////////\n buffer,\n bufferCount,\n bufferTime,\n bufferToggle,\n bufferWhen,\n concatMap,\n exhaustMap,\n expand,\n groupBy,\n map,\n mergeMap,\n mergeScan,\n pairwise,\n partition,\n repeat,\n scan,\n startWith,\n switchMap,\n switchScan,\n window,\n windowCount,\n windowTime,\n windowToggle,\n windowWhen,\n withLatestFrom\n} from \"rxjs/operators\";\n\nexport const transformationExamples = {\n buffer: {\n label: \"buffer\",\n inputs: [\n [\n { t: 9, c: \"A\" },\n { t: 23, c: \"B\" },\n { t: 40, c: \"C\" },\n { t: 54, c: \"D\" },\n { t: 60, c: \"E\" },\n { t: 85, c: \"F\" }\n ],\n [\n { t: 33, c: 0 },\n { t: 66, c: 0 },\n { t: 90, c: 0 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(\n map((i) => i.content),\n buffer(inputs[1]),\n map((x) => `[${x}]`)\n );\n }\n },\n\n bufferCount: {\n label: \"bufferCount(3, 2)\",\n inputs: [\n [\n { t: 9, c: \"A\" },\n { t: 23, c: \"B\" },\n { t: 40, c: \"C\" },\n { t: 54, c: \"D\" },\n { t: 71, c: \"E\" },\n { t: 85, c: \"F\" },\n 90\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(\n map((i) => i.content),\n bufferCount(3, 2),\n map((arr) => `[${arr}]`),\n tap(console.log)\n );\n }\n },\n\n bufferTime: {\n label: \"bufferTime(30)\",\n inputs: [\n [\n { t: 0, c: \"A\" },\n { t: 10, c: \"B\" },\n { t: 22, c: \"C\" },\n { t: 61, c: \"D\" },\n { t: 71, c: \"E\" },\n { t: 95, c: \"F\" }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n map((i) => i.content),\n bufferTime(30, scheduler),\n map((x) => `[${x}]`)\n );\n }\n },\n\n bufferToggle: {\n label: \"bufferToggle(open$, x => timer(x))\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 10, c: 2 },\n { t: 20, c: 3 },\n { t: 30, c: 4 },\n { t: 40, c: 5 },\n { t: 50, c: 6 },\n { t: 60, c: 7 },\n { t: 70, c: 8 },\n { t: 80, c: 9 }\n ],\n [\n { t: 15, c: 10 },\n { t: 45, c: 30 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n map((i) => i.content),\n bufferToggle(inputs[1], (x) => timer(x.content, scheduler)),\n map((x) => `[${x}]`)\n );\n }\n },\n\n bufferWhen: {\n label: \"bufferWhen\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 10, c: 2 },\n { t: 20, c: 3 },\n { t: 30, c: 4 },\n { t: 40, c: 5 },\n { t: 50, c: 6 },\n { t: 60, c: 7 },\n { t: 70, c: 8 },\n { t: 80, c: 9 }\n ],\n [\n { t: 35, c: 0 },\n { t: 50, c: 0 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(\n map((i) => i.content),\n bufferWhen(() => inputs[1]),\n map((x) => `[${x}]`)\n );\n }\n },\n\n concatMap: {\n label: \"concatMap\",\n inputs: [\n [\n { t: 0, c: \"A\" },\n { t: 42, c: \"B\" },\n { t: 55, c: \"C\" }\n ],\n [{ t: 0, c: 1 }, { t: 10, c: 2 }, { t: 20, c: 3 }, 20]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n concatMap((x) => inputs[1].pipe(map((y) => \"\" + x.content + y.content)))\n );\n }\n },\n\n exhaustMap: {\n label: \"exhaustMap\",\n inputs: [\n [\n { t: 0, c: \"A\" },\n { t: 42, c: \"B\" },\n { t: 55, c: \"C\" }\n ],\n [{ t: 0, c: 1 }, { t: 10, c: 2 }, { t: 20, c: 3 }, 20]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n exhaustMap((x) =>\n inputs[1].pipe(map((y) => \"\" + x.content + y.content))\n )\n );\n }\n },\n\n // // It's similar to mergeMap, but applies the projection function to every source value as well as every output value. It's recursive.\n // expand: {\n // label: \"expand:recursive\",\n // inputs: [\n // [{ t: 0, c: 2 }, 30],\n // [{ t: 0, c: 3 }, 10]\n // ],\n // apply: function (inputs, scheduler) {\n // return inputs[0].pipe(\n // expand((x) =>\n // x >= 18 ? EMPTY : inputs[1].pipe(map((y) => x.content * y.content))\n // )\n // );\n // }\n // },\n\n groupBy: {\n label: \"groupBy(i => i.content)【结果3,4重合】\",\n inputs: [\n [\n { t: 10, c: 1 },\n { t: 20, c: 2 },\n { t: 30, c: 1 },\n { t: 40, c: 2 },\n { t: 50, c: 1 },\n 60\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n groupBy((i) => i.content),\n mergeMap((group$) =>\n group$.pipe(reduce((acc, cur) => acc + cur.content, 0))\n ),\n tap(console.log)\n );\n }\n },\n\n map: {\n label: \"map(x => 10 * x)\",\n inputs: [\n [\n { t: 10, c: 1 },\n { t: 20, c: 2 },\n { t: 50, c: 3 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(map((i) => i.content * 10));\n }\n },\n\n mergeMap: {\n label: \"mergeMap\",\n inputs: [\n [\n { t: 0, c: \"A\" },\n { t: 42, c: \"B\" },\n { t: 55, c: \"C\" }\n ],\n [{ t: 0, c: 1 }, { t: 10, c: 2 }, { t: 20, c: 3 }, 20]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n mergeMap((x) => inputs[1].pipe(map((y) => \"\" + x.content + y.content)))\n );\n }\n },\n\n // It's like scan, but the Observables returned by the accumulator are merged into the outer Observable.\n mergeScan: {\n label: \"mergeScan\",\n inputs: [\n [\n { t: 5, c: 1 },\n { t: 15, c: 2 },\n { t: 25, c: 3 },\n { t: 35, c: 4 },\n { t: 65, c: 5 },\n 70\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(mergeScan((acc, x) => of(acc + x.content), 0));\n }\n },\n\n pairwise: {\n label: \"pairwise\",\n inputs: [\n [\n { t: 9, c: \"A\" },\n { t: 23, c: \"B\" },\n { t: 40, c: \"C\" },\n { t: 54, c: \"D\" },\n { t: 71, c: \"E\" },\n { t: 85, c: \"F\" }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(\n map((x) => x.content),\n pairwise(),\n map((x) => `[${x}]`)\n );\n }\n },\n\n // partition\n // const observableValues = of(1, 2, 3, 4, 5, 6);\n // const [evens$, odds$] = partition(observableValues, value => value % 2 === 0);\n\n repeat: {\n label: \"repeat(3)\",\n inputs: [[{ t: 0, c: \"A\" }, { t: 12, c: \"B\" }, 26]],\n apply: function (inputs) {\n return inputs[0].pipe(repeat(3));\n }\n },\n\n scan: {\n label: \"scan\",\n inputs: [\n [\n { t: 5, c: 1 },\n { t: 15, c: 2 },\n { t: 25, c: 3 },\n { t: 35, c: 4 },\n { t: 65, c: 5 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(scan((acc, x) => acc + x.content, 0));\n }\n },\n\n startWith: {\n label: \"startWith(1)\",\n inputs: [\n [\n { t: 30, c: 2 },\n { t: 40, c: 3 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(startWith(1, scheduler));\n }\n },\n\n switchMap: {\n label: \"switchMap\",\n inputs: [\n [\n { t: 0, c: \"A\" },\n { t: 42, c: \"B\" },\n { t: 55, c: \"C\" }\n ],\n [{ t: 0, c: 1 }, { t: 10, c: 2 }, { t: 20, c: 3 }, 25]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n map((x) => x.content),\n switchMap(\n () => inputs[1].pipe(map((x) => x.content)),\n (x, y) => \"\" + x + y\n )\n );\n }\n },\n\n // It's like mergeScan, but only the most recent Observable returned by the accumulator is merged into the outer Observable.\n switchScan: {\n label: \"switchScan\",\n inputs: [\n [\n { t: 5, c: 1 },\n { t: 15, c: 2 },\n { t: 25, c: 3 },\n { t: 35, c: 4 },\n { t: 65, c: 5 },\n 70\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(switchScan((acc, x) => of(acc + x.content), 0));\n }\n },\n\n withLatestFrom: {\n label: 'withLatestFrom(input, (x, y) => \"\" + x + y)',\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 20, c: 2 },\n { t: 65, c: 3 },\n { t: 75, c: 4 },\n { t: 92, c: 5 }\n ],\n [\n { t: 10, c: \"A\" },\n { t: 25, c: \"B\" },\n { t: 50, c: \"C\" },\n { t: 57, c: \"D\" }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(\n withLatestFrom(inputs[1], (x, y) => \"\" + x.content + y.content)\n );\n }\n }\n};\n","import { timer } from \"rxjs\";\nimport {\n map,\n /////////////////\n catchError,\n delay,\n delayWhen,\n dematerialize,\n finalize,\n materialize,\n observeOn,\n repeat,\n retry,\n subscribeOn,\n tap,\n timeInterval,\n timeout,\n timestamp,\n toArray\n} from \"rxjs/operators\";\n\nexport const utilityExamples = {\n delay: {\n label: \"delay(20)\",\n inputs: [\n [\n { t: 10, c: \"1\" },\n { t: 20, c: \"2\" },\n { t: 70, c: \"1\" }\n ]\n ],\n apply: (inputs, scheduler) =>\n inputs[0].pipe(\n map((x) => x.content),\n delay(20, scheduler)\n )\n },\n\n delayWhen: {\n label: \"delayWhen(x => timer(20 * x))\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 10, c: 2 },\n { t: 20, c: 1 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n delayWhen(({ content }) => timer(content * 20, 1000, scheduler))\n );\n }\n },\n\n finalize: {\n label: \"finalize\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 10, c: 2 },\n { t: 20, c: 3 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(finalize(() => console.log(\"finalize\")));\n }\n },\n\n tap: {\n label: \"tap\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 10, c: 2 },\n { t: 20, c: 1 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(tap((x) => x.content));\n }\n },\n\n timeInterval: {\n label: \"timeInterval\",\n inputs: [\n [\n { t: 10, c: \"A\" },\n { t: 20, c: \"B\" },\n { t: 60, c: \"C\" },\n { t: 90, c: \"D\" }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n timeInterval(scheduler),\n map(({ value, interval }) => parseInt(interval))\n );\n }\n },\n\n timestamp: {\n label: \"timestamp\",\n inputs: [\n [\n { t: 10, c: \"A\" },\n { t: 20, c: \"B\" },\n { t: 60, c: \"C\" },\n { t: 90, c: \"D\" }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n timestamp(scheduler),\n map(({ value, timestamp }) => parseInt(timestamp))\n );\n }\n },\n\n toArray: {\n label: \"toArray\",\n inputs: [[{ t: 10, c: \"A\" }, { t: 20, c: \"B\" }, { t: 60, c: \"C\" }, 70]],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n map((x) => x.content),\n toArray(),\n map((arr) => `[${arr}]`)\n );\n }\n }\n};\n","import { range, timer } from \"rxjs\";\nimport {\n map,\n delayWhen,\n combineLatestAll,\n concatAll,\n exhaustAll,\n mergeAll,\n switchAll\n} from \"rxjs/operators\";\nimport { Examples } from \"./index\";\n\nexport const flatternExamples = {\n combineLatestAll: {\n label: \"combineLatestAll\",\n inputs: [\n [{ t: 0, c: \"A\" }, { t: 10, c: \"B\" }, { t: 20, c: \"C\" }, 25],\n [{ t: 0, c: \"D\" }, { t: 10, c: \"E\" }, { t: 20, c: \"F\" }, 25]\n ],\n apply: function (inputs, scheduler) {\n const highOrder$ = range(0, inputs.length).pipe(\n delayWhen((i) => timer(i * 20, scheduler)),\n map((i) => inputs[i])\n );\n return highOrder$.pipe(\n combineLatestAll(),\n map(([x, y]) => `[${x.content},${y.content}]`)\n );\n }\n },\n\n concatAll: {\n label: \"concatAll\",\n inputs: [\n [{ t: 0, c: \"A\" }, { t: 10, c: \"B\" }, { t: 20, c: \"C\" }, 25],\n [{ t: 0, c: \"D\" }, { t: 10, c: \"E\" }, { t: 20, c: \"F\" }, 25],\n [{ t: 0, c: \"G\" }, { t: 10, c: \"H\" }, { t: 20, c: \"I\" }, 25]\n ],\n apply: function (inputs, scheduler) {\n const highOrder$ = range(0, inputs.length).pipe(\n delayWhen((i) => timer(i * 20, scheduler)),\n map((i) => inputs[i])\n );\n return highOrder$.pipe(concatAll());\n }\n },\n\n exhaustAll: {\n label: \"exhaustAll\",\n inputs: [\n [{ t: 0, c: \"A\" }, { t: 10, c: \"B\" }, { t: 20, c: \"C\" }, 25],\n [{ t: 0, c: \"D\" }, { t: 10, c: \"E\" }, { t: 20, c: \"F\" }, 25],\n [{ t: 0, c: \"G\" }, { t: 10, c: \"H\" }, { t: 20, c: \"I\" }, 25]\n ],\n apply: function (inputs, scheduler) {\n const highOrder$ = range(0, inputs.length).pipe(\n delayWhen((i) => timer(i * 20, scheduler)),\n map((i) => inputs[i])\n );\n return highOrder$.pipe(exhaustAll());\n }\n },\n\n mergeAll: {\n label: \"mergeAll\",\n inputs: [\n [{ t: 0, c: \"A\" }, { t: 5, c: \"B\" }, { t: 15, c: \"C\" }, 25],\n [{ t: 0, c: \"D\" }, { t: 8, c: \"E\" }, { t: 18, c: \"F\" }, 25],\n [{ t: 0, c: \"G\" }, { t: 10, c: \"H\" }, { t: 20, c: \"I\" }, 25]\n ],\n apply: function (inputs, scheduler) {\n const highOrder$ = range(0, inputs.length).pipe(\n delayWhen((i) => timer(i * 20, scheduler)),\n map((i) => inputs[i])\n );\n return highOrder$.pipe(mergeAll());\n }\n },\n\n switchAll: {\n label: \"switchAll\",\n inputs: [\n [{ t: 0, c: \"A\" }, { t: 10, c: \"B\" }, { t: 20, c: \"C\" }, 25],\n [{ t: 0, c: \"D\" }, { t: 10, c: \"E\" }, { t: 20, c: \"F\" }, 25],\n [{ t: 0, c: \"G\" }, { t: 10, c: \"H\" }, { t: 20, c: \"I\" }, 25]\n ],\n apply: function (inputs, scheduler) {\n const highOrder$ = range(0, inputs.length).pipe(\n delayWhen((i) => timer(i * 20, scheduler)),\n map((i) => inputs[i])\n );\n return highOrder$.pipe(switchAll());\n }\n }\n} as Examples;\n","import {\n map,\n /////////////////\n share\n} from \"rxjs/operators\";\n\nexport const multicastingExamples = {\n share: {\n label: \"share\",\n inputs: [\n [\n { t: 10, c: \"1\" },\n { t: 20, c: \"2\" },\n { t: 70, c: \"1\" }\n ]\n ],\n apply: (inputs, scheduler) =>\n inputs[0].pipe(\n map((x) => x.content),\n share()\n )\n }\n};\n","import { creationExamples } from \"./creation-examples\";\nimport { combinationExamples } from \"./combination-examples\";\nimport { conditionalExamples } from \"./conditional-examples\";\nimport { filteringExamples } from \"./filtering-examples\";\nimport { mathExamples } from \"./math-examples\";\nimport { transformationExamples } from \"./transformation-examples\";\nimport { utilityExamples } from \"./utility-examples\";\nimport { flatternExamples } from \"./flattern-examples\";\nimport { multicastingExamples } from \"./multicasting-examples\";\n\n// https://rxjs.dev/api/operators/merge\nexport const categories = {\n \"Creation Observables\": creationExamples,\n \"Combination Operators\": combinationExamples,\n \"Flattern Operators\": flatternExamples,\n \"Multicasting Operators\": multicastingExamples,\n \"Transformation Operators\": transformationExamples,\n \"Filtering Operators\": filteringExamples,\n \"Conditional Operators\": conditionalExamples,\n \"Utility Operators\": utilityExamples,\n \"Mathematical Operators\": mathExamples\n};\n","import { Observable, SchedulerLike } from \"rxjs\";\nimport { categories } from \"./categories\";\n\nexport type MarbleInput = {\n t: number; // time: 0 ~ 100\n c: number | string; // 显示字符\n};\n\nexport type MarbleInputArray = MarbleInput[];\n// export type MultiMarbleInputArray = MarbleInputArray[];\n\nexport type TimelineInput = (MarbleInput | number)[]; // last of array 如果是 number = EndMarkerTime\nexport type TimelineInputArray = TimelineInput[];\n\nexport type Props = { minTime: number; maxTime: number; isTall?: boolean };\n\nexport type Marble = {\n marbleID: number;\n time: number; // time: 0 ~ 100\n content: string | number; // 显示字符\n};\n\nexport type EndMarker = Pick<Marble, \"time\">;\nexport type ErrorMarker = Pick<Marble, \"time\">;\n\nexport type Timeline = {\n timelineID: number;\n marbles: Marble[];\n end: EndMarker;\n error?: ErrorMarker;\n interactive: boolean;\n};\n\nexport type Example = {\n label: string;\n inputs: TimelineInputArray;\n apply: (\n inputs: Observable<Marble>[],\n scheduler: SchedulerLike\n ) => Observable<any>;\n};\n\nexport type Examples = {\n [index: string]: Example;\n};\n\nexport const examples: Examples = Object.values<Examples>(categories).reduce(\n (acc, o) => Object.assign(acc, o),\n {}\n);\n\nexport { categories };\n","export const MAX_TIME = 100;\nexport const MARBLE_SIZE = 2.3;\nexport const STROKE_WIDTH = 0.3;\n\nexport const containerWidth = { width: \"1060px\" };\n\nexport const userSelectNone = {\n userSelect: \"none\"\n};\n\nexport const COLORS = {\n blue: \"#3EA1CB\",\n yellow: \"#FFCB46\",\n red: \"#FF6946\",\n green: \"#82D736\",\n white: \"#FFFFFF\",\n almostWhite: \"#ECECEC\",\n greyLight: \"#D4D4D4\",\n grey: \"#A7A7A7\",\n greyDark: \"#7C7C7C\",\n black: \"#323232\"\n};\nexport const blue = { color: COLORS.blue };\nexport const yellow = { color: COLORS.yellow };\nexport const red = { color: COLORS.red };\nexport const green = { color: COLORS.green };\nexport const white = { color: COLORS.white };\nexport const almostWhite = { color: COLORS.almostWhite };\nexport const greyLight = { color: COLORS.greyLight };\nexport const grey = { color: COLORS.grey };\nexport const greyDark = { color: COLORS.greyDark };\nexport const black = { color: COLORS.black };\nexport const bgWhite = { backgroundColor: COLORS.white };\n\nexport const DIMENS = {\n spaceTiny: \"5px\",\n spaceSmall: \"10px\",\n spaceMedium: \"22px\",\n spaceLarge: \"32px\",\n spaceHuge: \"42px\",\n\n animationDurationQuick: \"100ms\",\n animationDurationNormal: \"200ms\",\n animationDurationSlow: \"400ms\"\n};\n\nexport const FONTS = {\n base: \"'Source Sans Pro', sans-serif\",\n code: \"'Source Code Pro', monospace\",\n special: \"'Signika', Helvetica, serif\"\n};\nexport const fontBase = { fontFamily: FONTS.base };\nexport const fontCode = { fontFamily: FONTS.code };\nexport const fontSpecial = { fontFamily: FONTS.special };\n\nexport const elevation1 = {\n \"box-shadow\": \"0px 1px 2px 1px rgba(0,0,0,0.17)\"\n};\n\nexport const timelineStyle = {\n padding: `${DIMENS.spaceSmall} ${DIMENS.spaceMedium}`\n};\n\nexport const POSSIBLE_COLORS = [\n COLORS.blue,\n COLORS.green,\n COLORS.yellow,\n COLORS.red\n];\n\nexport const operatorsMenuItemStyle = Object.assign(\n {\n fontSize: \"1rem\",\n lineHeight: \"1.6rem\"\n },\n greyDark\n);\n\nexport const operatorsMenuStyle = {\n marginRight: DIMENS.spaceLarge,\n boxSizing: \"border-box\",\n overflowY: \"scroll\",\n height: \"calc(100vh - 150px)\"\n};\n\nexport const sandboxStyle = Object.assign(bgWhite, elevation1, {\n borderRadius: \"2px\"\n});\n\nexport function getElevationPseudoElementStyle(\n dy: string,\n blur: string,\n opacity: string\n) {\n return `\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n -webkit-box-shadow: 0 ${dy} ${blur} 0 rgba(0,0,0,${opacity});\n -moz-box-shadow: 0 ${dy} ${blur} 0 rgba(0,0,0,${opacity});\n box-shadow: 0 ${dy} ${blur} 0 rgba(0,0,0,${opacity});\n `;\n}\n","import {\n Observable,\n Subject,\n ReplaySubject,\n BehaviorSubject,\n of,\n VirtualTimeScheduler,\n timer,\n combineLatest\n} from \"rxjs\";\nimport {\n observeOn,\n map,\n reduce,\n mergeAll,\n distinctUntilChanged,\n switchMap,\n share,\n takeUntil,\n debounceTime,\n timestamp\n} from \"rxjs/operators\";\nimport { curry, last, assoc, clamp } from \"@zyzgroup/core-common\";\nimport { useHashChange$ } from \"@zyzgroup/core-web\";\nimport {\n examples,\n TimelineInputArray,\n TimelineInput,\n MarbleInputArray,\n Example,\n Props,\n Timeline,\n Marble,\n EndMarker\n} from \"./data\";\nimport { MAX_TIME } from \"./styles\";\n\n// operator name\nexport const store$: Observable<string> = useHashChange$().pipe(\n map((route) => {\n let r = \"merge\";\n if (route && route.split(\"/rx/\")[1]) {\n r = route.split(\"/rx/\")[1];\n }\n return r;\n })\n);\n\n// operator 示例\nexport const example$: Observable<Example> = store$.pipe(\n map((route) => examples[route]),\n share({\n connector: () => new ReplaySubject(1),\n resetOnError: false,\n resetOnComplete: false,\n resetOnRefCountZero: false\n })\n);\n\n// input timelines\nexport const inputTimelines$: Observable<Timeline[]> = example$.pipe(\n switchMap((example) => of(inputsToTimelines(example.inputs))),\n share({\n connector: () => new ReplaySubject(1),\n resetOnError: false,\n resetOnComplete: false,\n resetOnRefCountZero: false\n })\n);\n\n// 移动的 Marble Subject\nexport const changedMarbleSubject$ = new BehaviorSubject<{\n marbleID?: number;\n time?: number;\n}>({});\n\n// 移动的 Marble\nconst changedMarble$ = changedMarbleSubject$.pipe(\n debounceTime(100),\n distinctUntilChanged()\n);\n\n// 移动的 EndMarker Subject\nexport const changedEndMarkerSubject$ = new BehaviorSubject<{\n timelineID?: number;\n time?: number;\n}>({});\n\n// 移动的 EndMarker\nconst changedEndMarker$ = changedEndMarkerSubject$.pipe(\n debounceTime(100),\n distinctUntilChanged()\n);\n\n// EndMarker 的最终time\nexport const endMarkerMinTime$ = combineLatest([\n inputTimelines$,\n changedEndMarker$\n]).pipe(\n map(([inputTimelines, changedEndMarker]) => {\n let time = changedEndMarker.time ?? 0;\n for (const tl of inputTimelines) {\n time = Math.max(time, tl.end.time);\n }\n return time;\n })\n);\n\nexport const outputTimeline$: Observable<Timeline> = combineLatest([\n inputTimelines$,\n example$,\n changedMarble$,\n changedEndMarker$,\n endMarkerMinTime$\n]).pipe(\n debounceTime(100),\n map(\n ([\n inputTimelines,\n example,\n changedMarble,\n changedEndMarker,\n endMarkerMinTime\n ]) => {\n for (const tl of inputTimelines) {\n const marbleIndex = tl.marbles.findIndex(\n (m) => m.marbleID == changedMarble.marbleID\n );\n // 更改 移动的 marble 的 time\n if (marbleIndex >= 0 && changedMarble.time) {\n tl.marbles[marbleIndex].time = changedMarble.time;\n }\n // 更改 EndMarker 的 time\n if (\n tl.timelineID == changedEndMarker.timelineID &&\n changedEndMarker.time\n ) {\n tl.end.time = changedEndMarker.time;\n }\n }\n // 生成 scheduler\n const vtScheduler = new VirtualTimeScheduler(undefined, MAX_TIME);\n const inputTimelineMarbles$Array: Observable<Marble>[] =\n inputTimelines.map((tl) => toVTStream(vtScheduler, tl));\n const outputline$: Observable<any> = example\n .apply(inputTimelineMarbles$Array, vtScheduler)\n .pipe(\n // add 0.01 or else things at exactly MAX_TIME will cut off\n takeUntil(timer(MAX_TIME + 0.01, vtScheduler))\n );\n return formatOutputTimeline$(vtScheduler, outputline$, endMarkerMinTime);\n }\n ),\n mergeAll(),\n share({\n connector: () => new ReplaySubject(1),\n resetOnError: false,\n resetOnComplete: false,\n resetOnRefCountZero: false\n })\n);\n\nfunction formatOutputTimeline$(\n scheduler: VirtualTimeScheduler,\n stream: Observable<any>,\n endMarkerMinTime: number\n): Observable<Timeline> {\n const subject$ = new ReplaySubject<Marble[]>(1);\n const stop$ = new Subject<void>();\n let endTime: number;\n stream\n .pipe(\n observeOn(scheduler),\n timestamp(scheduler),\n map(({ value, timestamp }) => {\n const marble =\n typeof value !== \"object\"\n ? {\n marbleID: calculateNotificationContentHash(value),\n content: value\n }\n : value;\n return assoc(\"time\", (timestamp / MAX_TIME) * 100, marble);\n }),\n takeUntil(stop$),\n reduce((a, b) => a.concat(b), [])\n // map((items) =>\n // items.map(\n // (item, i) =>\n // Object.assign(item, {\n // // itemId: i\n // }) as Marble\n // )\n // )\n )\n .subscribe({\n next: (items) => {\n subject$.next(items);\n },\n error: undefined,\n complete: () => {\n endTime = scheduler.now();\n }\n });\n scheduler.flush();\n stop$.next();\n return subject$.pipe(\n map((marbles) => ({\n timelineID: 0,\n marbles,\n end: { time: clamp(endTime, endMarkerMinTime, 100) },\n interactive: false\n }))\n );\n}\n\nconst toVTStream = curry(function (scheduler, data: Timeline) {\n return new Observable<Marble>((observer) => {\n data.marbles.forEach((item) =>\n scheduler.schedule(() => observer.next(item), item.time)\n );\n }).pipe(takeUntil(timer(data.end.time + 1, scheduler)));\n});\n\nfunction inputsToTimelines(inputs: TimelineInputArray): Timeline[] {\n return inputs.map((input, index) => ({\n timelineID: index,\n marbles: inputToMarbles(getInput(input)),\n end: { time: getTime(input) },\n interactive: true\n }));\n}\n\nfunction getInput(input: TimelineInput): MarbleInputArray {\n const lastInput = last(input);\n return (\n typeof lastInput === \"number\" ? input.slice(0, -1) : input\n ) as MarbleInputArray;\n}\n\nfunction getTime(input: TimelineInput) {\n const lastInput = last(input);\n return typeof lastInput === \"number\" ? lastInput : 100;\n}\n\nfunction inputToMarbles(stream: MarbleInputArray): Marble[] {\n return stream.map(({ t: time, c: content }) => ({\n marbleID: calculateNotificationHash({ time, content }),\n time,\n content\n }));\n}\n\nfunction calculateNotificationContentHash(content: string | number | boolean) {\n const SMALL_PRIME_1 = 59;\n const SMALL_PRIME_2 = 97;\n const SOME_PRIME_NUMBER = 877;\n if (typeof content === \"string\") {\n return content\n .split(\"\")\n .map((x) => x.charCodeAt(0))\n .reduce((x, y) => x * SMALL_PRIME_1 + y * SMALL_PRIME_2);\n } else if (typeof content === \"number\") {\n return content * SOME_PRIME_NUMBER;\n } else {\n return content ? SOME_PRIME_NUMBER : SOME_PRIME_NUMBER * 3;\n }\n}\n\nfunction calculateNotificationHash({\n time,\n content\n}: {\n time: number;\n content: string | number | boolean;\n}) {\n const SMALL_PRIME = 7;\n const LARGE_PRIME = 1046527;\n const MAX = 100000;\n const contentHash = calculateNotificationContentHash(content);\n return ((time + contentHash + SMALL_PRIME) * LARGE_PRIME) % MAX;\n}\n\nexport function getPercentageFn(parentElement: HTMLElement) {\n const { width, left } = parentElement.getBoundingClientRect();\n const ratio = 100 / width || 0.15;\n const elementLeft = left + window.scrollX;\n return (x: number) => (x - elementLeft) * ratio;\n}\n\n// export function getTimeChange$(element: HTMLElement) {\n// const timeChange$: Observable<number> = mouseDown$(element).pipe(\n// map((e) => (e.currentTarget as HTMLElement)!.parentElement!),\n// map(getPercentageFn),\n// switchMap((getPercentage: (x: number) => number) =>\n// documentMouseMove$.pipe(\n// takeUntil(documentMouseUp$),\n// map((e) => e.pageX),\n// map(getPercentage),\n// distinctUntilChanged()\n// )\n// )\n// );\n// return timeChange$;\n// }\n\n// export function getTime$(\n// props$: Observable<Props>,\n// timeSource$: Observable<number>,\n// timeChange$: Observable<number>,\n// isDraggable$: Observable<boolean>\n// ): Observable<number> {\n// const restrictedTimeChange$: Observable<number> = pausable$<number>(\n// isDraggable$,\n// timeChange$\n// ).pipe(map((n) => (n >= 100 ? 100 : n <= 0 ? 0 : n)));\n// const minChange$: Observable<number> = props$.pipe(\n// map((p) => p.minTime),\n// distinctUntilChanged(),\n// withLatestFrom(timeSource$),\n// map(([propsMinTime, sourceTime]) => Math.max(propsMinTime, sourceTime))\n// );\n// const maxChange$: Observable<number> = props$.pipe(\n// map((p) => p.maxTime),\n// distinctUntilChanged(),\n// withLatestFrom(timeSource$),\n// map(([propsMaxTime, sourceTime]) => Math.min(propsMaxTime, sourceTime))\n// );\n// return merge(\n// // order matters\n// timeSource$,\n// restrictedTimeChange$,\n// minChange$,\n// maxChange$\n// ).pipe(\n// distinctUntilChanged(),\n// share({\n// connector: () => new ReplaySubject(1),\n// resetOnError: false,\n// resetOnComplete: false,\n// resetOnRefCountZero: false\n// })\n// );\n// }\n","<template>\n <svg\n style=\"overflow: visible\"\n @mouseenter=\"mouseenter\"\n @mouseleave=\"mouseleave\"\n @mousedown=\"mousedown\"\n >\n <g\n class=\"marble\"\n :transform=\"`translate(${time}, 5)`\"\n :style=\"{\n cursor: isHighlighted ? 'ew-resize' : 'default'\n }\"\n >\n <circle\n r=\"2.3\"\n :style=\"circleStyle\"\n ></circle>\n <text\n text-anchor=\"middle\"\n y=\"0.8\"\n :style=\"textStyle\"\n >\n {{ props.content }}\n </text>\n </g>\n\n <filter\n id=\"#dropshadow\"\n height=\"130%\"\n >\n <feGaussianBlur\n in=\"SourceAlpha\"\n stdDeviation=\"0.3\"\n ></feGaussianBlur>\n <feOffset\n dx=\"0\"\n dy=\"0.25\"\n result=\"offsetblur\"\n ></feOffset>\n <feFlood flood-color=\"rgba(0,0,0,0.4)\"></feFlood>\n <feComposite\n in2=\"offsetblur\"\n operator=\"in\"\n ></feComposite>\n <feMerge>\n <feMergeNode></feMergeNode>\n <feMergeNode in=\"SourceGraphic\"></feMergeNode>\n </feMerge>\n </filter>\n </svg>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, onUnmounted, onMounted } from \"vue\";\nimport { getPercentageFn, changedMarbleSubject$ } from \"./rxMarble\";\nimport { POSSIBLE_COLORS, STROKE_WIDTH, fontBase } from \"./styles\";\n\nconst props = defineProps<{\n marbleID: number;\n time: number;\n isInteractive: boolean;\n content: number | string;\n}>();\n\nconst time = ref<number>(props.time);\n\nwatch(\n () => props.time,\n (t) => {\n time.value = t;\n }\n);\n\nconst isHighlighted = ref<boolean>(false);\nconst isDraggable = ref<boolean>(false);\n\nconst mouseenter = () => {\n if (!props.isInteractive) return;\n isHighlighted.value = true;\n};\n\nconst mouseleave = () => {\n if (!props.isInteractive) return;\n isHighlighted.value = false;\n};\n\nlet parentElement: HTMLElement;\nconst mousedown = (e: MouseEvent) => {\n if (!props.isInteractive) return;\n\n isDraggable.value = true;\n parentElement = (e.currentTarget as HTMLElement).parentElement!;\n};\n\nfunction moveMarble(e: MouseEvent) {\n if (!props.isInteractive) return;\n if (isDraggable.value) {\n time.value = getPercentageFn(parentElement)(e.pageX);\n changedMarbleSubject$.next({ marbleID: props.marbleID, time: time.value });\n }\n}\n\nfunction mouseUp(e: MouseEvent) {\n if (!props.isInteractive) return;\n isDraggable.value = false;\n}\n\nconst circleStyle = ref<Record<string, any>>();\nwatch(\n isHighlighted,\n () => {\n circleStyle.value = Object.assign(\n {\n fill: POSSIBLE_COLORS[props.marbleID % POSSIBLE_COLORS.length],\n stroke: \"black\",\n strokeWidth: STROKE_WIDTH\n },\n isHighlighted.value ? { filter: \"url(#dropshadow)\" } : {}\n );\n console.log(circleStyle.value);\n },\n { immediate: true }\n);\n\nconst textStyle = Object.assign({ fontSize: \"2.5px\" }, fontBase);\n\nonMounted(() => {\n document.addEventListener(\"mousemove\", moveMarble);\n document.addEventListener(\"mouseup\", mouseUp);\n});\n\nonUnmounted(() => {\n document.removeEventListener(\"mousemove\", moveMarble);\n document.removeEventListener(\"mouseup\", mouseUp);\n});\n</script>\n","<template>\n <svg\n style=\"overflow: visible\"\n @mouseenter=\"mouseenter\"\n @mouseleave=\"mouseleave\"\n @mousedown=\"mousedown\"\n >\n <line\n class=\"end-marker\"\n :x1=\"time\"\n :x2=\"time\"\n :y1=\"5 - height\"\n :y2=\"5 + height\"\n :style=\"{\n stroke: 'black',\n strokeWidth: '0.3',\n cursor: isHighlighted ? 'ew-resize' : 'default'\n }\"\n ></line>\n </svg>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, onUnmounted, onMounted } from \"vue\";\nimport { getPercentageFn, changedEndMarkerSubject$ } from \"./rxMarble\";\n\nconst props = defineProps<{\n timelineID: number;\n time: number;\n isInteractive: boolean;\n}>();\n\nconst height = ref(1.8);\n\nconst time = ref<number>(props.time);\n\nwatch(\n () => props.time,\n (t) => {\n time.value = t;\n }\n);\n\nconst isHighlighted = ref<boolean>(false);\nconst isDraggable = ref<boolean>(false);\n\nconst mouseenter = () => {\n if (!props.isInteractive) return;\n isHighlighted.value = true;\n height.value = 3.2;\n};\n\nconst mouseleave = () => {\n if (!props.isInteractive) return;\n isHighlighted.value = false;\n height.value = 1.8;\n};\n\nlet parentElement: HTMLElement;\nconst mousedown = (e: MouseEvent) => {\n if (!props.isInteractive) return;\n isDraggable.value = true;\n parentElement = (e.currentTarget as HTMLElement).parentElement!;\n};\n\nfunction moveMarble(e: MouseEvent) {\n if (!props.isInteractive) return;\n if (isDraggable.value) {\n time.value = getPercentageFn(parentElement)(e.pageX);\n changedEndMarkerSubject$.next({\n timelineID: props.timelineID,\n time: time.value\n });\n }\n}\nfunction mouseUp(e: MouseEvent) {\n if (!props.isInteractive) return;\n isDraggable.value = false;\n}\n\nonMounted(() => {\n document.addEventListener(\"mousemove\", moveMarble);\n document.addEventListener(\"mouseup\", mouseUp);\n});\n\nonUnmounted(() => {\n document.removeEventListener(\"mousemove\", moveMarble);\n document.removeEventListener(\"mouseup\", mouseUp);\n});\n</script>\n","<template>\n <div :style=\"sandboxStyle\">\n <!-- MULTI INPUT -->\n <TimelineComponent\n v-for=\"(input, inputKey) in inputtls\"\n :key=\"input.timelineID\"\n >\n <EndMarkerComponent\n :timelineID=\"input.timelineID\"\n :time=\"input.end.time\"\n :isInteractive=\"true\"\n ></EndMarkerComponent>\n <MarbleComponent\n v-for=\"(marble, marbleKey) in input.marbles\"\n :key=\"marble.marbleID\"\n :marbleID=\"marble.marbleID\"\n :time=\"marble.time\"\n :isInteractive=\"true\"\n :content=\"marble.content\"\n ></MarbleComponent>\n </TimelineComponent>\n <!-- OPERATOR -->\n <div class=\"operatorBox\">\n <div :style=\"before\"></div>\n <span style=\"font-size: 1.5em; font-weight: 400\">{{ label }}</span>\n <div :style=\"after\"></div>\n </div>\n <!-- SINGLE OUTPUT -->\n <TimelineComponent>\n <EndMarkerComponent\n :timelineID=\"outputtl.timelineID\"\n :time=\"outputtl.end.time\"\n :isInteractive=\"false\"\n ></EndMarkerComponent>\n <MarbleComponent\n v-for=\"(marble, marbleKey) in outputtl.marbles\"\n :key=\"marble.marbleID\"\n :marbleID=\"marble.marbleID\"\n :time=\"marble.time\"\n :isInteractive=\"false\"\n :content=\"marble.content\"\n ></MarbleComponent>\n </TimelineComponent>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, reactive } from \"vue\";\nimport { map, tap } from \"rxjs/operators\";\nimport { Timeline } from \"./data\";\nimport { example$, inputTimelines$, outputTimeline$ } from \"./rxMarble\";\nimport { DIMENS, sandboxStyle, getElevationPseudoElementStyle } from \"./styles\";\nimport TimelineComponent from \"./Timeline.vue\";\nimport MarbleComponent from \"./Marble.vue\";\nimport EndMarkerComponent from \"./EndMarker.vue\";\n\nconst before = getElevationPseudoElementStyle(\"2px\", \"10px\", \"0.17\");\nconst after = getElevationPseudoElementStyle(\"2px\", \"5px\", \"0.26\");\n\nconst label = ref<string>(\"\");\nconst inputtls = reactive<Timeline[]>([]);\nlet outputtl = reactive<Timeline>({\n timelineID: 0,\n marbles: [],\n end: { time: 0 },\n interactive: false\n});\n\nexample$.pipe(tap((example) => (label.value = example.label))).subscribe();\n\ninputTimelines$\n .pipe(\n map((timelines) => {\n inputtls.length = 0;\n timelines.forEach((timeline) => {\n inputtls.push(timeline);\n });\n })\n )\n .subscribe();\n\noutputTimeline$\n .pipe(\n tap((timeline) => {\n Object.assign(outputtl, timeline);\n })\n )\n .subscribe();\n</script>\n\n<style>\n.operatorBox {\n border: 1px solid rgba(0, 0, 0, 0.06);\n padding: v-bind(\"DIMENS.spaceMedium\");\n text-align: center;\n position: relative;\n}\nsvg {\n display: inline-block;\n}\n</style>\n","<template>\n <div\n class=\"wrap\"\n :style=\"{ width: '1060px', margin: '0 auto' }\"\n >\n <div style=\"display: flex\">\n <div\n :ref=\"(el) => (nav = (el as HTMLAnchorElement))\"\n style=\"\n flex: 1;\n margin-right: 32px;\n box-sizing: border-box;\n overflow-y: scroll;\n height: 100vh;\n \"\n >\n <ul\n style=\"margin: 0; padding: 0; list-style-type: none\"\n v-for=\"(items, key) in categories\"\n >\n <li\n class=\"li\"\n :key=\"key\"\n >\n {{ key }}\n </li>\n <a\n v-for=\"(item, itemname) in items\"\n :key=\"itemname\"\n :href=\"`#${base}${itemname}`\"\n class=\"link\"\n :ref=\"(el) => (links.push(el as HTMLAnchorElement))\"\n :style=\"{\n position: 'relative',\n display: 'block',\n color: '#666666'\n }\"\n >\n {{ itemname }}\n </a>\n </ul>\n </div>\n <div style=\"flex: 0 0 820px; padding-top: 10px\"><Sandbox></Sandbox></div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted } from \"vue\";\nimport { take, tap } from \"rxjs/operators\";\nimport { getElementPositionInPage } from \"@zyzgroup/core-web\";\nimport Sandbox from \"../components/rxmarbles/Sandbox.vue\";\nimport { categories } from \"../components/rxmarbles/data\";\nimport { store$ } from \"../components/rxmarbles/rxMarble\";\n\nconst base = \"/rx/\";\n\nconst nav = ref<HTMLElement>();\nconst links = ref<HTMLAnchorElement[]>([]);\n\nonMounted(() => {\n store$\n .pipe(\n take(1),\n tap((route) => {\n const link = links.value.find(\n (link) => link.href.indexOf(`#${base}${route}`) >= 0\n );\n if (link && nav.value) {\n (nav.value as HTMLElement).scrollTo({\n top: getElementPositionInPage(link as HTMLElement).y\n });\n }\n })\n )\n .subscribe();\n});\n</script>\n\n<style scoped>\n.wrap {\n position: relative;\n background: #ececec;\n font-family: \"Source Sans Pro\", sans-serif;\n color: #323232;\n margin: 0;\n padding-left: 0.4em;\n}\n\na {\n color: #3ea1cb;\n text-decoration: underline;\n font-size: 1em;\n padding-left: 0.4em;\n}\n\na.link:hover {\n color: #000000 !important;\n}\n\na.link:hover::after {\n display: inline-block;\n position: absolute;\n right: 10px;\n content: \"❯\";\n}\n\n.li {\n text-transform: uppercase;\n font-size: 0.8em;\n color: #000000;\n font-weight: bold;\n margin-top: 20px;\n}\n</style>\n","import { ref } from \"vue\";\nimport {\n createRouter,\n createWebHistory,\n createWebHashHistory,\n type Router,\n type RouteRecordRaw,\n type RouteRecordNormalized,\n type RouteLocationNormalized,\n type NavigationGuardNext,\n type RouteLocationRaw,\n RouteLocationNormalizedLoaded,\n NavigationFailure\n} from \"vue-router\";\nexport {\n RouterLink,\n RouterView,\n useRouter,\n useRoute,\n type Router\n} from \"vue-router\";\nimport ViewDocument from \"../components/form/ViewDocument.vue\";\nimport Lot from \"../components/xg/Lot.vue\";\nimport Park from \"../components/xg/Park.vue\";\nimport Index from \"../pages/Index.vue\";\nimport ShapeShowCase from \"../pages/ShapeShowCase.vue\";\n// import WebComponentShowCase from \"../pages/WebComponentShowCase.vue\";\nimport RxMarbles from \"../pages/RxMarbles.vue\";\n\nconst router = createRouter({\n // history: createWebHistory(import.meta.env.BASE_URL),\n history: createWebHashHistory(import.meta.env.BASE_URL),\n routes: [\n // {\n // path: \"/\",\n // name: \"index\",\n // component: Index\n // },\n {\n path: \"/\",\n name: \"xg\",\n redirect: \"/lot\" // for <yz-xg /> WebComponent\n },\n {\n path: \"/shape\",\n name: \"shape\",\n component: ShapeShowCase\n },\n // {\n // path: \"/wc\",\n // name: \"wc\",\n // component: WebComponentShowCase\n // },\n {\n path: \"/lot\",\n name: \"lot\",\n component: Lot\n },\n {\n path: \"/park\",\n name: \"park\",\n component: Park\n },\n {\n path: \"/rx/:operator?\",\n name: \"rx\",\n component: RxMarbles\n },\n {\n path: \"/view-document/:title/:src\",\n name: \"view-document\",\n component: ViewDocument\n // props: true // error : https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22\n }\n ],\n // [\n // {\n // path: \"/\",\n // redirect: \"/showcase\"\n // },\n // {\n // path: \"/\",\n // path: \"/demo/:demoid\",\n // name: \"home\",\n // component: HomeView,\n // // router level code-splitting\n // // this generates a separate chunk (About.[hash].js) for this router\n // // which is lazy-loaded when the router is visited.\n // component: () => import(\"../views/AboutView.vue\"),\n // meta: {},\n // children: [\n // { path: \"\", name: \"default\", redirect: \"/demo/sub1\" },\n // {\n // path: \"sub1\",\n // name: \"sub1\",\n // component: () => import(\"@/src/views/sub1.vue\")\n // }\n // ]\n // },\n // {\n // path: \"/:pathMatch(.*)*\",\n // name: \"404\",\n // component: Page404\n // }\n // ]\n scrollBehavior: (_to, _from, savedPosition) => {\n // 这个功能只在支持 history.pushState 的浏览器中可用\n if (savedPosition) {\n return savedPosition;\n } else {\n return { left: 0, top: 0 };\n }\n }\n});\n\nexport default router;\n\n// <RouterLink to=\"/\">Home</RouterLink>\n// <RouterLink to=\"/about\">About</RouterLink>\n// <RouterView />\n\n// import { useRouter, useRoute } from \"../hooks\";\n// const router: Router = useRouter();\n// router.push(\"/wc\");\n// const route = useRoute();\n// route.query\n// route.params\n\n// next: 前进 prev: 返回\nexport const routeDirection = ref<\"next\" | \"prev\">(\"next\");\nconst routeList = [];\n\n// 路由导航守卫\nrouter.beforeEach(\n (\n to: RouteLocationNormalized,\n from: RouteLocationNormalized,\n next: NavigationGuardNext\n ) => {\n // console.log(to, from);\n // console.log(...routeList, \" : \", to.name);\n const length = routeList.length;\n const index = routeList.findIndex((r) => r == to.name);\n if (length > 1 && index >= 0 && index < length - 1) {\n routeDirection.value = \"prev\";\n routeList.splice(index + 1);\n } else {\n routeDirection.value = \"next\";\n routeList.push(to.name);\n }\n // console.log(routeDirection.value);\n next();\n }\n);\n\n// router.afterEach(\n// (\n// to: RouteLocationNormalized,\n// from: RouteLocationNormalizedLoaded,\n// failure?: NavigationFailure | void\n// ) => {}\n// );\n\n// export async function push(location: RouteLocationRaw) {\n// const router: Router = useRouter();\n// await router.push(location);\n// }\n\n// {\n// name: Name;\n// path: Path;\n// paramsRaw: ParamsRaw;\n// params: Params;\n// meta: Meta;\n// }\n// export async function to(this: any, path: string) {\n// await push({ path });\n// }\n\n// 动态注册路由\n// const remove = addRoute(\"demo\", {\n// path: \"sub2\",\n// name: \"sub2\",\n// component: () => import(\"@/src/views/sub2.vue\")\n// });\n// remove();\n// export function addRoute(route: RouteRecordRaw): () => void {\n// const router: Router = useRouter();\n// return router.addRoute(route);\n// }\n\n// export function removeRoute(name: string) {\n// const router: Router = useRouter();\n// router.removeRoute(name);\n// }\n\n// export function hasRoute(name: string): boolean {\n// const router: Router = useRouter();\n// return router.hasRoute(name);\n// }\n\n// export function getRoutes(): RouteRecordNormalized[] {\n// const router: Router = useRouter();\n// return router.getRoutes();\n// }\n\n// export function getCurrentRoute() {\n// const router: Router = useRouter();\n// return {\n// params: router.currentRoute.value.params,\n// query: router.currentRoute.value.query\n// };\n// }\n","import { computed } from \"vue\";\nimport {\n useStore,\n createNamespacedHelpers,\n mapState,\n mapGetters,\n mapMutations,\n mapActions\n} from \"vuex\";\n\n/// STATE TYPES\nexport type VuexState = VuexRootState & {\n demo: VuexDemoState;\n};\nexport interface VuexRootState {\n count: number;\n}\nexport interface VuexDemoState {\n name: string;\n}\n/// MUTATION TYPES\nexport const INCREMENT = \"increment\";\nexport const DECREMENT = \"decrement\";\n/// ACTION TYPES\nexport const INCREMENTACTION = \"incrementAction\";\n\nexport function useVuex() {\n const store = useStore<VuexState>();\n return {\n store\n // state: store.state\n\n // ...useVuexStates([\"count\"]),\n // ...useVuexStates(\"demo\", [\"name\"]),\n\n // ...useVuexGetters({ totaln: \"totaln\" }),\n // ...useVuexGetters(\"demo\", [\"nameFormat\"]),\n\n // ...useVuexMutations({\n // [INCREMENT]: INCREMENT,\n // [DECREMENT]: DECREMENT\n // }),\n // ...useVuexMutations(\"demo\", [\"changeName\"]),\n\n // ...useVuexActions({\n // [INCREMENTACTION]: INCREMENTACTION\n // }),\n // ...useVuexActions(\"demo\", [\"changeNameAction\"])\n\n // {{ state.count }}\n // {{ state.demo.name }}\n // {{ store.getters.totalCount }}\n // {{ store.getters.totaln(2) }}\n // {{ totaln(3) }}\n // {{ store.getters[\"demo/nameFormat\"] }}\n };\n}\n\n// ...mapState([\"count\"]);\n// ...mapState({ count: state => state.count });\nexport function useVuexStates(\n keyMaps: Record<string, string> | string[]\n): Record<string, any>;\nexport function useVuexStates(\n moduleName: string,\n keyMaps: Record<string, string> | string[]\n): Record<string, any>;\nexport function useVuexStates(\n moduleName: string | Record<string, string> | string[],\n keyMaps?: Record<string, string> | string[]\n): Record<string, any> {\n let mapFn = mapState;\n if (typeof moduleName == \"string\" && moduleName.length > 0) {\n mapFn = createNamespacedHelpers(moduleName).mapState;\n } else {\n keyMaps = moduleName as Record<string, string> | string[];\n }\n return useVuexMap(keyMaps!, mapFn);\n}\n\n// ...mapGetters([\"totaln\"]);\n// ...mapGetters({ totalnAnother: \"totaln\" });\nexport function useVuexGetters(\n keyMaps: Record<string, string> | string[]\n): Record<string, any>;\nexport function useVuexGetters(\n moduleName: string,\n keyMaps: Record<string, string> | string[]\n): Record<string, any>;\nexport function useVuexGetters(\n moduleName: string | Record<string, string> | string[],\n keyMaps?: Record<string, string> | string[]\n): Record<string, any> {\n let mapFn = mapGetters;\n if (typeof moduleName == \"string\" && moduleName.length > 0) {\n mapFn = createNamespacedHelpers(moduleName).mapGetters;\n } else {\n keyMaps = moduleName as Record<string, string> | string[];\n }\n return useVuexMap(keyMaps!, mapFn);\n}\n\n// ...mapMutations([INCREMENT]);\n// ...mapMutations({ inc: INCREMENT });\nexport function useVuexMutations(\n keyMaps: Record<string, string> | string[]\n): Record<string, any>;\nexport function useVuexMutations(\n moduleName: string,\n keyMaps: Record<string, string> | string[]\n): Record<string, any>;\nexport function useVuexMutations(\n moduleName: string | Record<string, string> | string[],\n keyMaps?: Record<string, string> | string[]\n): Record<string, any> {\n let mapFn = mapMutations;\n if (typeof moduleName == \"string\" && moduleName.length > 0) {\n mapFn = createNamespacedHelpers(moduleName).mapMutations;\n } else {\n keyMaps = moduleName as Record<string, string> | string[];\n }\n if (Array.isArray(keyMaps)) {\n return mapFn(keyMaps!);\n } else {\n return mapFn(keyMaps!);\n }\n}\n\n// ...mapActions([INCREMENTACTION]);\n// ...mapActions({ inca: INCREMENTACTION });\nexport function useVuexActions(\n keyMaps: Record<string, string> | string[]\n): Record<string, any>;\nexport function useVuexActions(\n moduleName: string,\n keyMaps: Record<string, string> | string[]\n): Record<string, any>;\nexport function useVuexActions(\n moduleName: string | Record<string, string> | string[],\n keyMaps?: Record<string, string> | string[]\n): Record<string, any> {\n let mapFn = mapActions;\n if (typeof moduleName == \"string\" && moduleName.length > 0) {\n mapFn = createNamespacedHelpers(moduleName).mapActions;\n } else {\n keyMaps = moduleName as Record<string, string> | string[];\n }\n if (Array.isArray(keyMaps)) {\n return mapFn(keyMaps!);\n } else {\n return mapFn(keyMaps!);\n }\n}\n\nfunction useVuexMap(\n keys: Record<string, string> | string[],\n mapFn: any\n): Record<string, any> {\n const store = useStore();\n const maps: Record<string, any> = {};\n const mappedKeyFns = mapFn(keys);\n Object.keys(mappedKeyFns).forEach((key) => {\n const fn = mappedKeyFns[key].bind({ $store: store });\n maps[key] = computed(fn);\n });\n return maps;\n}\n"],"names":["getInstance","getCurrentInstance","getVNode","component","props","createVNode","renderComponent","options","vNode","render","useVueEffect","effect","remove","onMounted","onUnmounted","__expose","__props","route","useRoute","setWindowTitle","src","matchIconName","stringToIcon","value","validate","allowSimpleName","provider","colonSeparated","name2","prefix","result","validateIconName","name","dashSeparated","icon","defaultIconDimensions","defaultIconTransformations","defaultIconProps","defaultExtendedIconProps","mergeIconTransformations","obj1","obj2","rotate","mergeIconData","parent","child","key","getIconsTree","data","names","icons","aliases","resolved","resolve","internalGetIconData","tree","currentProps","parse","parseIconSet","callback","item","optionalPropertyDefaults","checkOptionalProps","defaults","prop","quicklyValidateIconSet","obj","dataStorage","newStorage","getStorage","providerStorage","addIconSet","storage","addIconToStorage","simpleNames","allowSimpleNames","allow","getIconData","iconName","addIcon","addCollection","added","defaultIconSizeCustomisations","defaultIconCustomisations","unitsSplit","unitsTest","calculateSize","size","ratio","precision","oldParts","newParts","code","isNumber","num","splitSVGDefs","content","tag","defs","index","start","end","endEnd","mergeDefsAndContent","wrapSVGContent","body","split","isUnsetKeyword","iconToSVG","customisations","fullIcon","fullCustomisations","box","transformations","hFlip","vFlip","rotation","tempValue","customisationsWidth","customisationsHeight","boxWidth","boxHeight","width","height","attributes","setAttr","viewBox","regex","randomPrefix","counter","replaceIDs","ids","match","suffix","id","newID","escapedID","setAPIModule","getAPIModule","createAPIConfig","source","resources","configStorage","fallBackAPISources","fallBackAPI","addAPIProvider","customConfig","config","getAPIConfig","detectFetch","fetchModule","calculateMaxLength","maxHostLength","url","shouldAbort","status","prepare","results","maxLength","type","length","getPath","send","host","params","path","iconsList","urlParams","uri","defaultError","response","fetchAPIModule","sortIcons","a","b","lastIcon","localStorage","list","removeCallback","storages","items","row","updateCallbacks","hasPending","oldLength","idCounter","storeCallback","pendingSources","abort","listToIcons","defaultConfig","sendQuery","payload","query","done","resourcesCount","startIndex","nextIndex","startTime","queriesSent","lastError","timer","queue","doneCallbacks","resetTimer","subscribe","overwrite","getQueryStatus","failQuery","clearQueue","moduleResponse","isError","queued","execNext","resource","status2","initRedundancy","cfg","queries","cleanup","queryCallback","doneCallback","query2","error","find","emptyCallback$1","redundancyCache","getRedundancyCache","redundancy","cachedReundancy","sendAPIQuery","target","api","cached","moduleKey","emptyCallback","loadedNewIcons","checkIconNamesForAPI","valid","invalid","parseLoaderResponse","checkMissing","pending","err","parsePossiblyAsyncResponse","loadNewIcons","icons2","customIconLoader","iconSet","loadIcons","cleanedIcons","sortedIcons","callCallback","newIcons","sources","lastProvider","lastPrefix","providerNewIcons","pendingQueue","mergeCustomisations","valueType","separator","flipFromString","custom","flip","str","rotateFromString","defaultValue","units","value2","iconToHTML","renderAttribsHTML","attr","encodeSVGforURL","svg","svgToData","svgToURL","defaultExtendedIconCustomisations","svgDefaults","commonProps","monotoneProps","coloredProps","propsToAdd","propsToAddTo","customisationAliases","fixSize","componentProps","mode","style","propsStyle","customStyle","alias","renderAttribs","localCounter","h","useMask","html","_window","preload","providers","emptyIcon","Icon","defineComponent","onload","customise","customised","classes","newProps","darkenOver","darkenClick","emits","__emit","el","ref","xgBlue","getCSSVar","fontColor","borderColor","bgColor","baseFontColor","baseBorderColor","baseBgColor","baseBgColorStart","baseBgColorEnd","isBgColorGradient","setStylePattern","stylePattern","__color","watch","opacity","cursor","isMouseOver","mouseover","mouseleave","asyncClickPending","throttleClick","throttle","router","useRouter","gotoPay","safeAreaBottom","subcription","useSafeArea$","s","PLATE_TYPES","getPlateType","plateType","dotSize","getEmSize","effectStatus","next","r","controller","getControllerResolve","isEmitReady","watchEffect","useElementEventBus","text","getInnerText","useClipboard","parentStyle","reactive","animationName","duration","timingFunction","delay","repeat","direction","changeEffect","newAnimationName","animationRef","ready","e","resetAnimation","trigger","triggerReverse","clear","pageRef","open","close","update","cssAnimationRef","cssAnimationName","runDependOnEffectType","cssAnimationTask","jsAnimationTask","isClose","triggerTimeline","Timeline","triggerFrom","triggerTo","attrs","cssanimationstart","cssanimationend","clearStyle","newEffect","currentPageIndex","nextPageIndex","onRenderComplete","onRouteCompletes","pages","pageActions","pageElements","isValidPageIndex","pageIndex","isForward","_getPageEffect","currentPageEffect","nextPageEffect","getPageEffect","routeEffect","_getPageDuration","currentDuration","nextDuration","getPageDuration","_getPageEaseFunction","getPageEaseFunction","_getPageDelay","getPageDelay","currentZIndex","nextZIndex","sameOnTop","nextOnTop","currentOnTop","setRunningStyle","emitsEnd","routesRef","renderPages","appendCount","isReset","renderCount","page","pageEffect","Page","reset","resetPages","p","generateUUID","goto","push","pop","forward","back","routeTaskQueue","AsyncTaskQueue","cb","onRouteComplete","computed","initDocumentOverflow","atomReadStyle","initParentOverflow","atomWriteStyle","tl","popStyle","visible","popType","isShrink","popValue","popUnit","Easing","onComplete","resize","action","clickOverlay","className","hasClass","popX","popY","popWidth","popHeight","finalX","finalY","finalWidth","finalHeight","isCORS","sourceWidth","sourceHeight","useLoadImage","info","setImageWidthHeight","wrapWidth","wrapHeight","outter","showWidth","showHeight","wrapImageRect","computeImageDisplayRect","viewportWidth","viewportHeight","getViewportSize","viewportImageRect","inner","isOpenPop","imageRef","popRef","clickSourceImage","showSize","currentIndex","routeChangeEnd","_","toPageIndex","Image","checkClose","viewDocument","popTelEl","call","imageViewEl","viewPhotos","_sfc_main","object","isIE","_openBlock","_createElementBlock","_hoisted_1","Stats","container","event","showPanel","addPanel","panel","i","beginTime","prevTime","frames","fpsPanel","msPanel","memPanel","time","memory","fg","bg","min","max","round","PR","WIDTH","HEIGHT","TEXT_X","TEXT_Y","GRAPH_X","GRAPH_Y","GRAPH_WIDTH","GRAPH_HEIGHT","canvas","context","maxValue","containerRef","stats","requestAnimationFrameCycle","contentMaxHeight","nextTick","toggleOpen","barPercent","toValue","bar","subscription","useScroll$","percent","getVerticalScrollPercentInPage","isDrawType","drawContext","isEmitInit","isEmitFrameInit","resizeSubscription","tapSubscription","cancelAnimationFrame","useResize$","rect","useDraw","tap$","sizeChange","_size","SVGShapes","svgFrameInit","d","svgFrame","CanvasShapes","canvasFrameInit","canvasFrame","currentType","boxCases","marker","BallShape","markerClone","line","LineShape","Color","lineClone","lineDegree","lineDegreeClone","p2","TreeShapeCombo","treeClone","treeRotate","treeRotateClone","RectShape","rectClone","heart","HeartShape","heartClone","heartVariant","HeartVariantShape","heartVariantClone","star","StarShape","starClone","fox","FoxShape","foxClone","rabbit","RabbitShape","rabbitClone","cross","CrossShape","crossClone","ship","ShipShapeCombo","shipClone","segment","SegmentShapeCombo","segmentRotate","segmentClone","segmentRotateClone","slider","SliderShapeCombo","v","sliderClone","ball1","ball1Clone","ball2","ball2Clone","isSetCommonFrameInit","frameInit","centerY","arrow","ArrowShape","arrowClone","arrowLine","arrowLineClone","centerX","dragBall","dragBallClone","springMassBalls","springMassLines","color0","numParticles","particle","springMassBallsClone","springMassLinesClone","x","y","frame","animateSpringMassShapes","fromX","fromY","toX","toY","alpha","l","numBalls","balls","radius","ball","ballsClone","gravitateShapes","isFunction","hasLift","operate","init","liftedSource","extendStatics","__extends","__","__awaiter","thisArg","_arguments","P","generator","adopt","reject","fulfilled","step","rejected","__generator","t","f","g","verb","n","op","__values","o","m","__read","ar","__spreadArray","to","from","pack","__await","__asyncGenerator","q","awaitReturn","resume","settle","fulfill","__asyncValues","isArrayLike","isPromise","createErrorClass","createImpl","_super","instance","ctorFunc","UnsubscriptionError","errors","arrRemove","arr","Subscription","initialTeardown","e_1","_a","e_2","_b","_parentage","_parentage_1","_parentage_1_1","parent_1","e_1_1","initialFinalizer","_finalizers","_finalizers_1","_finalizers_1_1","finalizer","execFinalizer","e_2_1","teardown","empty","EMPTY_SUBSCRIPTION","isSubscription","timeoutProvider","handler","timeout","args","_i","delegate","handle","reportUnhandledError","noop","errorContext","Subscriber","destination","_this","EMPTY_OBSERVER","complete","SafeSubscriber","_bind","bind","fn","ConsumerObserver","partialObserver","handleUnhandledError","observerOrNext","context_1","defaultErrorHandler","observable","identity","pipe","fns","pipeFromArray","input","prev","Observable","operator","subscriber","isSubscriber","sink","promiseCtor","getPromiseCtor","Symbol_observable","operations","isObserver","isInteropObservable","isAsyncIterable","createInvalidObservableTypeError","getSymbolIterator","iterator","isIterable","Symbol_iterator","readableStreamLikeToAsyncGenerator","readableStream","reader","isReadableStreamLike","innerFrom","fromInteropObservable","fromArrayLike","fromPromise","fromAsyncIterable","fromIterable","fromReadableStreamLike","obs","array","promise","iterable","iterable_1","iterable_1_1","asyncIterable","process","asyncIterable_1","asyncIterable_1_1","createOperatorSubscriber","onNext","onError","onFinalize","OperatorSubscriber","shouldUnsubscribe","closed_1","audit","durationSelector","hasValue","lastValue","durationSubscriber","isComplete","endDuration","cleanupDuration","Action","scheduler","work","state","intervalProvider","AsyncAction","_id","_scheduler","_delay","errored","errorValue","actions","dateTimestampProvider","Scheduler","schedulerActionCtor","now","AsyncScheduler","SchedulerAction","asyncScheduler","async","isScheduler","isValidDate","dueTime","intervalOrScheduler","intervalDuration","due","auditTime","buffer","closingNotifier","currentBuffer","bufferCount","bufferSize","startBufferEvery","buffers","count","toEmit","buffers_1","buffers_1_1","toEmit_1","toEmit_1_1","e_3","buffers_2","buffers_2_1","e_3_1","last","popResultSelector","popScheduler","popNumber","executeSchedule","parentSubscription","scheduleSubscription","bufferTime","bufferTimeSpan","otherArgs","bufferCreationInterval","maxBufferSize","bufferRecords","restartOnEmit","emit","record","subs","startBuffer","record_1","bufferTimeSubscriber","recordsCopy","recordsCopy_1","recordsCopy_1_1","bufferToggle","openings","closingSelector","openValue","closingSubscription","emitBuffer","bufferWhen","closingSubscriber","openBuffer","isArray","getPrototypeOf","objectProto","getKeys","argsArgArrayOrObject","first_1","isPOJO","keys","observeOn","subscribeOn","scheduleObservable","schedulePromise","scheduleArray","scheduleIterable","scheduleAsyncIterable","scheduleReadableStreamLike","scheduled","map","project","callOrApply","mapOneOrManyArgs","createObject","values","combineLatest","resultSelector","observables","combineLatestInit","valueTransform","maybeSchedule","active","remainingFirstValues","_loop_1","hasFirstValue","execute","mergeInternals","concurrent","onBeforeNext","expand","innerSubScheduler","additionalFinalizer","checkComplete","outerNext","doInnerSub","innerComplete","innerValue","bufferedValue","mergeMap","ii","scanInternals","accumulator","seed","hasSeed","emitOnNext","emitBeforeComplete","hasState","reduce","arrReducer","toArray","joinAllInternals","joinFn","combineLatestAll","argsOrArgArray","mergeAll","concatAll","concatMap","ObjectUnsubscribedError","Subject","subject","AnonymousSubject","_c","observer","observers","hasError","isStopped","thrownError","predicate","total","debounce","debounceTime","activeTask","lastTime","emitWhenIdle","targetTime","defaultIfEmpty","concat","EMPTY","take","seen","ignoreElements","mapTo","delayWhen","delayDurationSelector","subscriptionDelay","of","distinct","keySelector","flushes","distinctKeys","distinctUntilChanged","comparator","defaultCompare","previousKey","first","currentKey","ArgumentOutOfRangeError","filter","EmptyError","throwIfEmpty","errorFactory","defaultErrorFactory","elementAt","hasDefaultValue","every","exhaustMap","innerSub","outerValue","exhaustAll","finalize","createFind","findIndex","groupBy","elementOrOptions","connector","element","groups","notify","handleError","consumer","activeGroups","teardownAttempted","groupBySourceSubscriber","key_1","group_1","grouped","createGroupedObservable","durationSubscriber_1","groupSubject","groupSubscriber","isEmpty","takeLast","buffer_1","buffer_1_1","comparer","mergeScan","pairwise","hasPrev","BehaviorSubject","_value","ReplaySubject","_bufferSize","_windowTime","_timestampProvider","_buffer","_infiniteTimeWindow","copy","adjustedBufferSize","race","raceInit","subscriptions","countOrConfig","soFar","sourceSub","resubscribe","notifier","notifierSubscriber_1","subscribeToSource","syncUnsub","sample","interval","period","sampleTime","scan","sequenceEqual","compareTo","aState","createState","bState","isEqual","createSubscriber","selfState","otherState","sequenceEqualSubscriber","share","resetOnError","resetOnComplete","_d","resetOnRefCountZero","wrapperSource","connection","resetConnection","refCount","hasCompleted","hasErrored","cancelReset","resetAndUnsubscribe","conn","dest","handleReset","on","onSubscriber","SequenceError","message","NotFoundError","single","singleValue","seenValue","skip","skipLast","skipCount","ring","valueIndex","oldValue","skipUntil","taking","skipSubscriber","skipWhile","startWith","switchMap","innerSubscriber","innerIndex","outerIndex","switchAll","switchScan","takeUntil","takeWhile","inclusive","tap","tapObserver","isUnsub","leading","trailing","sendValue","throttled","endThrottling","cleanupThrottling","startThrottle","throttleTime","duration$","timeInterval","TimeInterval","timestamp","timestampProvider","withLatestFrom","inputs","len","otherValues","zip","completed","sourceIndex","VirtualTimeScheduler","maxFrames","VirtualAction","defer","observableFactory","forkJoin","remainingCompletions","remainingEmissions","generate","initialStateOrOptions","condition","iterate","resultSelectorOrScheduler","initialState","gen","iif","trueResult","falseResult","merge","range","creationExamples","ev","combinationExamples","conditionalExamples","filteringExamples","mathExamples","transformationExamples","group$","acc","cur","utilityExamples","flatternExamples","multicastingExamples","categories","examples","MAX_TIME","STROKE_WIDTH","COLORS","greyDark","bgWhite","DIMENS","FONTS","fontBase","elevation1","timelineStyle","POSSIBLE_COLORS","sandboxStyle","getElevationPseudoElementStyle","dy","blur","store$","useHashChange$","example$","inputTimelines$","example","inputsToTimelines","changedMarbleSubject$","changedMarble$","changedEndMarkerSubject$","changedEndMarker$","endMarkerMinTime$","inputTimelines","changedEndMarker","outputTimeline$","changedMarble","endMarkerMinTime","marbleIndex","vtScheduler","inputTimelineMarbles$Array","toVTStream","outputline$","formatOutputTimeline$","stream","subject$","stop$","endTime","marble","calculateNotificationContentHash","assoc","marbles","clamp","curry","inputToMarbles","getInput","getTime","lastInput","calculateNotificationHash","contentHash","getPercentageFn","parentElement","left","elementLeft","isHighlighted","isDraggable","mouseenter","mousedown","moveMarble","mouseUp","circleStyle","textStyle","before","after","label","inputtls","outputtl","timelines","timeline","base","nav","links","link","getElementPositionInPage","createRouter","createWebHashHistory","ShapeShowCase","Lot","Park","RxMarbles","ViewDocument","_to","_from","savedPosition","routeDirection","routeList","INCREMENT","DECREMENT","INCREMENTACTION","useVuex","useStore","useVuexStates","moduleName","keyMaps","mapFn","mapState","createNamespacedHelpers","useVuexMap","useVuexGetters","mapGetters","useVuexMutations","mapMutations","useVuexActions","mapActions","store","maps","mappedKeyFns"],"mappings":"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","x_google_ignoreList":[4,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173]}
|
|
1
|
+
{"version":3,"file":"zyzgroup_core_vue.js","sources":["../src/hooks/useVue.ts","../src/hooks/useVueEffect.ts","../src/components/layout/LayoutPage.vue","../src/components/form/ViewDocument.vue","../../../node_modules/.pnpm/@iconify+vue@4.3.0_vue@3.5.13_typescript@5.8.3_/node_modules/@iconify/vue/dist/iconify.mjs","../src/components/Icon.vue","../src/components/loading/Loading11.vue","../src/components/Button.vue","../src/components/Overlay.vue","../src/components/Container.vue","../src/components/Pop.vue","../src/components/svg/SVGClose.vue","../src/components/svg/SVGWarn.vue","../src/components/svg/SVGEllipse.vue","../src/components/Dialog.vue","../src/globalTeleport.ts","../src/components/xg/Footer.vue","../src/components/PlateDisplay.vue","../src/components/effect/CSSAnimation.vue","../src/components/Page.vue","../src/components/Routes.vue","../src/components/Image.vue","../src/components/ImageView.vue","../src/components/pop/PopTel.vue","../src/components/xg/Lot.vue","../src/components/ResizeObserver.vue","../../../third/stats/stats.js","../src/components/FPSStats.vue","../src/components/svg/SVGDown.vue","../src/components/Accordion.vue","../src/components/form/ProgressBar.vue","../src/components/form/PageVerticalScrollProgressBar.vue","../src/components/base/Box.vue","../src/pages/ShapeShowCase.vue","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isFunction.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/lift.js","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isPromise.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscription.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/config.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/noop.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/errorContext.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subscriber.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/symbol/observable.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/identity.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/pipe.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Observable.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/symbol/iterator.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isIterable.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/audit.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/Action.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Scheduler.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/async.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isScheduler.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/isDate.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/timer.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/auditTime.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/buffer.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/bufferCount.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/args.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/bufferTime.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/bufferToggle.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/bufferWhen.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/observeOn.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleReadableStreamLike.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/from.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/map.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/createObject.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mergeInternals.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/scanInternals.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/reduce.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/toArray.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/joinAllInternals.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/combineLatestAll.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/argsOrArgArray.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/concatAll.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/concatMap.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/Subject.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/count.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/debounce.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/concat.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/empty.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/take.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/ignoreElements.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mapTo.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/delayWhen.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/delay.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/of.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/distinct.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/filter.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/EmptyError.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/elementAt.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/every.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/exhaustMap.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/exhaustAll.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/finalize.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/find.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/findIndex.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/first.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/groupBy.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/isEmpty.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/takeLast.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/last.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/max.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/mergeScan.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/min.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/pairwise.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/ReplaySubject.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/race.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/repeat.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/sample.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/interval.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/sampleTime.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/scan.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/sequenceEqual.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/share.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/SequenceError.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/util/NotFoundError.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/single.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/skip.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/skipLast.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/skipUntil.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/skipWhile.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/startWith.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/switchMap.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/switchAll.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/switchScan.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/takeWhile.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/tap.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/throttle.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/throttleTime.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/timeInterval.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/timestamp.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/zip.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/scheduler/VirtualTimeScheduler.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/defer.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/forkJoin.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/generate.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/iif.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/merge.js","../../../node_modules/.pnpm/rxjs@7.8.2/node_modules/rxjs/dist/esm5/internal/observable/range.js","../src/components/rxmarbles/data/creation-examples.js","../src/components/rxmarbles/data/combination-examples.js","../src/components/rxmarbles/data/conditional-examples.js","../src/components/rxmarbles/data/filtering-examples.js","../src/components/rxmarbles/data/math-examples.js","../src/components/rxmarbles/data/transformation-examples.js","../src/components/rxmarbles/data/utility-examples.js","../src/components/rxmarbles/data/flattern-examples.ts","../src/components/rxmarbles/data/multicasting-examples.js","../src/components/rxmarbles/data/categories.js","../src/components/rxmarbles/data/index.ts","../src/components/rxmarbles/styles.ts","../src/components/rxmarbles/rxMarble.ts","../src/components/rxmarbles/Marble.vue","../src/components/rxmarbles/EndMarker.vue","../src/components/rxmarbles/Sandbox.vue","../src/pages/RxMarbles.vue","../src/hooks/useVueRouter.ts","../src/hooks/useVuex/useVuex.ts"],"sourcesContent":["import {\n AppContext,\n VNode,\n createVNode,\n render,\n getCurrentInstance,\n VNodeProps,\n Component,\n // ComponentPublicInstance,\n ComponentInternalInstance\n} from \"vue\";\n\nexport function getInstance(): ComponentInternalInstance | null {\n return getCurrentInstance();\n}\n\nexport interface CommonComponentProps extends VNodeProps {\n [index: string]: any;\n}\n\nexport function getVNode<T extends Component>(\n component: T,\n props?: CommonComponentProps\n): VNode {\n const vNode = createVNode(component, props);\n // const vm: ComponentPublicInstance<CommonComponentProps> | null | undefined =\n // vNode.component?.proxy;\n // if (vm) {\n // for (const prop in props) {\n // if (Reflect.has(props, prop) && !Reflect.has(vm.$props, prop)) {\n // vm[prop as keyof ComponentPublicInstance] = props[prop];\n // }\n // }\n // }\n return vNode;\n}\n\nexport function renderComponent<T extends Component>(options: {\n component: T;\n props?: CommonComponentProps;\n appContext?: AppContext;\n selfContainer: HTMLElement;\n parentContainer?: HTMLElement;\n}) {\n const vNode = getVNode(options.component, options.props);\n if (options.appContext) {\n vNode.appContext = options.appContext;\n }\n render(vNode, options.selfContainer);\n options.parentContainer?.appendChild(options.selfContainer);\n}\n\n// export interface EnhancedComponentOptions extends VNodeProps {\n// [key: string]: any;\n// }\n// export function enhanceComponent<T extends Component>(\n// component: T\n// ): (options: EnhancedComponentOptions) => VNode {\n// const container = document.createElement(\"div\");\n// return (options: EnhancedComponentOptions): VNode => {\n// const vNode = renderComponent<T>({\n// Component: component,\n// props: options,\n// selfContainer: container,\n// appContext: getCurrentInstance()?.appContext\n// });\n// const vm = vNode.component\n// ?.proxy as ComponentPublicInstance<EnhancedComponentOptions>;\n// for (const prop in options) {\n// if (Reflect.has(options, prop) && !Reflect.has(vm.$props, prop)) {\n// vm[prop as keyof ComponentPublicInstance] = options[prop];\n// }\n// }\n// return vNode;\n// };\n// }\n","import { onMounted, onUnmounted } from \"vue\";\n\nexport function useVueEffect(effect: () => () => void) {\n let remove: () => void;\n onMounted(() => {\n remove = effect();\n });\n onUnmounted(() => {\n remove?.();\n });\n}\n","<template>\n <div class=\"page\">\n <div class=\"page-header\">\n <slot name=\"header\"></slot>\n </div>\n\n <div class=\"page-main\">\n <div class=\"page-main-scroll\">\n <slot></slot>\n </div>\n </div>\n\n <div class=\"page-footer\">\n <slot name=\"footer\"></slot>\n </div>\n\n <div class=\"page-global\">\n <slot name=\"global\"></slot>\n </div>\n </div>\n</template>\n\n<style scoped>\n.page {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.page-header {\n position: relative;\n z-index: 1;\n flex: 0 0 auto;\n}\n.page-footer {\n position: relative;\n z-index: 1;\n flex: 0 0 auto;\n}\n.page-main {\n position: relative;\n z-index: 2;\n flex: 1 1 auto;\n width: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.page-main-scroll {\n position: relative;\n z-index: 3;\n flex: 1 1 auto;\n width: 100%;\n overflow-y: scroll;\n}\n/*\n.page-main-scroll > :nth-child(1) {\n min-height: 100%;\n}\n*/\n</style>\n\n<script setup lang=\"ts\">\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: {},\n inheritAttrs: true\n});\n\ndefineExpose({});\n</script>\n","<script lang=\"tsx\" setup>\nimport { ref } from \"vue\";\nimport {setWindowTitle} from \"@zyzgroup/core-web\"\nimport LayoutPage from \"../layout/LayoutPage.vue\";\nimport { useRoute } from \"../../hooks\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n inheritAttrs: true,\n customOptions: { LayoutPage }\n});\n\nconst props = withDefaults(\n defineProps<{\n src?: string; // https://erichd2.oss-cn-shanghai.aliyuncs.com/0000/0002/2159\n title?: string;\n }>(),\n {\n src: \"\",\n title: \"\"\n }\n);\n\nconst route = useRoute();\nsetWindowTitle(typeof route.params.title == \"string\" ? route.params.title : props.title);\nconst src = decodeURIComponent(typeof route.params.src == \"string\" ? route.params.src : props.src);\n\n</script>\n\n<template>\n <LayoutPage>\n <div class=\"view-document\">\n <img\n class=\"img\"\n :src=\"src\"\n ></img>\n </div>\n </LayoutPage>\n</template>\n\n<style scoped>\n.view-document {\n box-sizing: border-box;\n width: 100%;\n padding: 15px;\n}\n.img {\n width: 100%;\n}\n</style>\n","import { h, defineComponent } from 'vue';\n\nconst matchIconName = /^[a-z0-9]+(-[a-z0-9]+)*$/;\nconst stringToIcon = (value, validate, allowSimpleName, provider = \"\") => {\n const colonSeparated = value.split(\":\");\n if (value.slice(0, 1) === \"@\") {\n if (colonSeparated.length < 2 || colonSeparated.length > 3) {\n return null;\n }\n provider = colonSeparated.shift().slice(1);\n }\n if (colonSeparated.length > 3 || !colonSeparated.length) {\n return null;\n }\n if (colonSeparated.length > 1) {\n const name2 = colonSeparated.pop();\n const prefix = colonSeparated.pop();\n const result = {\n // Allow provider without '@': \"provider:prefix:name\"\n provider: colonSeparated.length > 0 ? colonSeparated[0] : provider,\n prefix,\n name: name2\n };\n return validate && !validateIconName(result) ? null : result;\n }\n const name = colonSeparated[0];\n const dashSeparated = name.split(\"-\");\n if (dashSeparated.length > 1) {\n const result = {\n provider,\n prefix: dashSeparated.shift(),\n name: dashSeparated.join(\"-\")\n };\n return validate && !validateIconName(result) ? null : result;\n }\n if (allowSimpleName && provider === \"\") {\n const result = {\n provider,\n prefix: \"\",\n name\n };\n return validate && !validateIconName(result, allowSimpleName) ? null : result;\n }\n return null;\n};\nconst validateIconName = (icon, allowSimpleName) => {\n if (!icon) {\n return false;\n }\n return !!// Check prefix: cannot be empty, unless allowSimpleName is enabled\n // Check name: cannot be empty\n ((allowSimpleName && icon.prefix === \"\" || !!icon.prefix) && !!icon.name);\n};\n\nconst defaultIconDimensions = Object.freeze(\n {\n left: 0,\n top: 0,\n width: 16,\n height: 16\n }\n);\nconst defaultIconTransformations = Object.freeze({\n rotate: 0,\n vFlip: false,\n hFlip: false\n});\nconst defaultIconProps = Object.freeze({\n ...defaultIconDimensions,\n ...defaultIconTransformations\n});\nconst defaultExtendedIconProps = Object.freeze({\n ...defaultIconProps,\n body: \"\",\n hidden: false\n});\n\nfunction mergeIconTransformations(obj1, obj2) {\n const result = {};\n if (!obj1.hFlip !== !obj2.hFlip) {\n result.hFlip = true;\n }\n if (!obj1.vFlip !== !obj2.vFlip) {\n result.vFlip = true;\n }\n const rotate = ((obj1.rotate || 0) + (obj2.rotate || 0)) % 4;\n if (rotate) {\n result.rotate = rotate;\n }\n return result;\n}\n\nfunction mergeIconData(parent, child) {\n const result = mergeIconTransformations(parent, child);\n for (const key in defaultExtendedIconProps) {\n if (key in defaultIconTransformations) {\n if (key in parent && !(key in result)) {\n result[key] = defaultIconTransformations[key];\n }\n } else if (key in child) {\n result[key] = child[key];\n } else if (key in parent) {\n result[key] = parent[key];\n }\n }\n return result;\n}\n\nfunction getIconsTree(data, names) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n const resolved = /* @__PURE__ */ Object.create(null);\n function resolve(name) {\n if (icons[name]) {\n return resolved[name] = [];\n }\n if (!(name in resolved)) {\n resolved[name] = null;\n const parent = aliases[name] && aliases[name].parent;\n const value = parent && resolve(parent);\n if (value) {\n resolved[name] = [parent].concat(value);\n }\n }\n return resolved[name];\n }\n (Object.keys(icons).concat(Object.keys(aliases))).forEach(resolve);\n return resolved;\n}\n\nfunction internalGetIconData(data, name, tree) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n let currentProps = {};\n function parse(name2) {\n currentProps = mergeIconData(\n icons[name2] || aliases[name2],\n currentProps\n );\n }\n parse(name);\n tree.forEach(parse);\n return mergeIconData(data, currentProps);\n}\n\nfunction parseIconSet(data, callback) {\n const names = [];\n if (typeof data !== \"object\" || typeof data.icons !== \"object\") {\n return names;\n }\n if (data.not_found instanceof Array) {\n data.not_found.forEach((name) => {\n callback(name, null);\n names.push(name);\n });\n }\n const tree = getIconsTree(data);\n for (const name in tree) {\n const item = tree[name];\n if (item) {\n callback(name, internalGetIconData(data, name, item));\n names.push(name);\n }\n }\n return names;\n}\n\nconst optionalPropertyDefaults = {\n provider: \"\",\n aliases: {},\n not_found: {},\n ...defaultIconDimensions\n};\nfunction checkOptionalProps(item, defaults) {\n for (const prop in defaults) {\n if (prop in item && typeof item[prop] !== typeof defaults[prop]) {\n return false;\n }\n }\n return true;\n}\nfunction quicklyValidateIconSet(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return null;\n }\n const data = obj;\n if (typeof data.prefix !== \"string\" || !obj.icons || typeof obj.icons !== \"object\") {\n return null;\n }\n if (!checkOptionalProps(obj, optionalPropertyDefaults)) {\n return null;\n }\n const icons = data.icons;\n for (const name in icons) {\n const icon = icons[name];\n if (\n // Name cannot be empty\n !name || // Must have body\n typeof icon.body !== \"string\" || // Check other props\n !checkOptionalProps(\n icon,\n defaultExtendedIconProps\n )\n ) {\n return null;\n }\n }\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n for (const name in aliases) {\n const icon = aliases[name];\n const parent = icon.parent;\n if (\n // Name cannot be empty\n !name || // Parent must be set and point to existing icon\n typeof parent !== \"string\" || !icons[parent] && !aliases[parent] || // Check other props\n !checkOptionalProps(\n icon,\n defaultExtendedIconProps\n )\n ) {\n return null;\n }\n }\n return data;\n}\n\nconst dataStorage = /* @__PURE__ */ Object.create(null);\nfunction newStorage(provider, prefix) {\n return {\n provider,\n prefix,\n icons: /* @__PURE__ */ Object.create(null),\n missing: /* @__PURE__ */ new Set()\n };\n}\nfunction getStorage(provider, prefix) {\n const providerStorage = dataStorage[provider] || (dataStorage[provider] = /* @__PURE__ */ Object.create(null));\n return providerStorage[prefix] || (providerStorage[prefix] = newStorage(provider, prefix));\n}\nfunction addIconSet(storage, data) {\n if (!quicklyValidateIconSet(data)) {\n return [];\n }\n return parseIconSet(data, (name, icon) => {\n if (icon) {\n storage.icons[name] = icon;\n } else {\n storage.missing.add(name);\n }\n });\n}\nfunction addIconToStorage(storage, name, icon) {\n try {\n if (typeof icon.body === \"string\") {\n storage.icons[name] = { ...icon };\n return true;\n }\n } catch (err) {\n }\n return false;\n}\nfunction listIcons(provider, prefix) {\n let allIcons = [];\n const providers = typeof provider === \"string\" ? [provider] : Object.keys(dataStorage);\n providers.forEach((provider2) => {\n const prefixes = typeof provider2 === \"string\" && typeof prefix === \"string\" ? [prefix] : Object.keys(dataStorage[provider2] || {});\n prefixes.forEach((prefix2) => {\n const storage = getStorage(provider2, prefix2);\n allIcons = allIcons.concat(\n Object.keys(storage.icons).map(\n (name) => (provider2 !== \"\" ? \"@\" + provider2 + \":\" : \"\") + prefix2 + \":\" + name\n )\n );\n });\n });\n return allIcons;\n}\n\nlet simpleNames = false;\nfunction allowSimpleNames(allow) {\n if (typeof allow === \"boolean\") {\n simpleNames = allow;\n }\n return simpleNames;\n}\nfunction getIconData(name) {\n const icon = typeof name === \"string\" ? stringToIcon(name, true, simpleNames) : name;\n if (icon) {\n const storage = getStorage(icon.provider, icon.prefix);\n const iconName = icon.name;\n return storage.icons[iconName] || (storage.missing.has(iconName) ? null : void 0);\n }\n}\nfunction addIcon(name, data) {\n const icon = stringToIcon(name, true, simpleNames);\n if (!icon) {\n return false;\n }\n const storage = getStorage(icon.provider, icon.prefix);\n if (data) {\n return addIconToStorage(storage, icon.name, data);\n } else {\n storage.missing.add(icon.name);\n return true;\n }\n}\nfunction addCollection(data, provider) {\n if (typeof data !== \"object\") {\n return false;\n }\n if (typeof provider !== \"string\") {\n provider = data.provider || \"\";\n }\n if (simpleNames && !provider && !data.prefix) {\n let added = false;\n if (quicklyValidateIconSet(data)) {\n data.prefix = \"\";\n parseIconSet(data, (name, icon) => {\n if (addIcon(name, icon)) {\n added = true;\n }\n });\n }\n return added;\n }\n const prefix = data.prefix;\n if (!validateIconName({\n provider,\n prefix,\n name: \"a\"\n })) {\n return false;\n }\n const storage = getStorage(provider, prefix);\n return !!addIconSet(storage, data);\n}\nfunction iconLoaded(name) {\n return !!getIconData(name);\n}\nfunction getIcon(name) {\n const result = getIconData(name);\n return result ? {\n ...defaultIconProps,\n ...result\n } : result;\n}\n\nconst defaultIconSizeCustomisations = Object.freeze({\n width: null,\n height: null\n});\nconst defaultIconCustomisations = Object.freeze({\n // Dimensions\n ...defaultIconSizeCustomisations,\n // Transformations\n ...defaultIconTransformations\n});\n\nconst unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g;\nconst unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g;\nfunction calculateSize(size, ratio, precision) {\n if (ratio === 1) {\n return size;\n }\n precision = precision || 100;\n if (typeof size === \"number\") {\n return Math.ceil(size * ratio * precision) / precision;\n }\n if (typeof size !== \"string\") {\n return size;\n }\n const oldParts = size.split(unitsSplit);\n if (oldParts === null || !oldParts.length) {\n return size;\n }\n const newParts = [];\n let code = oldParts.shift();\n let isNumber = unitsTest.test(code);\n while (true) {\n if (isNumber) {\n const num = parseFloat(code);\n if (isNaN(num)) {\n newParts.push(code);\n } else {\n newParts.push(Math.ceil(num * ratio * precision) / precision);\n }\n } else {\n newParts.push(code);\n }\n code = oldParts.shift();\n if (code === void 0) {\n return newParts.join(\"\");\n }\n isNumber = !isNumber;\n }\n}\n\nfunction splitSVGDefs(content, tag = \"defs\") {\n let defs = \"\";\n const index = content.indexOf(\"<\" + tag);\n while (index >= 0) {\n const start = content.indexOf(\">\", index);\n const end = content.indexOf(\"</\" + tag);\n if (start === -1 || end === -1) {\n break;\n }\n const endEnd = content.indexOf(\">\", end);\n if (endEnd === -1) {\n break;\n }\n defs += content.slice(start + 1, end).trim();\n content = content.slice(0, index).trim() + content.slice(endEnd + 1);\n }\n return {\n defs,\n content\n };\n}\nfunction mergeDefsAndContent(defs, content) {\n return defs ? \"<defs>\" + defs + \"</defs>\" + content : content;\n}\nfunction wrapSVGContent(body, start, end) {\n const split = splitSVGDefs(body);\n return mergeDefsAndContent(split.defs, start + split.content + end);\n}\n\nconst isUnsetKeyword = (value) => value === \"unset\" || value === \"undefined\" || value === \"none\";\nfunction iconToSVG(icon, customisations) {\n const fullIcon = {\n ...defaultIconProps,\n ...icon\n };\n const fullCustomisations = {\n ...defaultIconCustomisations,\n ...customisations\n };\n const box = {\n left: fullIcon.left,\n top: fullIcon.top,\n width: fullIcon.width,\n height: fullIcon.height\n };\n let body = fullIcon.body;\n [fullIcon, fullCustomisations].forEach((props) => {\n const transformations = [];\n const hFlip = props.hFlip;\n const vFlip = props.vFlip;\n let rotation = props.rotate;\n if (hFlip) {\n if (vFlip) {\n rotation += 2;\n } else {\n transformations.push(\n \"translate(\" + (box.width + box.left).toString() + \" \" + (0 - box.top).toString() + \")\"\n );\n transformations.push(\"scale(-1 1)\");\n box.top = box.left = 0;\n }\n } else if (vFlip) {\n transformations.push(\n \"translate(\" + (0 - box.left).toString() + \" \" + (box.height + box.top).toString() + \")\"\n );\n transformations.push(\"scale(1 -1)\");\n box.top = box.left = 0;\n }\n let tempValue;\n if (rotation < 0) {\n rotation -= Math.floor(rotation / 4) * 4;\n }\n rotation = rotation % 4;\n switch (rotation) {\n case 1:\n tempValue = box.height / 2 + box.top;\n transformations.unshift(\n \"rotate(90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n case 2:\n transformations.unshift(\n \"rotate(180 \" + (box.width / 2 + box.left).toString() + \" \" + (box.height / 2 + box.top).toString() + \")\"\n );\n break;\n case 3:\n tempValue = box.width / 2 + box.left;\n transformations.unshift(\n \"rotate(-90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n }\n if (rotation % 2 === 1) {\n if (box.left !== box.top) {\n tempValue = box.left;\n box.left = box.top;\n box.top = tempValue;\n }\n if (box.width !== box.height) {\n tempValue = box.width;\n box.width = box.height;\n box.height = tempValue;\n }\n }\n if (transformations.length) {\n body = wrapSVGContent(\n body,\n '<g transform=\"' + transformations.join(\" \") + '\">',\n \"</g>\"\n );\n }\n });\n const customisationsWidth = fullCustomisations.width;\n const customisationsHeight = fullCustomisations.height;\n const boxWidth = box.width;\n const boxHeight = box.height;\n let width;\n let height;\n if (customisationsWidth === null) {\n height = customisationsHeight === null ? \"1em\" : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n width = calculateSize(height, boxWidth / boxHeight);\n } else {\n width = customisationsWidth === \"auto\" ? boxWidth : customisationsWidth;\n height = customisationsHeight === null ? calculateSize(width, boxHeight / boxWidth) : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n }\n const attributes = {};\n const setAttr = (prop, value) => {\n if (!isUnsetKeyword(value)) {\n attributes[prop] = value.toString();\n }\n };\n setAttr(\"width\", width);\n setAttr(\"height\", height);\n const viewBox = [box.left, box.top, boxWidth, boxHeight];\n attributes.viewBox = viewBox.join(\" \");\n return {\n attributes,\n viewBox,\n body\n };\n}\n\nconst regex = /\\sid=\"(\\S+)\"/g;\nconst randomPrefix = \"IconifyId\" + Date.now().toString(16) + (Math.random() * 16777216 | 0).toString(16);\nlet counter = 0;\nfunction replaceIDs(body, prefix = randomPrefix) {\n const ids = [];\n let match;\n while (match = regex.exec(body)) {\n ids.push(match[1]);\n }\n if (!ids.length) {\n return body;\n }\n const suffix = \"suffix\" + (Math.random() * 16777216 | Date.now()).toString(16);\n ids.forEach((id) => {\n const newID = typeof prefix === \"function\" ? prefix(id) : prefix + (counter++).toString();\n const escapedID = id.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n body = body.replace(\n // Allowed characters before id: [#;\"]\n // Allowed characters after id: [)\"], .[a-z]\n new RegExp('([#;\"])(' + escapedID + ')([\")]|\\\\.[a-z])', \"g\"),\n \"$1\" + newID + suffix + \"$3\"\n );\n });\n body = body.replace(new RegExp(suffix, \"g\"), \"\");\n return body;\n}\n\nconst storage = /* @__PURE__ */ Object.create(null);\nfunction setAPIModule(provider, item) {\n storage[provider] = item;\n}\nfunction getAPIModule(provider) {\n return storage[provider] || storage[\"\"];\n}\n\nfunction createAPIConfig(source) {\n let resources;\n if (typeof source.resources === \"string\") {\n resources = [source.resources];\n } else {\n resources = source.resources;\n if (!(resources instanceof Array) || !resources.length) {\n return null;\n }\n }\n const result = {\n // API hosts\n resources,\n // Root path\n path: source.path || \"/\",\n // URL length limit\n maxURL: source.maxURL || 500,\n // Timeout before next host is used.\n rotate: source.rotate || 750,\n // Timeout before failing query.\n timeout: source.timeout || 5e3,\n // Randomise default API end point.\n random: source.random === true,\n // Start index\n index: source.index || 0,\n // Receive data after time out (used if time out kicks in first, then API module sends data anyway).\n dataAfterTimeout: source.dataAfterTimeout !== false\n };\n return result;\n}\nconst configStorage = /* @__PURE__ */ Object.create(null);\nconst fallBackAPISources = [\n \"https://api.simplesvg.com\",\n \"https://api.unisvg.com\"\n];\nconst fallBackAPI = [];\nwhile (fallBackAPISources.length > 0) {\n if (fallBackAPISources.length === 1) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n if (Math.random() > 0.5) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n fallBackAPI.push(fallBackAPISources.pop());\n }\n }\n}\nconfigStorage[\"\"] = createAPIConfig({\n resources: [\"https://api.iconify.design\"].concat(fallBackAPI)\n});\nfunction addAPIProvider(provider, customConfig) {\n const config = createAPIConfig(customConfig);\n if (config === null) {\n return false;\n }\n configStorage[provider] = config;\n return true;\n}\nfunction getAPIConfig(provider) {\n return configStorage[provider];\n}\nfunction listAPIProviders() {\n return Object.keys(configStorage);\n}\n\nconst detectFetch = () => {\n let callback;\n try {\n callback = fetch;\n if (typeof callback === \"function\") {\n return callback;\n }\n } catch (err) {\n }\n};\nlet fetchModule = detectFetch();\nfunction setFetch(fetch2) {\n fetchModule = fetch2;\n}\nfunction getFetch() {\n return fetchModule;\n}\nfunction calculateMaxLength(provider, prefix) {\n const config = getAPIConfig(provider);\n if (!config) {\n return 0;\n }\n let result;\n if (!config.maxURL) {\n result = 0;\n } else {\n let maxHostLength = 0;\n config.resources.forEach((item) => {\n const host = item;\n maxHostLength = Math.max(maxHostLength, host.length);\n });\n const url = prefix + \".json?icons=\";\n result = config.maxURL - maxHostLength - config.path.length - url.length;\n }\n return result;\n}\nfunction shouldAbort(status) {\n return status === 404;\n}\nconst prepare = (provider, prefix, icons) => {\n const results = [];\n const maxLength = calculateMaxLength(provider, prefix);\n const type = \"icons\";\n let item = {\n type,\n provider,\n prefix,\n icons: []\n };\n let length = 0;\n icons.forEach((name, index) => {\n length += name.length + 1;\n if (length >= maxLength && index > 0) {\n results.push(item);\n item = {\n type,\n provider,\n prefix,\n icons: []\n };\n length = name.length;\n }\n item.icons.push(name);\n });\n results.push(item);\n return results;\n};\nfunction getPath(provider) {\n if (typeof provider === \"string\") {\n const config = getAPIConfig(provider);\n if (config) {\n return config.path;\n }\n }\n return \"/\";\n}\nconst send = (host, params, callback) => {\n if (!fetchModule) {\n callback(\"abort\", 424);\n return;\n }\n let path = getPath(params.provider);\n switch (params.type) {\n case \"icons\": {\n const prefix = params.prefix;\n const icons = params.icons;\n const iconsList = icons.join(\",\");\n const urlParams = new URLSearchParams({\n icons: iconsList\n });\n path += prefix + \".json?\" + urlParams.toString();\n break;\n }\n case \"custom\": {\n const uri = params.uri;\n path += uri.slice(0, 1) === \"/\" ? uri.slice(1) : uri;\n break;\n }\n default:\n callback(\"abort\", 400);\n return;\n }\n let defaultError = 503;\n fetchModule(host + path).then((response) => {\n const status = response.status;\n if (status !== 200) {\n setTimeout(() => {\n callback(shouldAbort(status) ? \"abort\" : \"next\", status);\n });\n return;\n }\n defaultError = 501;\n return response.json();\n }).then((data) => {\n if (typeof data !== \"object\" || data === null) {\n setTimeout(() => {\n if (data === 404) {\n callback(\"abort\", data);\n } else {\n callback(\"next\", defaultError);\n }\n });\n return;\n }\n setTimeout(() => {\n callback(\"success\", data);\n });\n }).catch(() => {\n callback(\"next\", defaultError);\n });\n};\nconst fetchAPIModule = {\n prepare,\n send\n};\n\nfunction sortIcons(icons) {\n const result = {\n loaded: [],\n missing: [],\n pending: []\n };\n const storage = /* @__PURE__ */ Object.create(null);\n icons.sort((a, b) => {\n if (a.provider !== b.provider) {\n return a.provider.localeCompare(b.provider);\n }\n if (a.prefix !== b.prefix) {\n return a.prefix.localeCompare(b.prefix);\n }\n return a.name.localeCompare(b.name);\n });\n let lastIcon = {\n provider: \"\",\n prefix: \"\",\n name: \"\"\n };\n icons.forEach((icon) => {\n if (lastIcon.name === icon.name && lastIcon.prefix === icon.prefix && lastIcon.provider === icon.provider) {\n return;\n }\n lastIcon = icon;\n const provider = icon.provider;\n const prefix = icon.prefix;\n const name = icon.name;\n const providerStorage = storage[provider] || (storage[provider] = /* @__PURE__ */ Object.create(null));\n const localStorage = providerStorage[prefix] || (providerStorage[prefix] = getStorage(provider, prefix));\n let list;\n if (name in localStorage.icons) {\n list = result.loaded;\n } else if (prefix === \"\" || localStorage.missing.has(name)) {\n list = result.missing;\n } else {\n list = result.pending;\n }\n const item = {\n provider,\n prefix,\n name\n };\n list.push(item);\n });\n return result;\n}\n\nfunction removeCallback(storages, id) {\n storages.forEach((storage) => {\n const items = storage.loaderCallbacks;\n if (items) {\n storage.loaderCallbacks = items.filter((row) => row.id !== id);\n }\n });\n}\nfunction updateCallbacks(storage) {\n if (!storage.pendingCallbacksFlag) {\n storage.pendingCallbacksFlag = true;\n setTimeout(() => {\n storage.pendingCallbacksFlag = false;\n const items = storage.loaderCallbacks ? storage.loaderCallbacks.slice(0) : [];\n if (!items.length) {\n return;\n }\n let hasPending = false;\n const provider = storage.provider;\n const prefix = storage.prefix;\n items.forEach((item) => {\n const icons = item.icons;\n const oldLength = icons.pending.length;\n icons.pending = icons.pending.filter((icon) => {\n if (icon.prefix !== prefix) {\n return true;\n }\n const name = icon.name;\n if (storage.icons[name]) {\n icons.loaded.push({\n provider,\n prefix,\n name\n });\n } else if (storage.missing.has(name)) {\n icons.missing.push({\n provider,\n prefix,\n name\n });\n } else {\n hasPending = true;\n return true;\n }\n return false;\n });\n if (icons.pending.length !== oldLength) {\n if (!hasPending) {\n removeCallback([storage], item.id);\n }\n item.callback(\n icons.loaded.slice(0),\n icons.missing.slice(0),\n icons.pending.slice(0),\n item.abort\n );\n }\n });\n });\n }\n}\nlet idCounter = 0;\nfunction storeCallback(callback, icons, pendingSources) {\n const id = idCounter++;\n const abort = removeCallback.bind(null, pendingSources, id);\n if (!icons.pending.length) {\n return abort;\n }\n const item = {\n id,\n icons,\n callback,\n abort\n };\n pendingSources.forEach((storage) => {\n (storage.loaderCallbacks || (storage.loaderCallbacks = [])).push(item);\n });\n return abort;\n}\n\nfunction listToIcons(list, validate = true, simpleNames = false) {\n const result = [];\n list.forEach((item) => {\n const icon = typeof item === \"string\" ? stringToIcon(item, validate, simpleNames) : item;\n if (icon) {\n result.push(icon);\n }\n });\n return result;\n}\n\n// src/config.ts\nvar defaultConfig = {\n resources: [],\n index: 0,\n timeout: 2e3,\n rotate: 750,\n random: false,\n dataAfterTimeout: false\n};\n\n// src/query.ts\nfunction sendQuery(config, payload, query, done) {\n const resourcesCount = config.resources.length;\n const startIndex = config.random ? Math.floor(Math.random() * resourcesCount) : config.index;\n let resources;\n if (config.random) {\n let list = config.resources.slice(0);\n resources = [];\n while (list.length > 1) {\n const nextIndex = Math.floor(Math.random() * list.length);\n resources.push(list[nextIndex]);\n list = list.slice(0, nextIndex).concat(list.slice(nextIndex + 1));\n }\n resources = resources.concat(list);\n } else {\n resources = config.resources.slice(startIndex).concat(config.resources.slice(0, startIndex));\n }\n const startTime = Date.now();\n let status = \"pending\";\n let queriesSent = 0;\n let lastError;\n let timer = null;\n let queue = [];\n let doneCallbacks = [];\n if (typeof done === \"function\") {\n doneCallbacks.push(done);\n }\n function resetTimer() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function abort() {\n if (status === \"pending\") {\n status = \"aborted\";\n }\n resetTimer();\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function subscribe(callback, overwrite) {\n if (overwrite) {\n doneCallbacks = [];\n }\n if (typeof callback === \"function\") {\n doneCallbacks.push(callback);\n }\n }\n function getQueryStatus() {\n return {\n startTime,\n payload,\n status,\n queriesSent,\n queriesPending: queue.length,\n subscribe,\n abort\n };\n }\n function failQuery() {\n status = \"failed\";\n doneCallbacks.forEach((callback) => {\n callback(void 0, lastError);\n });\n }\n function clearQueue() {\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function moduleResponse(item, response, data) {\n const isError = response !== \"success\";\n queue = queue.filter((queued) => queued !== item);\n switch (status) {\n case \"pending\":\n break;\n case \"failed\":\n if (isError || !config.dataAfterTimeout) {\n return;\n }\n break;\n default:\n return;\n }\n if (response === \"abort\") {\n lastError = data;\n failQuery();\n return;\n }\n if (isError) {\n lastError = data;\n if (!queue.length) {\n if (!resources.length) {\n failQuery();\n } else {\n execNext();\n }\n }\n return;\n }\n resetTimer();\n clearQueue();\n if (!config.random) {\n const index = config.resources.indexOf(item.resource);\n if (index !== -1 && index !== config.index) {\n config.index = index;\n }\n }\n status = \"completed\";\n doneCallbacks.forEach((callback) => {\n callback(data);\n });\n }\n function execNext() {\n if (status !== \"pending\") {\n return;\n }\n resetTimer();\n const resource = resources.shift();\n if (resource === void 0) {\n if (queue.length) {\n timer = setTimeout(() => {\n resetTimer();\n if (status === \"pending\") {\n clearQueue();\n failQuery();\n }\n }, config.timeout);\n return;\n }\n failQuery();\n return;\n }\n const item = {\n status: \"pending\",\n resource,\n callback: (status2, data) => {\n moduleResponse(item, status2, data);\n }\n };\n queue.push(item);\n queriesSent++;\n timer = setTimeout(execNext, config.rotate);\n query(resource, payload, item.callback);\n }\n setTimeout(execNext);\n return getQueryStatus;\n}\n\n// src/index.ts\nfunction initRedundancy(cfg) {\n const config = {\n ...defaultConfig,\n ...cfg\n };\n let queries = [];\n function cleanup() {\n queries = queries.filter((item) => item().status === \"pending\");\n }\n function query(payload, queryCallback, doneCallback) {\n const query2 = sendQuery(\n config,\n payload,\n queryCallback,\n (data, error) => {\n cleanup();\n if (doneCallback) {\n doneCallback(data, error);\n }\n }\n );\n queries.push(query2);\n return query2;\n }\n function find(callback) {\n return queries.find((value) => {\n return callback(value);\n }) || null;\n }\n const instance = {\n query,\n find,\n setIndex: (index) => {\n config.index = index;\n },\n getIndex: () => config.index,\n cleanup\n };\n return instance;\n}\n\nfunction emptyCallback$1() {\n}\nconst redundancyCache = /* @__PURE__ */ Object.create(null);\nfunction getRedundancyCache(provider) {\n if (!redundancyCache[provider]) {\n const config = getAPIConfig(provider);\n if (!config) {\n return;\n }\n const redundancy = initRedundancy(config);\n const cachedReundancy = {\n config,\n redundancy\n };\n redundancyCache[provider] = cachedReundancy;\n }\n return redundancyCache[provider];\n}\nfunction sendAPIQuery(target, query, callback) {\n let redundancy;\n let send;\n if (typeof target === \"string\") {\n const api = getAPIModule(target);\n if (!api) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n send = api.send;\n const cached = getRedundancyCache(target);\n if (cached) {\n redundancy = cached.redundancy;\n }\n } else {\n const config = createAPIConfig(target);\n if (config) {\n redundancy = initRedundancy(config);\n const moduleKey = target.resources ? target.resources[0] : \"\";\n const api = getAPIModule(moduleKey);\n if (api) {\n send = api.send;\n }\n }\n }\n if (!redundancy || !send) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n return redundancy.query(query, send, callback)().abort;\n}\n\nfunction emptyCallback() {\n}\nfunction loadedNewIcons(storage) {\n if (!storage.iconsLoaderFlag) {\n storage.iconsLoaderFlag = true;\n setTimeout(() => {\n storage.iconsLoaderFlag = false;\n updateCallbacks(storage);\n });\n }\n}\nfunction checkIconNamesForAPI(icons) {\n const valid = [];\n const invalid = [];\n icons.forEach((name) => {\n (name.match(matchIconName) ? valid : invalid).push(name);\n });\n return {\n valid,\n invalid\n };\n}\nfunction parseLoaderResponse(storage, icons, data) {\n function checkMissing() {\n const pending = storage.pendingIcons;\n icons.forEach((name) => {\n if (pending) {\n pending.delete(name);\n }\n if (!storage.icons[name]) {\n storage.missing.add(name);\n }\n });\n }\n if (data && typeof data === \"object\") {\n try {\n const parsed = addIconSet(storage, data);\n if (!parsed.length) {\n checkMissing();\n return;\n }\n } catch (err) {\n console.error(err);\n }\n }\n checkMissing();\n loadedNewIcons(storage);\n}\nfunction parsePossiblyAsyncResponse(response, callback) {\n if (response instanceof Promise) {\n response.then((data) => {\n callback(data);\n }).catch(() => {\n callback(null);\n });\n } else {\n callback(response);\n }\n}\nfunction loadNewIcons(storage, icons) {\n if (!storage.iconsToLoad) {\n storage.iconsToLoad = icons;\n } else {\n storage.iconsToLoad = storage.iconsToLoad.concat(icons).sort();\n }\n if (!storage.iconsQueueFlag) {\n storage.iconsQueueFlag = true;\n setTimeout(() => {\n storage.iconsQueueFlag = false;\n const { provider, prefix } = storage;\n const icons2 = storage.iconsToLoad;\n delete storage.iconsToLoad;\n if (!icons2 || !icons2.length) {\n return;\n }\n const customIconLoader = storage.loadIcon;\n if (storage.loadIcons && (icons2.length > 1 || !customIconLoader)) {\n parsePossiblyAsyncResponse(\n storage.loadIcons(icons2, prefix, provider),\n (data) => {\n parseLoaderResponse(storage, icons2, data);\n }\n );\n return;\n }\n if (customIconLoader) {\n icons2.forEach((name) => {\n const response = customIconLoader(name, prefix, provider);\n parsePossiblyAsyncResponse(response, (data) => {\n const iconSet = data ? {\n prefix,\n icons: {\n [name]: data\n }\n } : null;\n parseLoaderResponse(storage, [name], iconSet);\n });\n });\n return;\n }\n const { valid, invalid } = checkIconNamesForAPI(icons2);\n if (invalid.length) {\n parseLoaderResponse(storage, invalid, null);\n }\n if (!valid.length) {\n return;\n }\n const api = prefix.match(matchIconName) ? getAPIModule(provider) : null;\n if (!api) {\n parseLoaderResponse(storage, valid, null);\n return;\n }\n const params = api.prepare(provider, prefix, valid);\n params.forEach((item) => {\n sendAPIQuery(provider, item, (data) => {\n parseLoaderResponse(storage, item.icons, data);\n });\n });\n });\n }\n}\nconst loadIcons = (icons, callback) => {\n const cleanedIcons = listToIcons(icons, true, allowSimpleNames());\n const sortedIcons = sortIcons(cleanedIcons);\n if (!sortedIcons.pending.length) {\n let callCallback = true;\n if (callback) {\n setTimeout(() => {\n if (callCallback) {\n callback(\n sortedIcons.loaded,\n sortedIcons.missing,\n sortedIcons.pending,\n emptyCallback\n );\n }\n });\n }\n return () => {\n callCallback = false;\n };\n }\n const newIcons = /* @__PURE__ */ Object.create(null);\n const sources = [];\n let lastProvider, lastPrefix;\n sortedIcons.pending.forEach((icon) => {\n const { provider, prefix } = icon;\n if (prefix === lastPrefix && provider === lastProvider) {\n return;\n }\n lastProvider = provider;\n lastPrefix = prefix;\n sources.push(getStorage(provider, prefix));\n const providerNewIcons = newIcons[provider] || (newIcons[provider] = /* @__PURE__ */ Object.create(null));\n if (!providerNewIcons[prefix]) {\n providerNewIcons[prefix] = [];\n }\n });\n sortedIcons.pending.forEach((icon) => {\n const { provider, prefix, name } = icon;\n const storage = getStorage(provider, prefix);\n const pendingQueue = storage.pendingIcons || (storage.pendingIcons = /* @__PURE__ */ new Set());\n if (!pendingQueue.has(name)) {\n pendingQueue.add(name);\n newIcons[provider][prefix].push(name);\n }\n });\n sources.forEach((storage) => {\n const list = newIcons[storage.provider][storage.prefix];\n if (list.length) {\n loadNewIcons(storage, list);\n }\n });\n return callback ? storeCallback(callback, sortedIcons, sources) : emptyCallback;\n};\nconst loadIcon = (icon) => {\n return new Promise((fulfill, reject) => {\n const iconObj = typeof icon === \"string\" ? stringToIcon(icon, true) : icon;\n if (!iconObj) {\n reject(icon);\n return;\n }\n loadIcons([iconObj || icon], (loaded) => {\n if (loaded.length && iconObj) {\n const data = getIconData(iconObj);\n if (data) {\n fulfill({\n ...defaultIconProps,\n ...data\n });\n return;\n }\n }\n reject(icon);\n });\n });\n};\n\nfunction setCustomIconsLoader(loader, prefix, provider) {\n getStorage(provider || \"\", prefix).loadIcons = loader;\n}\nfunction setCustomIconLoader(loader, prefix, provider) {\n getStorage(provider || \"\", prefix).loadIcon = loader;\n}\n\nfunction mergeCustomisations(defaults, item) {\n const result = {\n ...defaults\n };\n for (const key in item) {\n const value = item[key];\n const valueType = typeof value;\n if (key in defaultIconSizeCustomisations) {\n if (value === null || value && (valueType === \"string\" || valueType === \"number\")) {\n result[key] = value;\n }\n } else if (valueType === typeof result[key]) {\n result[key] = key === \"rotate\" ? value % 4 : value;\n }\n }\n return result;\n}\n\nconst separator = /[\\s,]+/;\nfunction flipFromString(custom, flip) {\n flip.split(separator).forEach((str) => {\n const value = str.trim();\n switch (value) {\n case \"horizontal\":\n custom.hFlip = true;\n break;\n case \"vertical\":\n custom.vFlip = true;\n break;\n }\n });\n}\n\nfunction rotateFromString(value, defaultValue = 0) {\n const units = value.replace(/^-?[0-9.]*/, \"\");\n function cleanup(value2) {\n while (value2 < 0) {\n value2 += 4;\n }\n return value2 % 4;\n }\n if (units === \"\") {\n const num = parseInt(value);\n return isNaN(num) ? 0 : cleanup(num);\n } else if (units !== value) {\n let split = 0;\n switch (units) {\n case \"%\":\n split = 25;\n break;\n case \"deg\":\n split = 90;\n }\n if (split) {\n let num = parseFloat(value.slice(0, value.length - units.length));\n if (isNaN(num)) {\n return 0;\n }\n num = num / split;\n return num % 1 === 0 ? cleanup(num) : 0;\n }\n }\n return defaultValue;\n}\n\nfunction iconToHTML(body, attributes) {\n let renderAttribsHTML = body.indexOf(\"xlink:\") === -1 ? \"\" : ' xmlns:xlink=\"http://www.w3.org/1999/xlink\"';\n for (const attr in attributes) {\n renderAttribsHTML += \" \" + attr + '=\"' + attributes[attr] + '\"';\n }\n return '<svg xmlns=\"http://www.w3.org/2000/svg\"' + renderAttribsHTML + \">\" + body + \"</svg>\";\n}\n\nfunction encodeSVGforURL(svg) {\n return svg.replace(/\"/g, \"'\").replace(/%/g, \"%25\").replace(/#/g, \"%23\").replace(/</g, \"%3C\").replace(/>/g, \"%3E\").replace(/\\s+/g, \" \");\n}\nfunction svgToData(svg) {\n return \"data:image/svg+xml,\" + encodeSVGforURL(svg);\n}\nfunction svgToURL(svg) {\n return 'url(\"' + svgToData(svg) + '\")';\n}\n\nconst defaultExtendedIconCustomisations = {\n ...defaultIconCustomisations,\n inline: false,\n};\n\n/**\n * Default SVG attributes\n */\nconst svgDefaults = {\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'xmlns:xlink': 'http://www.w3.org/1999/xlink',\n 'aria-hidden': true,\n 'role': 'img',\n};\n/**\n * Style modes\n */\nconst commonProps = {\n display: 'inline-block',\n};\nconst monotoneProps = {\n backgroundColor: 'currentColor',\n};\nconst coloredProps = {\n backgroundColor: 'transparent',\n};\n// Dynamically add common props to variables above\nconst propsToAdd = {\n Image: 'var(--svg)',\n Repeat: 'no-repeat',\n Size: '100% 100%',\n};\nconst propsToAddTo = {\n webkitMask: monotoneProps,\n mask: monotoneProps,\n background: coloredProps,\n};\nfor (const prefix in propsToAddTo) {\n const list = propsToAddTo[prefix];\n for (const prop in propsToAdd) {\n list[prefix + prop] = propsToAdd[prop];\n }\n}\n/**\n * Aliases for customisations.\n * In Vue 'v-' properties are reserved, so v-flip must be renamed\n */\nconst customisationAliases = {};\n['horizontal', 'vertical'].forEach((prefix) => {\n const attr = prefix.slice(0, 1) + 'Flip';\n // vertical-flip\n customisationAliases[prefix + '-flip'] = attr;\n // v-flip\n customisationAliases[prefix.slice(0, 1) + '-flip'] = attr;\n // verticalFlip\n customisationAliases[prefix + 'Flip'] = attr;\n});\n/**\n * Fix size: add 'px' to numbers\n */\nfunction fixSize(value) {\n return value + (value.match(/^[-0-9.]+$/) ? 'px' : '');\n}\n/**\n * Render icon\n */\nconst render = (\n// Icon must be validated before calling this function\nicon, \n// Partial properties\nprops) => {\n // Split properties\n const customisations = mergeCustomisations(defaultExtendedIconCustomisations, props);\n const componentProps = { ...svgDefaults };\n // Check mode\n const mode = props.mode || 'svg';\n // Copy style\n const style = {};\n const propsStyle = props.style;\n const customStyle = typeof propsStyle === 'object' && !(propsStyle instanceof Array)\n ? propsStyle\n : {};\n // Get element properties\n for (let key in props) {\n const value = props[key];\n if (value === void 0) {\n continue;\n }\n switch (key) {\n // Properties to ignore\n case 'icon':\n case 'style':\n case 'onLoad':\n case 'mode':\n case 'ssr':\n break;\n // Boolean attributes\n case 'inline':\n case 'hFlip':\n case 'vFlip':\n customisations[key] =\n value === true || value === 'true' || value === 1;\n break;\n // Flip as string: 'horizontal,vertical'\n case 'flip':\n if (typeof value === 'string') {\n flipFromString(customisations, value);\n }\n break;\n // Color: override style\n case 'color':\n style.color = value;\n break;\n // Rotation as string\n case 'rotate':\n if (typeof value === 'string') {\n customisations[key] = rotateFromString(value);\n }\n else if (typeof value === 'number') {\n customisations[key] = value;\n }\n break;\n // Remove aria-hidden\n case 'ariaHidden':\n case 'aria-hidden':\n // Vue transforms 'aria-hidden' property to 'ariaHidden'\n if (value !== true && value !== 'true') {\n delete componentProps['aria-hidden'];\n }\n break;\n default: {\n const alias = customisationAliases[key];\n if (alias) {\n // Aliases for boolean customisations\n if (value === true || value === 'true' || value === 1) {\n customisations[alias] = true;\n }\n }\n else if (defaultExtendedIconCustomisations[key] === void 0) {\n // Copy missing property if it does not exist in customisations\n componentProps[key] = value;\n }\n }\n }\n }\n // Generate icon\n const item = iconToSVG(icon, customisations);\n const renderAttribs = item.attributes;\n // Inline display\n if (customisations.inline) {\n style.verticalAlign = '-0.125em';\n }\n if (mode === 'svg') {\n // Add style\n componentProps.style = {\n ...style,\n ...customStyle,\n };\n // Add icon stuff\n Object.assign(componentProps, renderAttribs);\n // Counter for ids based on \"id\" property to render icons consistently on server and client\n let localCounter = 0;\n let id = props.id;\n if (typeof id === 'string') {\n // Convert '-' to '_' to avoid errors in animations\n id = id.replace(/-/g, '_');\n }\n // Add innerHTML and style to props\n componentProps['innerHTML'] = replaceIDs(item.body, id ? () => id + 'ID' + localCounter++ : 'iconifyVue');\n // Render icon\n return h('svg', componentProps);\n }\n // Render <span> with style\n const { body, width, height } = icon;\n const useMask = mode === 'mask' ||\n (mode === 'bg' ? false : body.indexOf('currentColor') !== -1);\n // Generate SVG\n const html = iconToHTML(body, {\n ...renderAttribs,\n width: width + '',\n height: height + '',\n });\n // Generate style\n componentProps.style = {\n ...style,\n '--svg': svgToURL(html),\n 'width': fixSize(renderAttribs.width),\n 'height': fixSize(renderAttribs.height),\n ...commonProps,\n ...(useMask ? monotoneProps : coloredProps),\n ...customStyle,\n };\n return h('span', componentProps);\n};\n\n/**\n * Enable cache\n *\n * @deprecated No longer used\n */\nfunction enableCache(storage) {\n //\n}\n/**\n * Disable cache\n *\n * @deprecated No longer used\n */\nfunction disableCache(storage) {\n //\n}\n/**\n * Initialise stuff\n */\n// Enable short names\nallowSimpleNames(true);\n// Set API module\nsetAPIModule('', fetchAPIModule);\n/**\n * Browser stuff\n */\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n const _window = window;\n // Load icons from global \"IconifyPreload\"\n if (_window.IconifyPreload !== void 0) {\n const preload = _window.IconifyPreload;\n const err = 'Invalid IconifyPreload syntax.';\n if (typeof preload === 'object' && preload !== null) {\n (preload instanceof Array ? preload : [preload]).forEach((item) => {\n try {\n if (\n // Check if item is an object and not null/array\n typeof item !== 'object' ||\n item === null ||\n item instanceof Array ||\n // Check for 'icons' and 'prefix'\n typeof item.icons !== 'object' ||\n typeof item.prefix !== 'string' ||\n // Add icon set\n !addCollection(item)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n });\n }\n }\n // Set API from global \"IconifyProviders\"\n if (_window.IconifyProviders !== void 0) {\n const providers = _window.IconifyProviders;\n if (typeof providers === 'object' && providers !== null) {\n for (let key in providers) {\n const err = 'IconifyProviders[' + key + '] is invalid.';\n try {\n const value = providers[key];\n if (typeof value !== 'object' ||\n !value ||\n value.resources === void 0) {\n continue;\n }\n if (!addAPIProvider(key, value)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n }\n }\n }\n}\n/**\n * Empty icon data, rendered when icon is not available\n */\nconst emptyIcon = {\n ...defaultIconProps,\n body: '',\n};\nconst Icon = defineComponent({\n // Do not inherit other attributes: it is handled by render()\n inheritAttrs: false,\n // Set initial data\n data() {\n return {\n // Current icon name\n _name: '',\n // Loading\n _loadingIcon: null,\n // Mounted status\n iconMounted: false,\n // Callback counter to trigger re-render\n counter: 0,\n };\n },\n mounted() {\n // Mark as mounted\n this.iconMounted = true;\n },\n unmounted() {\n this.abortLoading();\n },\n methods: {\n abortLoading() {\n if (this._loadingIcon) {\n this._loadingIcon.abort();\n this._loadingIcon = null;\n }\n },\n // Get data for icon to render or null\n getIcon(icon, onload, customise) {\n // Icon is an object\n if (typeof icon === 'object' &&\n icon !== null &&\n typeof icon.body === 'string') {\n // Stop loading\n this._name = '';\n this.abortLoading();\n return {\n data: icon,\n };\n }\n // Invalid icon?\n let iconName;\n if (typeof icon !== 'string' ||\n (iconName = stringToIcon(icon, false, true)) === null) {\n this.abortLoading();\n return null;\n }\n // Load icon\n let data = getIconData(iconName);\n if (!data) {\n // Icon data is not available\n if (!this._loadingIcon || this._loadingIcon.name !== icon) {\n // New icon to load\n this.abortLoading();\n this._name = '';\n if (data !== null) {\n // Icon was not loaded\n this._loadingIcon = {\n name: icon,\n abort: loadIcons([iconName], () => {\n this.counter++;\n }),\n };\n }\n }\n return null;\n }\n // Icon data is available\n this.abortLoading();\n if (this._name !== icon) {\n this._name = icon;\n if (onload) {\n onload(icon);\n }\n }\n // Customise icon\n if (customise) {\n // Clone data and customise it\n data = Object.assign({}, data);\n const customised = customise(data.body, iconName.name, iconName.prefix, iconName.provider);\n if (typeof customised === 'string') {\n data.body = customised;\n }\n }\n // Add classes\n const classes = ['iconify'];\n if (iconName.prefix !== '') {\n classes.push('iconify--' + iconName.prefix);\n }\n if (iconName.provider !== '') {\n classes.push('iconify--' + iconName.provider);\n }\n return { data, classes };\n },\n },\n // Render icon\n render() {\n // Re-render when counter changes\n this.counter;\n const props = this.$attrs;\n // Get icon data\n const icon = this.iconMounted || props.ssr\n ? this.getIcon(props.icon, props.onLoad, props.customise)\n : null;\n // Validate icon object\n if (!icon) {\n return render(emptyIcon, props);\n }\n // Add classes\n let newProps = props;\n if (icon.classes) {\n newProps = {\n ...props,\n class: (typeof props['class'] === 'string'\n ? props['class'] + ' '\n : '') + icon.classes.join(' '),\n };\n }\n // Render icon\n return render({\n ...defaultIconProps,\n ...icon.data,\n }, newProps);\n },\n});\n/**\n * Internal API\n */\nconst _api = {\n getAPIConfig,\n setAPIModule,\n sendAPIQuery,\n setFetch,\n getFetch,\n listAPIProviders,\n};\n\nexport { Icon, _api, addAPIProvider, addCollection, addIcon, iconToSVG as buildIcon, calculateSize, disableCache, enableCache, getIcon, iconLoaded as iconExists, iconLoaded, listIcons, loadIcon, loadIcons, replaceIDs, setCustomIconLoader, setCustomIconsLoader };\n","<script setup lang=\"ts\">\n// https://icon-sets.iconify.design/\n\n// SUCCESS\n// import IconAccessibility from \"~icons/carbon/accessibility\";\n// <icon-accessibility />\n// import IconAccountBox from \"~icons/mdi/account-box\";\n// <icon-account-box style=\"font-size: 2em; color: red\" />\n\n// import { ChevronUpDownIcon } from \"@heroicons/vue/24/solid\";\n\n// UNSUCCESS : 使用 unplugin-icons 和 unplugin-auto-import 从 iconify 中自动导入任何图标集\n// in Vite\n// pnpm i unplugin-icons --save-dev\n// pnpm i unplugin-vue-component --save-dev\n// pnpm i @iconify/json --save-dev\n// pnpm i @iconify-json/mdi --save-dev\n// <icon-carbon-accessibility />\n// <icon-mdi-account-box style=\"font-size: 2em; color: red\" />\n\nimport { Icon } from \"@iconify/vue\";\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n defineProps<{\n icon?: string;\n color?: string;\n }>(),\n { icon: \"mdi-light:home\", color: getCSSVar(\"--xg-blue\") }\n);\n</script>\n\n<template>\n <span\n class=\"icon\"\n :style=\"[\n 'color: ' + color,\n 'display: inline-flex',\n 'justify-content: center',\n 'align-items: center',\n 'cursor: pointer',\n 'font-size: 1em'\n ]\"\n >\n <Icon\n :icon=\"props.icon\"\n :color=\"color\"\n />\n </span>\n</template>\n\n<style scoped></style>\n","<script setup lang=\"tsx\">\nimport { getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n defineProps<{\n color?: string;\n width?: string;\n }>(),\n {\n color: getCSSVar(\"--xg-blue\"),\n width: \"0.8em\"\n }\n);\n</script>\n\n<template>\n <div\n class=\"loading-11\"\n ref=\"loading11\"\n >\n <div\n class=\"loading-11-inner\"\n :style=\"{ width: props.width, height: props.width }\"\n >\n <div class=\"container container-1\">\n <div\n class=\"dot dot-1\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n <div\n class=\"dot dot-2\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n <div\n class=\"dot dot-3\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n <div\n class=\"dot dot-4\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n </div>\n <div class=\"container container-2\">\n <div\n class=\"dot dot-1\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n <div\n class=\"dot dot-2\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n <div\n class=\"dot dot-3\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n <div\n class=\"dot dot-4\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n </div>\n <div class=\"container container-3\">\n <div\n class=\"dot dot-1\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n <div\n class=\"dot dot-2\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n <div\n class=\"dot dot-3\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n <div\n class=\"dot dot-4\"\n :style=\"{ backgroundColor: props.color }\"\n ></div>\n </div>\n </div>\n </div>\n</template>\n\n<style scoped>\n.loading-11 {\n position: relative;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 100%;\n}\n.loading-11-inner {\n position: relative;\n}\n.loading-11-inner .container {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n.loading-11-inner .container .dot {\n width: 20%;\n height: 20%;\n border-radius: 100%;\n position: absolute;\n animation: bouncedelay 1.2s infinite ease-in-out;\n animation-fill-mode: both;\n}\n.loading-11-inner .container .dot-1 {\n top: 0;\n left: 0;\n}\n.loading-11-inner .container .dot-2 {\n top: 0;\n right: 0;\n}\n.loading-11-inner .container .dot-3 {\n right: 0;\n bottom: 0;\n}\n.loading-11-inner .container .dot-4 {\n left: 0;\n bottom: 0;\n}\n.loading-11-inner .container-1 .dot-2 {\n animation-delay: -0.9s;\n}\n.loading-11-inner .container-1 .dot-3 {\n animation-delay: -0.6s;\n}\n.loading-11-inner .container-1 .dot-4 {\n animation-delay: -0.3s;\n}\n.loading-11-inner .container-2 {\n transform: rotateZ(45deg);\n}\n.loading-11-inner .container-2 .dot-1 {\n animation-delay: -1.1s;\n}\n.loading-11-inner .container-2 .dot-2 {\n animation-delay: -0.8s;\n}\n.loading-11-inner .container-2 .dot-3 {\n animation-delay: -0.5s;\n}\n.loading-11-inner .container-2 .dot-4 {\n animation-delay: -0.2s;\n}\n.loading-11-inner .container-3 {\n transform: rotateZ(90deg);\n}\n.loading-11-inner .container-3 .dot-1 {\n animation-delay: -1s;\n}\n.loading-11-inner .container-3 .dot-2 {\n animation-delay: -0.7s;\n}\n.loading-11-inner .container-3 .dot-3 {\n animation-delay: -0.4s;\n}\n.loading-11-inner .container-3 .dot-4 {\n animation-delay: -0.1s;\n}\n@keyframes bouncedelay {\n 0%,\n 80%,\n 100% {\n transform: scale(0.3);\n }\n 40% {\n transform: scale(1);\n }\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, watch } from \"vue\";\nimport Icon from \"./Icon.vue\";\nimport { throttle } from \"@zyzgroup/core-common\";\nimport { __color, getCSSVar } from \"@zyzgroup/core-web\";\nimport Loading11 from \"./loading/Loading11.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: { Loading11 },\n inheritAttrs: true\n});\n\nexport type ButtonStylePatternType = \"fullfill\" | \"outline\" | \"transparent\";\n\nconst props = withDefaults(\n defineProps<{\n label?: string;\n icon?: string;\n iconPosition?: \"left\" | \"right\";\n disabled?: boolean;\n width?: string;\n height?: string;\n padding?: string;\n fontSize?: string;\n fontWeight?: string;\n borderRadius?: string; // border-radius:x/y\n stylePattern?: ButtonStylePatternType;\n fontColor?: string;\n borderColor?: string;\n bgColor?: string;\n bgColorStart?: string; // 渐变背景色-开始\n bgColorEnd?: string; // 渐变背景色-结束\n asyncClick?: () => Promise<void>;\n }>(),\n {\n iconPosition: \"left\",\n disabled: false,\n width: \"auto\",\n height: \"44px\",\n padding: \"20px\",\n fontSize: \"16px\",\n fontWeight: \"normal\", // normal bold\n borderRadius: \"4px\",\n stylePattern: \"fullfill\"\n }\n);\n\nconst emits = defineEmits<{\n // for ce element\n (event: \"yz-click\"): void;\n (event: \"click\"): void;\n}>();\n\nconst el = ref<HTMLElement>();\n\nconst xgBlue = getCSSVar(\"--xg-blue\", \"#5a82f0\");\n\nconst fontColor = ref(props.fontColor);\nconst borderColor = ref(props.borderColor);\nconst bgColor = ref(props.bgColor);\n\nconst baseFontColor = ref(fontColor.value);\nconst baseBorderColor = ref(borderColor.value);\nconst baseBgColor = ref(bgColor.value);\nconst baseBgColorStart = ref(props.bgColorStart || \"\");\nconst baseBgColorEnd = ref(props.bgColorEnd || \"\");\n\nconst isBgColorGradient = props.bgColorStart && props.bgColorEnd;\n\nfunction setStylePattern(stylePattern: ButtonStylePatternType) {\n switch (stylePattern) {\n case \"transparent\":\n borderColor.value = props.borderColor || \"rgba(255,255,255,0)\";\n bgColor.value = props.bgColor || \"rgba(255,255,255,0)\";\n fontColor.value = props.fontColor || xgBlue;\n break;\n case \"outline\":\n borderColor.value = props.borderColor || xgBlue;\n bgColor.value = props.bgColor || \"rgba(255,255,255,0)\";\n fontColor.value = props.fontColor || xgBlue;\n break;\n case \"fullfill\":\n default:\n borderColor.value = props.borderColor || \"rgba(255,255,255,0)\";\n bgColor.value = props.bgColor || xgBlue;\n fontColor.value =\n props.fontColor || __color.set(bgColor.value).opposite(true).toString();\n break;\n }\n baseFontColor.value = fontColor.value;\n baseBorderColor.value = borderColor.value;\n baseBgColor.value = bgColor.value;\n // 背景色-渐变\n if (isBgColorGradient) {\n baseBgColorStart.value = props.bgColorStart;\n baseBgColorEnd.value = props.bgColorEnd;\n bgColor.value = `linear-gradient(180deg, ${baseBgColorStart.value} 0%, ${baseBgColorEnd.value} 100%)`;\n }\n}\n\nwatch(\n () => props.stylePattern,\n () => {\n setStylePattern(props.stylePattern);\n },\n { immediate: true }\n);\n\nconst opacity = ref(props.disabled ? \"0.6\" : \"1\");\nconst cursor = ref(props.disabled ? \"not-allowed\" : \"pointer\");\n\nlet isMouseOver = false;\nconst darkenOver = 0.03;\nconst darkenClick = 0.06;\n\nconst mouseover = () => {\n if (props.disabled) return;\n isMouseOver = true;\n if (props.stylePattern == \"transparent\") {\n fontColor.value = __color\n .set(baseFontColor.value)\n .darken(darkenOver)\n .toString();\n }\n borderColor.value = __color\n .set(baseBorderColor.value)\n .darken(darkenOver)\n .toString();\n // 背景色-渐变\n if (isBgColorGradient) {\n bgColor.value = `linear-gradient(180deg, ${baseBgColorEnd.value} 0%, ${baseBgColorStart.value} 100%)`;\n } else {\n bgColor.value = __color\n .set(baseBgColor.value)\n .darken(darkenOver)\n .toString();\n }\n};\n\nconst mouseleave = () => {\n if (props.disabled) return;\n isMouseOver = false;\n fontColor.value = baseFontColor.value;\n borderColor.value = baseBorderColor.value;\n // 背景色-渐变\n if (isBgColorGradient) {\n bgColor.value = `linear-gradient(180deg, ${baseBgColorStart.value} 0%, ${baseBgColorEnd.value} 100%)`;\n } else {\n bgColor.value = baseBgColor.value;\n }\n};\n\nconst asyncClickPending = ref(false);\n\nconst click = () => {\n if (props.disabled || asyncClickPending.value) {\n return;\n }\n if (props.stylePattern == \"transparent\") {\n fontColor.value = __color\n .set(baseFontColor.value)\n .darken(darkenClick)\n .toString();\n }\n borderColor.value = __color\n .set(baseBorderColor.value)\n .darken(darkenClick)\n .toString();\n // 背景色-渐变\n if (isBgColorGradient) {\n bgColor.value = `linear-gradient(180deg, ${baseBgColorStart.value} 0%, ${baseBgColorEnd.value} 100%)`;\n } else {\n bgColor.value = __color\n .set(baseBgColor.value)\n .darken(darkenClick)\n .toString();\n }\n setTimeout(() => {\n if (isMouseOver) {\n mouseover();\n } else {\n mouseleave();\n }\n }, 150);\n emits(\"yz-click\");\n emits(\"click\");\n if (props.asyncClick) {\n asyncClickPending.value = true;\n props\n .asyncClick()\n .then(() => {\n asyncClickPending.value = false;\n })\n .catch(() => {\n asyncClickPending.value = false;\n });\n }\n};\n\nconst throttleClick = throttle(click, 300);\n\ndefineExpose({\n // 父组件ref子Button组件时:xxx.value.el.getBoundingClientRect()\n el\n});\n</script>\n\n<template>\n <div\n ref=\"el\"\n class=\"button\"\n :style=\"[\n `opacity: ${opacity}`,\n `border: 1px solid ${borderColor}`,\n `background: ${bgColor}`,\n `color: ${fontColor}`,\n `border-radius: ${props.borderRadius}`,\n `width: ${props.width}`,\n `height: ${props.height}`,\n `line-height: ${props.height}`,\n `font-size: ${props.fontSize}`,\n `cursor: ${cursor}`,\n `user-select: none`,\n `box-sizing: border-box`,\n `display: inline-flex`,\n `justify-content: center`,\n `align-items: center`,\n `z-index: 0`\n ]\"\n @mouseover=\"mouseover\"\n @mouseleave=\"mouseleave\"\n @click=\"throttleClick\"\n >\n <label\n class=\"label truncate\"\n :style=\"{\n padding: '0 ' + padding,\n cursor: cursor,\n display: 'inline-flex',\n justifyContent: 'center',\n alignItems: 'center',\n fontWeight: props.fontWeight || 'normal'\n }\"\n >\n <div\n v-if=\"asyncClickPending\"\n class=\"loading\"\n style=\"margin-right: 6px\"\n >\n <Loading11 :color=\"fontColor\"></Loading11>\n </div>\n <slot>\n <Icon\n v-if=\"icon && iconPosition === 'left'\"\n :icon=\"icon\"\n :color=\"fontColor\"\n :style=\"{\n marginRight: '4px',\n cursor: cursor\n }\"\n ></Icon>\n <span\n :style=\"{\n cursor: cursor\n }\"\n >\n {{ label }}\n </span>\n <Icon\n v-if=\"icon && iconPosition === 'right'\"\n :icon=\"icon\"\n :color=\"fontColor\"\n :style=\"{\n marginLeft: '4px',\n cursor: cursor\n }\"\n ></Icon>\n </slot>\n </label>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { watch, ref, computed } from \"vue\";\nimport { atomReadStyle, atomWriteStyle } from \"@zyzgroup/core-web\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: {},\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n visible?: boolean;\n global?: boolean;\n color?: string;\n }>(),\n {\n visible: false,\n global: true,\n color: \"rgba(0, 0, 0, 0.25)\"\n }\n);\n\nconst style = computed(\n () =>\n ({\n // FOUC: flash of unstyled content 未样式化文本闪烁\n display: props.visible ? \"block\" : \"none\",\n overflow: \"hidden\",\n \"background-color\": props.color,\n position: \"fixed\",\n \"z-index\": \"99999\",\n width: \"100%\",\n height: \"100%\",\n inset: \"0\"\n // 'overscroll-behavior-y': 'contain' /* avoid scroll chaining */,\n // 'scrollbar-gutter': 'stable',\n } as Record<string, string>)\n);\n\nconst el = ref();\n\nconst initDocumentOverflow =\n atomReadStyle(document.documentElement, \"overflow\") || \"visible\";\n\nlet initParentOverflow = \"\";\n\n// fixScroll\nwatch(\n () => props.visible,\n () => {\n if (props.global) {\n atomWriteStyle(\n document.documentElement,\n \"overflow\",\n props.visible ? \"hidden\" : initDocumentOverflow\n );\n } else {\n if (!initParentOverflow) {\n initParentOverflow =\n atomReadStyle(el.value.parentElement, \"overflow\") || \"visible\";\n }\n atomWriteStyle(\n el.value.parentElement,\n \"overflow\",\n props.visible ? \"hidden\" : initParentOverflow\n );\n }\n },\n { immediate: true }\n);\n\ndefineExpose({});\n</script>\n\n<template>\n <div\n ref=\"el\"\n class=\"overlay\"\n :style=\"style\"\n >\n <slot></slot>\n </div>\n</template>\n","<script setup lang=\"tsx\">\nimport { onMounted, onUnmounted, ref, watchEffect } from \"vue\";\nimport {\n ElementEventBusController,\n getInnerText,\n useClipboard,\n useElementEventBus\n} from \"@zyzgroup/core-web\";\n\nexport type ContainerType = \"block\" | \"shrink\" | \"full\";\n\n/// 效果触发时机\nexport type EffectTriggerTiming =\n | \"manual\"\n | \"mouseMove\"\n | \"click\"\n | \"immediate\";\n\n/// 效果状态\nexport type EffectStatus = \"start\" | \"end\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: {},\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n type?: ContainerType;\n /// 效果触发时机\n effectTriggerTiming?: EffectTriggerTiming;\n /// 是否支持复制文字\n supportCopyText?: boolean;\n }>(),\n {\n type: \"block\",\n effectTriggerTiming: \"manual\",\n supportCopyText: false\n }\n);\n\nconst emits = defineEmits<{\n (event: \"ready\", controller: ElementEventBusController): void;\n (event: \"update\", controller: ElementEventBusController): void;\n (event: \"clipboard_success\", text: string): void;\n (event: \"clipboard_error\", text: string): void;\n /// 效果\n (event: \"start\"): void;\n (event: \"end\"): void;\n}>();\n\nlet effectStatus: EffectStatus = \"start\";\nconst start = () => {\n effectStatus = \"start\";\n emits(\"start\");\n};\nconst end = () => {\n effectStatus = \"end\";\n emits(\"end\");\n};\nconst next = () => {\n effectStatus == \"start\" ? end() : start();\n};\n\nconst r = ref();\n\nlet controller: ElementEventBusController;\n\nlet getControllerResolve: (\n value: ElementEventBusController | PromiseLike<ElementEventBusController>\n) => void;\n\nlet isEmitReady = false;\n\nwatchEffect(() => {\n if (!r.value) {\n // not mounted yet, or the element was unmounted (e.g. by v-if)\n return;\n }\n if (controller) {\n return;\n }\n\n controller = useElementEventBus(r.value);\n\n controller.eb.on(\"resize\", () => {\n if (isEmitReady) {\n emits(\"update\", controller);\n }\n });\n\n controller.eb.on(\"mouseEnter\", () => {\n if (props.effectTriggerTiming == \"mouseMove\") {\n next();\n }\n });\n\n controller.eb.on(\"mouseLeave\", () => {\n if (props.effectTriggerTiming == \"mouseMove\") {\n next();\n }\n });\n\n controller.eb.on(\"tap\", () => {\n if (props.effectTriggerTiming == \"click\") {\n next();\n }\n if (props.supportCopyText) {\n const text = getInnerText(r.value);\n useClipboard(text)\n .then(() => {\n emits(\"clipboard_success\", text);\n })\n .catch((err) => {\n emits(\"clipboard_error\", err.toString());\n });\n }\n });\n\n if (props.effectTriggerTiming !== \"manual\") {\n start();\n }\n\n if (props.effectTriggerTiming == \"immediate\") {\n next();\n }\n\n controller.start().then(() => {\n getControllerResolve?.(controller);\n emits(\"ready\", controller);\n isEmitReady = true;\n });\n});\n\nonMounted(() => {});\n\nonUnmounted(() => {\n controller?.end();\n});\n\n// 不推荐使用,只推荐使用 @ready + @update\ndefineExpose({\n getController: () =>\n new Promise<ElementEventBusController>((resolve) => {\n if (controller) {\n return resolve(controller);\n }\n getControllerResolve = resolve;\n }),\n getElement: () => r.value,\n getRect: () => r.value.getBoundingClientRect()\n});\n</script>\n\n<template>\n <div\n ref=\"r\"\n class=\"container\"\n :style=\"{\n position: 'relative',\n boxSizing: 'border-box',\n display: props.type == 'shrink' ? 'inline-block' : 'block',\n width: props.type == 'full' ? '100%' : 'auto',\n height: props.type == 'full' ? '100%' : 'auto'\n /* overflow: 'hidden', */\n /* pointer-events: none; */\n }\"\n v-bind=\"$attrs\"\n >\n <slot></slot>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, reactive, watch } from \"vue\";\nimport Overlay from \"./Overlay.vue\";\nimport Container from \"./Container.vue\";\nimport { Timeline, Easing, hasClass } from \"@zyzgroup/core-web\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: { Overlay, Container },\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n closeWhenClickOverlay?: boolean;\n directionFrom?: \"bottom\" | \"top\" | \"left\" | \"right\" | \"center\" | \"absolute\";\n absoluteLeft?: string;\n absoluteTop?: string;\n absoluteWidth?: string;\n absoluteHeight?: string;\n dur?: number;\n global?: boolean;\n overlayBgColor?: string;\n /// popValue 单位px, 如果不传,默认 slot width or height\n popValue?: number;\n }>(),\n {\n closeWhenClickOverlay: true,\n directionFrom: \"bottom\",\n absoluteLeft: \"0px\",\n absoluteTop: \"0px\",\n absoluteWidth: \"100%\",\n absoluteHeight: \"100%\",\n dur: 200,\n global: true\n }\n);\n\nconst emits = defineEmits<{\n (event: \"open\"): void;\n (event: \"close\"): void;\n (event: \"resize\", rect: DOMRect): void;\n (event: \"clickOverlay\"): void;\n}>();\n\nconst tl = new Timeline({ frameDuration: props.dur });\n\nconst popStyle = reactive<{\n width?: string;\n height?: string;\n top?: string;\n bottom?: string;\n left?: string;\n right?: string;\n transform?: string;\n position: string;\n // overflow: string;\n opacity?: String;\n transformOrigin?: string;\n willChange: string;\n}>({\n position: \"absolute\",\n // overflow: \"hidden\",\n opacity: \"1\",\n transformOrigin: \"center\",\n willChange: \"transform\" // 优化动画性能, 让浏览器提前为动画做准备,避免抖动或延迟\n});\n\nconst visible = ref(false);\n\nconst popType = ref<\"full\" | \"shrink\" | \"block\">(\"full\");\nwatch(\n () => [props.directionFrom, props.popValue],\n () => {\n tl.clear();\n const isShrink = !props.popValue;\n const popValue = props.popValue ? props.popValue : 100;\n const popUnit = props.popValue ? \"px\" : \"%\";\n switch (props.directionFrom) {\n case \"left\":\n popStyle.height = \"100%\";\n if (!isShrink) {\n popStyle.width = `${popValue}${popUnit}`;\n } else {\n delete popStyle.width;\n }\n popStyle.top = \"0\";\n popStyle.bottom = \"0\";\n delete popStyle.right;\n tl.addTween(\n {\n left: popValue\n },\n { left: 0 },\n {\n easeFunction: Easing.Quadratic.Out,\n onUpdate(data) {\n popStyle.left = `-${data.left}${popUnit}`;\n },\n onComplete\n }\n );\n break;\n case \"right\":\n popStyle.height = \"100%\";\n if (!isShrink) {\n popStyle.width = `${popValue}${popUnit}`;\n } else {\n delete popStyle.width;\n }\n popStyle.top = \"0\";\n popStyle.bottom = \"0\";\n delete popStyle.left;\n tl.addTween(\n {\n right: popValue\n },\n { right: 0 },\n {\n easeFunction: Easing.Quadratic.Out,\n onUpdate(data) {\n popStyle.right = `-${data.right}${popUnit}`;\n },\n onComplete\n }\n );\n break;\n case \"top\":\n popStyle.width = \"100%\";\n if (!isShrink) {\n popStyle.height = `${popValue}${popUnit}`;\n } else {\n delete popStyle.height;\n }\n popStyle.left = \"0\";\n popStyle.right = \"0\";\n delete popStyle.bottom;\n tl.addTween(\n {\n top: popValue\n },\n { top: 0 },\n {\n easeFunction: Easing.Quadratic.Out,\n onUpdate(data) {\n popStyle.top = `-${data.top}${popUnit}`;\n },\n onComplete\n }\n );\n break;\n case \"bottom\":\n popStyle.width = \"100%\";\n if (!isShrink) {\n popStyle.height = `${popValue}${popUnit}`;\n } else {\n delete popStyle.height;\n }\n popStyle.left = \"0\";\n popStyle.right = \"0\";\n delete popStyle.top;\n tl.addTween(\n {\n bottom: popValue\n },\n { bottom: 0 },\n {\n easeFunction: Easing.Quadratic.Out,\n onUpdate(data) {\n popStyle.bottom = `-${data.bottom}${popUnit}`;\n },\n onComplete\n }\n );\n break;\n case \"center\":\n delete popStyle.width;\n delete popStyle.height;\n popStyle.left = \"50%\";\n delete popStyle.right;\n popStyle.top = \"50%\";\n delete popStyle.bottom;\n tl.addTween(\n {\n scale: 0.8,\n opacity: 0\n },\n {\n scale: 1,\n opacity: 1\n },\n {\n easeFunction: Easing.Quadratic.Out,\n onUpdate(data) {\n popStyle.transform = `translate(-50%, -50%) scale(${data.scale})`;\n popStyle.opacity = `${data.opacity}`;\n },\n onComplete\n }\n );\n break;\n case \"absolute\":\n popStyle.width = props.absoluteWidth;\n popStyle.height = props.absoluteHeight;\n popStyle.left = props.absoluteLeft;\n popStyle.top = props.absoluteTop;\n delete popStyle.right;\n delete popStyle.bottom;\n break;\n }\n\n switch (props.directionFrom) {\n case \"center\":\n popType.value = \"shrink\";\n popStyle.transform = \"translate(-50%, -50%)\";\n break;\n case \"absolute\":\n popType.value = \"shrink\";\n delete popStyle.transform;\n delete popStyle.opacity;\n break;\n default:\n popType.value = \"full\";\n delete popStyle.transform;\n delete popStyle.opacity;\n break;\n }\n if (isShrink) {\n popType.value = \"shrink\";\n }\n },\n { immediate: true }\n);\n\nwatch(\n () => props.absoluteLeft,\n () => {\n switch (props.directionFrom) {\n case \"absolute\":\n popStyle.left = props.absoluteLeft;\n break;\n }\n }\n);\n\nwatch(\n () => props.absoluteTop,\n () => {\n switch (props.directionFrom) {\n case \"absolute\":\n popStyle.top = props.absoluteTop;\n break;\n }\n }\n);\n\nwatch(\n () => props.absoluteWidth,\n () => {\n switch (props.directionFrom) {\n case \"absolute\":\n popStyle.width = props.absoluteWidth;\n break;\n }\n }\n);\n\nwatch(\n () => props.absoluteHeight,\n () => {\n switch (props.directionFrom) {\n case \"absolute\":\n popStyle.height = props.absoluteHeight;\n break;\n }\n }\n);\n\nconst resize = (controller) => {\n emits(\"resize\", controller.rect);\n};\n\nlet action: \"open\" | \"close\" = \"open\";\nfunction onComplete() {\n if (action == \"open\") {\n emits(\"open\");\n } else {\n visible.value = false;\n emits(\"close\");\n }\n}\n\nfunction open() {\n visible.value = true;\n action = \"open\";\n tl.play();\n}\n\nfunction close() {\n action = \"close\";\n switch (props.directionFrom) {\n case \"absolute\":\n onComplete();\n break;\n default:\n tl.reverse();\n break;\n }\n}\n\nfunction clickOverlay(e: Event) {\n // console.log(e.target);\n // console.log(popRef.value.contains(e.target));\n // console.log(hasClass(e.target as HTMLElement, \"pop-content\"));\n const className =\n props.directionFrom == \"absolute\" &&\n props.absoluteWidth == \"100%\" &&\n props.absoluteHeight == \"100%\"\n ? \"pop-content\"\n : \"pop\";\n if (e.target && hasClass(e.target as HTMLElement, className)) {\n if (props.closeWhenClickOverlay) {\n close();\n }\n emits(\"clickOverlay\");\n }\n}\n\ndefineExpose({ open, close });\n</script>\n\n<template>\n <Overlay\n :visible=\"visible\"\n :global=\"props.global\"\n :color=\"props.overlayBgColor\"\n >\n <div\n class=\"pop\"\n style=\"display: block; position: relative; width: 100%; height: 100%\"\n @click=\"clickOverlay\"\n >\n <Container\n class=\"pop-content\"\n :type=\"popType\"\n :style=\"popStyle\"\n @ready=\"resize\"\n @update=\"resize\"\n >\n <slot><div></div></slot>\n </Container>\n </div>\n </Overlay>\n</template>\n","<script setup lang=\"tsx\">\nconst props = withDefaults(\n defineProps<{\n color?: string;\n }>(),\n {\n color: \"#666666\"\n }\n);\n</script>\n\n<template>\n <!-- origin viewBox : x y width height : 0 0 24 24 , 目前 viewBox 是为了切除四周多余空白 -->\n <!-- 不设置 width height , 自适应父元素 -->\n <svg\n viewBox=\"6 6 12 12\"\n xmlns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"none\"\n fill=\"none\"\n :style=\"{\n display: 'block',\n transformOrigin: 'center'\n }\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M6.22785 6.22781C6.53159 5.92407 7.02405 5.92407 7.32779 6.22781L17.7722 16.6722C18.0759 16.976 18.0759 17.4685 17.7722 17.7722C17.4685 18.0759 16.976 18.0759 16.6723 17.7722L6.22785 7.32775C5.92411 7.02401 5.92411 6.53155 6.22785 6.22781Z\"\n :fill=\"props.color\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M17.7722 6.22781C18.0759 6.53155 18.0759 7.02401 17.7722 7.32775L7.32775 17.7722C7.02401 18.0759 6.53155 18.0759 6.22781 17.7722C5.92406 17.4685 5.92407 16.976 6.22781 16.6722L16.6722 6.22781C16.976 5.92406 17.4684 5.92406 17.7722 6.22781Z\"\n :fill=\"props.color\"\n />\n </svg>\n</template>\n","<script setup lang=\"tsx\">\nimport { computed } from \"vue\";\nimport { __color, getCSSVar } from \"@zyzgroup/core-web\";\n\nconst props = withDefaults(\n defineProps<{\n colorStart?: string;\n colorEnd?: string;\n }>(),\n {\n colorStart: getCSSVar(\"--xg-red\", \"#fa503c\"),\n colorEnd: getCSSVar(\"--xg-red-light\", \"#fa8c78\")\n }\n);\n\nconst opposite = computed(() =>\n __color.set(props.colorStart).opposite(true).toString()\n);\n</script>\n\n<template>\n <!-- origin viewBox : x y width height : 0 0 24 24 , 目前 viewBox 是为了切除四周多余空白 -->\n <!-- 不设置 width height , 自适应父元素 -->\n <svg\n viewBox=\"4 4 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n :style=\"{\n display: 'block',\n transformOrigin: 'center'\n }\"\n >\n <defs>\n <!-- 对于同一个id,浏览器可能会渲染优化,导致后面更新的linearGradient不起作用 -->\n <linearGradient\n :id=\"`circle_bg_${colorStart}_${colorEnd}`\"\n x1=\"12\"\n y1=\"4\"\n x2=\"12\"\n y2=\"16\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop\n offset=\"0\"\n :stop-color=\"colorStart\"\n />\n <stop\n offset=\"1\"\n :stop-color=\"colorEnd\"\n />\n </linearGradient>\n <!-- <pattern\n :id=\"`charge_line_${colorStart}`\"\n patternContentUnits=\"objectBoundingBox\"\n width=\"1\"\n height=\"1\"\n >\n <use\n xlink:href=\"#image0_10315_2409\"\n transform=\"scale(0.01)\"\n />\n </pattern>\n <image\n id=\"image0_10315_2409\"\n width=\"100\"\n height=\"100\"\n preserveAspectRatio=\"none\"\n xlink:href=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAAAXNSR0IArs4c6QAAArJJREFUeF7tnVFSg1AMRe2PK3CJLsslugJ/dBgHpyJUuORCQo7fzeVxDslri+LtiZ9UBG6pVsNinhCS7CJACEKSEUi2HDoEIckIJFsOHVJVyOvHy+eRa397fm95saw+6aOF3MvvJKeEkEFOFyllhHSRslrIkfvHcKylEXn1TkkrZLwA5sRcWUp6IUvdclUpJYTMSUHI0ZvI5HjT0YWQk4V06ZIyIwshCTpiuoQOY4sOSXbhIQQhOgFGls7OUokQC1Y9FCE6O0slQixY9VCE6OwslQixYNVDEaKzs1QixIJVD0WIzs5SiRALVj0UITo7SyVCLFj1UITo7CyVCLFg1UMRorOzVCLEglUPRYjOzlKJEAtWPRQhOjtLJUIsWPVQhOjsLJUIsWDVQxGis7NUIsSCVQ9FiM7OUokQC1Y9FCE6O0slQixY9VCE6OwslQixYNVDEaKzs1QixIJVD0WIzs5SiRALVj30aCHT4+krX/80I/7GcIZypIgxfu2DDhByJ8QhAiHiXHHKGJZEh2wQ80jGWpAbDvfwpYyshYelHS1itNReyFx3nCVjkIKQyeNvz5TRXki27kBIsu5ACEL2vTmM/uokOm/f2X1Xt93UM8pAyN0lffa7q/afQ+iQgAEbCTEyK+DUfiJa7iFZZbTdQxAS1NNRIKNygk7rVwwja8O9CoeAaWY7IZm7o+UegpDAPo+AGZEReEp/ohhZyf49Xysh2buj3R6CkOBhuxfo3vrg05mNazOyMt6unTPSVkiWr9tLfzAcFq+MnSrdUW5TV4RUknEJIcNJLI2fajJKCpnrki3vfrLuHSVv4Y6LVn9TPbuMsh2ytUsqiCjdIfcj6r9uqSSjdIds2TcqvbbUB8NKYNW1IkQlZ6pDiAmsGosQlZypDiEmsGosQlRypjqEmMCqsV9WddB0Dtx5kgAAAABJRU5ErkJggg==\"\n /> -->\n </defs>\n <!-- <rect\n width=\"50\"\n height=\"50\"\n :fill=\"`url(#charge_line_${colorStart})`\"\n /> -->\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"8\"\n :fill=\"`url(#circle_bg_${colorStart}_${colorEnd})`\"\n />\n <!-- 竖线 -->\n <path\n d=\"M11.4666 8.80006C11.4666 8.50551 11.7053 8.26672 11.9999 8.26672C12.2944 8.26672 12.5332 8.50551 12.5332 8.80006V13.0667C12.5332 13.3613 12.2944 13.6001 11.9999 13.6001C11.7053 13.6001 11.4666 13.3613 11.4666 13.0667V8.80006Z\"\n :fill=\"opposite\"\n />\n <!-- 小圆点 -->\n <path\n d=\"M11.4666 15.2001C11.4666 14.9055 11.7053 14.6667 11.9999 14.6667C12.2944 14.6667 12.5332 14.9055 12.5332 15.2001C12.5332 15.4946 12.2944 15.7334 11.9999 15.7334C11.7053 15.7334 11.4666 15.4946 11.4666 15.2001Z\"\n :fill=\"opposite\"\n />\n </svg>\n</template>\n","<script setup lang=\"tsx\">\nimport { ref } from \"vue\";\nimport Container from \"../Container.vue\";\n\nconst props = withDefaults(\n defineProps<{\n color?: string;\n }>(),\n {\n color: \"#e6e6e6\"\n }\n);\n\nconst width = ref(0);\nconst height = ref(0);\n\nfunction ready(controller) {\n width.value = controller.rect.width;\n height.value = controller.rect.height;\n}\n</script>\n\n<template>\n <Container\n type=\"full\"\n @ready=\"ready\"\n >\n <!-- 不设置 width height , 自适应父元素 -->\n <svg\n :viewBox=\"`0 0 ${width} ${height}`\"\n xmlns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"none\"\n fill=\"none\"\n :style=\"{\n display: 'block',\n transformOrigin: 'center'\n }\"\n >\n <ellipse\n :cx=\"width * 0.5\"\n :cy=\"height * 0.5\"\n :rx=\"width * 0.5\"\n :ry=\"height * 0.5\"\n :fill=\"props.color\"\n />\n </svg>\n </Container>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, watch } from \"vue\";\nimport { getCSSVar } from \"@zyzgroup/core-web\";\nimport Overlay from \"./Overlay.vue\";\nimport Pop from \"./Pop.vue\";\nimport Button, { ButtonStylePatternType } from \"./Button.vue\";\n// import Icon from \"./Icon.vue\";\nimport SVGClose from \"./svg/SVGClose.vue\";\nimport SVGWarn from \"./svg/SVGWarn.vue\";\nimport SVGEllipse from \"./svg/SVGEllipse.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: { Overlay, Pop, Button, SVGClose, SVGWarn, SVGEllipse },\n inheritAttrs: true\n});\n\nexport type DialogStylePatternType =\n | \"fullfill\"\n | \"transparent\"\n | \"icon-warn-red\"\n | \"icon-warn-blue\";\n\nconst props = withDefaults(\n defineProps<{\n closeWhenClickOverlay?: boolean;\n dur?: number;\n minWidth?: string;\n maxWidth?: string;\n overlayBgColor?: string;\n stylePattern?: DialogStylePatternType;\n borderRadius?: string; // border-radius:x/y\n }>(),\n {\n closeWhenClickOverlay: false,\n dur: 200,\n minWidth: \"280px\",\n maxWidth: \"320px\",\n stylePattern: \"fullfill\",\n borderRadius: \"12px\"\n }\n);\n\nconst emits = defineEmits<{\n (event: \"open\"): void;\n (event: \"close\"): void;\n (event: \"cancel\"): void;\n (event: \"confirm\"): void;\n}>();\n\nconst popRef = ref();\n\nconst title = ref(\"\");\nconst content = ref(\"\");\nconst showClose = ref(false);\nconst cancelText = ref(\"\");\nconst confirmText = ref(\"\");\n\nconst stylePattern = ref<DialogStylePatternType>(props.stylePattern);\nconst cancelButtonStylePattern = ref<ButtonStylePatternType>(\"transparent\");\nconst confirmButtonStylePattern = ref<ButtonStylePatternType>(\"transparent\");\n\nconst showTopIcon = ref(false);\nconst colorStart = ref(\"\");\nconst colorEnd = ref(\"\");\n\nconst isBtnsVertical = ref(false);\n\nfunction setStylePattern(s: DialogStylePatternType) {\n stylePattern.value = s;\n switch (s) {\n case \"fullfill\":\n cancelButtonStylePattern.value = \"fullfill\";\n confirmButtonStylePattern.value = \"fullfill\";\n showTopIcon.value = false;\n colorStart.value = \"\";\n colorEnd.value = \"\";\n isBtnsVertical.value = false;\n break;\n case \"transparent\":\n cancelButtonStylePattern.value = \"transparent\";\n confirmButtonStylePattern.value = \"transparent\";\n showTopIcon.value = false;\n colorStart.value = \"\";\n colorEnd.value = \"\";\n isBtnsVertical.value = false;\n break;\n case \"icon-warn-red\":\n cancelButtonStylePattern.value = \"transparent\";\n confirmButtonStylePattern.value = \"fullfill\";\n showTopIcon.value = true;\n colorStart.value = getCSSVar(\"--xg-red\", \"#fa503c\");\n colorEnd.value = getCSSVar(\"--xg-red-light\", \"#fa8c78\");\n isBtnsVertical.value = true;\n break;\n case \"icon-warn-blue\":\n cancelButtonStylePattern.value = \"transparent\";\n confirmButtonStylePattern.value = \"fullfill\";\n showTopIcon.value = true;\n colorStart.value = getCSSVar(\"--xg-blue\", \"#5a82f0\");\n colorEnd.value = getCSSVar(\"--xg-blue-light\", \"#66b3ff\");\n isBtnsVertical.value = true;\n break;\n }\n}\n\nwatch(\n () => props.stylePattern,\n () => {\n setStylePattern(props.stylePattern);\n },\n { immediate: true }\n);\n\nlet onCancel: (() => void) | undefined;\nlet onConfirm: (() => void) | undefined;\n\nconst popOpen = () => {\n emits(\"open\");\n};\nconst popClose = () => {\n emits(\"close\");\n};\n\nfunction open(options?: {\n title?: string;\n content?: string;\n showClose?: boolean;\n cancelText?: string;\n confirmText?: string;\n stylePattern?: DialogStylePatternType;\n onCancel?: () => void;\n onConfirm?: () => void;\n}) {\n title.value = options?.title || \"\";\n content.value = options?.content || \"\";\n showClose.value =\n typeof options?.showClose == \"boolean\" ? options?.showClose : false;\n cancelText.value = options?.cancelText || \"\";\n confirmText.value = options?.confirmText || \"\";\n setStylePattern(options?.stylePattern || props.stylePattern);\n onCancel = options?.onCancel;\n onConfirm = options?.onConfirm;\n popRef.value.open();\n}\n\nfunction close() {\n popRef.value.close();\n onCancel?.();\n emits(\"cancel\");\n}\n\nfunction confirm() {\n popRef.value.close();\n onConfirm?.();\n emits(\"confirm\");\n}\n\ndefineExpose({\n open,\n close\n});\n</script>\n\n<template>\n <Pop\n ref=\"popRef\"\n directionFrom=\"center\"\n :closeWhenClickOverlay=\"props.closeWhenClickOverlay\"\n :dur=\"props.dur\"\n :overlayBgColor=\"props.overlayBgColor\"\n @open=\"popOpen\"\n @close=\"popClose\"\n >\n <div class=\"dialog-parent\">\n <div\n class=\"dialog\"\n :style=\"{ minWidth: props.minWidth, maxWidth: props.maxWidth }\"\n >\n <!-- 头部提示图片 -->\n <div\n class=\"top-icon\"\n v-if=\"showTopIcon\"\n >\n <div class=\"top-icon-warn\">\n <SVGWarn\n :colorStart=\"colorStart\"\n :colorEnd=\"colorEnd\"\n ></SVGWarn>\n </div>\n <div class=\"top-icon-warn-shadow\"><SVGEllipse></SVGEllipse></div>\n </div>\n <!-- 主体 -->\n <div\n class=\"dialog-inner\"\n :style=\"{\n paddingTop: showTopIcon ? '24px' : '0px',\n borderRadius: props.borderRadius\n }\"\n >\n <!-- 标题 -->\n <div\n class=\"title\"\n v-if=\"title || showClose\"\n >\n <div\n class=\"title-inner\"\n v-if=\"title\"\n >\n {{ title }}\n </div>\n <div\n v-if=\"showClose\"\n class=\"close\"\n @click=\"close\"\n >\n <!-- <Icon icon=\"ic:baseline-close\" color=\"#cccccc\"></Icon> -->\n <div><SVGClose></SVGClose></div>\n </div>\n </div>\n <!-- 内容 -->\n <div class=\"custom-content\">\n <slot>\n <div class=\"custom-content-default\">{{ content }}</div>\n </slot>\n </div>\n <!-- 按钮 -->\n <div\n class=\"btns\"\n :class=\"[stylePattern, isBtnsVertical ? 'vertical' : '']\"\n v-if=\"cancelText || confirmText\"\n >\n <Button\n v-if=\"cancelText\"\n class=\"btn\"\n fontColor=\"#333333\"\n :stylePattern=\"cancelButtonStylePattern\"\n :borderRadius=\"showTopIcon ? '44px' : '0'\"\n :borderColor=\"showTopIcon ? '#cccccc' : ''\"\n :bgColor=\"\n cancelButtonStylePattern == 'transparent'\n ? '#ffffff'\n : '#f5f5f5'\n \"\n @click=\"close\"\n >\n {{ cancelText }}\n </Button>\n <Button\n v-if=\"confirmText\"\n class=\"btn\"\n :stylePattern=\"confirmButtonStylePattern\"\n :borderRadius=\"showTopIcon ? '44px' : '0'\"\n :bgColor=\"\n confirmButtonStylePattern == 'transparent' ? '#ffffff' : ''\n \"\n :bgColorStart=\"colorStart\"\n :bgColorEnd=\"colorEnd\"\n :fontWeight=\"\n confirmButtonStylePattern == 'transparent' ? 'bold' : ''\n \"\n @click=\"confirm\"\n >\n {{ confirmText }}\n </Button>\n </div>\n </div>\n </div>\n </div>\n </Pop>\n</template>\n\n<style scoped>\n.dialog-parent {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.dialog {\n position: relative;\n}\n.top-icon {\n position: absolute;\n top: 0;\n left: 50%;\n transform: translate(-50%, -50%);\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n.top-icon-warn {\n width: 60px;\n height: 60px;\n}\n.top-icon-warn-shadow {\n width: 40px;\n height: 4px;\n margin-top: 4px;\n}\n.dialog-inner {\n background-color: #ffffff;\n overflow: hidden;\n}\n.title {\n position: relative;\n font-size: 20px;\n margin-top: 20px;\n color: #333333;\n}\n.title-inner {\n padding: 0 42px;\n text-align: center;\n font-weight: bold;\n}\n.close {\n position: absolute;\n top: 0;\n right: 0;\n width: 32px;\n height: 100%;\n text-align: center;\n display: flex;\n justify-content: left;\n align-items: center;\n cursor: pointer;\n}\n.close > div {\n width: 12px;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.custom-content {\n font-size: 16px;\n color: #666666;\n word-break: break-all;\n text-align: center;\n}\n.custom-content-default {\n padding: 15px 20px 20px;\n}\n.btns {\n display: flex;\n justify-content: center;\n}\n.btns.vertical {\n flex-direction: column;\n}\n.btns.vertical > .btn {\n margin-left: 20px;\n margin-right: 20px;\n}\n.btns.vertical > .btn:nth-child(1) {\n order: 2;\n margin-top: 10px;\n margin-bottom: 20px;\n}\n.btns.vertical > .btn:nth-child(2) {\n order: 1;\n}\n.btns.transparent {\n border-top: 1px solid #cccccc;\n}\n.btns.transparent > .btn + .btn {\n border-left: 1px solid #cccccc !important;\n}\n.btn {\n flex: 1 1 auto;\n border-radius: 0;\n}\n</style>\n","import { h, render, VNode, Component } from \"vue\";\nimport { getElementAttrs } from \"./vnode\";\n\nimport Pop from \"./components/Pop.vue\";\nimport DialogToast from \"./components/DialogToast.vue\";\nimport DialogLoading from \"./components/DialogLoading.vue\";\nimport Dialog, { DialogStylePatternType } from \"./components/Dialog.vue\";\nimport Input from \"./components/form/Input.vue\";\n\nimport PlateKeyboard from \"./components/PlateKeyboard.vue\";\nimport NumberKeyboard from \"./components/NumberKeyboard.vue\";\n\nimport { commonEmailValidator } from \"@zyzgroup/core-common\";\n\nfunction isInCE() {\n return import.meta.env.MODE === \"ce\";\n}\n\n// https://cn.vitejs.dev/guide/env-and-mode\nconst CEMAPS: Record<string, Component> = { \"yz-pop\": Pop, \"yz-input\": Input };\nfunction getCEComponent(name: string) {\n if (isInCE()) {\n return name;\n } else {\n return CEMAPS[name];\n }\n}\n\nexport const teleport =\n document.getElementById(\"teleport\") || document.documentElement;\n\nexport function toast(\n text: string,\n during?: number,\n options?: {\n onOpen?: () => void;\n onClose?: () => void;\n }\n) {\n if (isInCE()) {\n // const ce = document.querySelector(\n // \"yz-dialog-toast#globalDialogToast\"\n // );\n const ce = document.createElement(\"yz-dialog-toast\");\n // ce.id = \"globalDialogToast\";\n teleport.appendChild(ce);\n if (ce && \"_instance\" in ce) {\n const onOpen = () => {\n options?.onOpen?.();\n };\n const onClose = () => {\n options?.onClose?.();\n teleport.removeChild(ce);\n };\n ce.addEventListener(\"open\", onOpen);\n ce.addEventListener(\"close\", onClose);\n (ce._instance as any).exposed.open(text, during);\n }\n } else {\n const div = document.createElement(\"div\");\n teleport.appendChild(div);\n const vnode = h(DialogToast, {\n ...options,\n onClose: () => {\n options?.onClose?.();\n teleport.removeChild(div);\n }\n });\n render(vnode, div);\n vnode.component?.exposed?.open(text, during);\n }\n}\n\nexport function loading(text?: string) {\n if (isInCE()) {\n // const ce = document.querySelector(\n // \"yz-dialog-loading#globalDialogLoading\"\n // );\n const ce = document.createElement(\"yz-dialog-loading\");\n // ce.id = \"globalDialogLoading\";\n teleport.appendChild(ce);\n if (ce && \"_instance\" in ce) {\n const onClose = () => {\n teleport.removeChild(ce);\n };\n ce.addEventListener(\"close\", onClose);\n (ce._instance as any).exposed.open(text);\n }\n return () => {\n if (ce && \"_instance\" in ce) {\n (ce._instance as any).exposed.close();\n }\n };\n } else {\n const div = document.createElement(\"div\");\n teleport.appendChild(div);\n const vnode = h(DialogLoading, {\n onClose: () => {\n teleport.removeChild(div);\n }\n });\n render(vnode, div);\n vnode.component?.exposed?.open(text);\n return () => {\n vnode.component?.exposed?.close();\n };\n }\n}\n\nexport function dialog(options?: {\n title?: string;\n content?: string;\n showClose?: boolean;\n cancelText?: string;\n confirmText?: string;\n stylePattern?: DialogStylePatternType;\n onCancel?: () => void;\n onConfirm?: () => void;\n}) {\n if (isInCE()) {\n // const ce = document.querySelector(\"yz-dialog#globalDialog\");\n const ce = document.createElement(\"yz-dialog\");\n // ce.id = \"globalDialog\";\n teleport.appendChild(ce);\n if (ce && \"_instance\" in ce) {\n const onClose = () => {\n teleport.removeChild(ce);\n };\n ce.addEventListener(\"close\", onClose);\n (ce._instance as any).exposed.open(options);\n }\n return () => {\n if (ce && \"_instance\" in ce) {\n (ce._instance as any).exposed.close();\n }\n };\n } else {\n const div = document.createElement(\"div\");\n teleport.appendChild(div);\n const vnode = h(Dialog, {\n onClose: () => {\n teleport.removeChild(div);\n }\n });\n render(vnode, div);\n vnode.component?.exposed?.open(options);\n return () => {\n vnode.component?.exposed?.close();\n };\n }\n}\n\n// https://cn.vuejs.org/api/render-function.html\n// https://cn.vuejs.org/guide/extras/render-function.html\n// https://vuejs.org/guide/essentials/template-refs.html\nfunction pop(\n el: HTMLElement | VNode,\n directionFrom:\n | \"center\"\n | \"bottom\"\n | \"top\"\n | \"left\"\n | \"right\"\n | \"absolute\" = \"bottom\",\n options?: {\n absoluteLeft?: string;\n absoluteTop?: string;\n absoluteWidth?: string;\n absoluteHeight?: string;\n }\n) {\n let vnode: VNode;\n if (el instanceof HTMLElement) {\n // 丧失reactive\n vnode = h(\n Pop,\n {\n directionFrom,\n absoluteLeft: options?.absoluteLeft,\n absoluteTop: options?.absoluteTop,\n absoluteWidth: options?.absoluteWidth,\n absoluteHeight: options?.absoluteHeight\n },\n () =>\n h(\"div\", {\n ...getElementAttrs(el),\n innerHTML: el.innerHTML // () => stringToVNodes(el.innerHTML)\n })\n );\n } else {\n vnode = h(\n Pop,\n {\n directionFrom,\n absoluteLeft: options?.absoluteLeft,\n absoluteTop: options?.absoluteTop,\n absoluteWidth: options?.absoluteWidth,\n absoluteHeight: options?.absoluteHeight\n },\n () => el\n );\n }\n render(vnode, teleport);\n vnode.component?.exposed?.open();\n const close = () => {\n vnode.component?.exposed?.close();\n };\n close.vnode = vnode;\n return close;\n}\nexport function popBottom(\n el: HTMLElement | VNode,\n options?: {\n absoluteLeft?: string;\n absoluteTop?: string;\n absoluteWidth?: string;\n absoluteHeight?: string;\n }\n) {\n return pop(el, \"bottom\", options);\n}\nexport function popTop(\n el: HTMLElement | VNode,\n options?: {\n absoluteLeft?: string;\n absoluteTop?: string;\n absoluteWidth?: string;\n absoluteHeight?: string;\n }\n) {\n return pop(el, \"top\", options);\n}\nexport function popLeft(\n el: HTMLElement | VNode,\n options?: {\n absoluteLeft?: string;\n absoluteTop?: string;\n absoluteWidth?: string;\n absoluteHeight?: string;\n }\n) {\n return pop(el, \"left\", options);\n}\nexport function popRight(\n el: HTMLElement | VNode,\n options?: {\n absoluteLeft?: string;\n absoluteTop?: string;\n absoluteWidth?: string;\n absoluteHeight?: string;\n }\n) {\n return pop(el, \"right\", options);\n}\nexport function popCenter(\n el: HTMLElement | VNode,\n options?: {\n absoluteLeft?: string;\n absoluteTop?: string;\n absoluteWidth?: string;\n absoluteHeight?: string;\n }\n) {\n return pop(el, \"center\", options);\n}\nexport function popAbsolute(\n el: HTMLElement | VNode,\n options?: {\n absoluteLeft?: string;\n absoluteTop?: string;\n absoluteWidth?: string;\n absoluteHeight?: string;\n }\n) {\n return pop(el, \"absolute\", options);\n}\n\n/// pop sample\nexport const popBottomSample = () => {\n return popBottom(\n h(\n \"div\",\n {\n style: \"padding: 30px; background-color:#ffffff; width: 100%;\"\n },\n h(getCEComponent(\"yz-input\"), {\n placeholder: \"请输入邮箱\",\n validator: commonEmailValidator\n })\n )\n );\n};\nexport const popTopSample = () => {\n return popTop(\n h(\n \"div\",\n {\n style: \"padding: 30px; background-color:#ffffff; width: 100%;\"\n },\n h(getCEComponent(\"yz-input\"), {\n placeholder: \"请输入邮箱\",\n validator: commonEmailValidator\n })\n )\n );\n};\nexport const popLeftSample = () => {\n return popLeft(\n h(\n \"div\",\n {\n style: \"padding: 30px; background-color:#ffffff; height: 100%;\"\n },\n h(getCEComponent(\"yz-input\"), {\n placeholder: \"请输入邮箱\",\n validator: commonEmailValidator\n })\n )\n );\n};\nexport const popRightSample = () => {\n return popRight(\n h(\n \"div\",\n {\n style: \"padding: 30px; background-color:#ffffff; height: 100%;\"\n },\n h(getCEComponent(\"yz-input\"), {\n placeholder: \"请输入邮箱\",\n validator: commonEmailValidator\n })\n )\n );\n};\nexport const popCenterSample = () => {\n return popCenter(\n h(\n \"div\",\n {\n style:\n \"width: 200px;height: 200px;padding: 30px; background-color:#ffffff;\"\n },\n h(getCEComponent(\"yz-input\"), {\n placeholder: \"请输入邮箱\",\n validator: commonEmailValidator\n })\n )\n );\n};\nexport const popAbsoluteSample = () => {\n return popAbsolute(\n h(\n \"div\",\n {\n style:\n \"width: 200px;height: 200px;padding: 30px; background-color:#ffffff;\"\n },\n h(getCEComponent(\"yz-input\"), {\n placeholder: \"请输入邮箱\",\n validator: commonEmailValidator\n })\n ),\n {\n absoluteLeft: \"50%\",\n absoluteTop: \"50%\",\n absoluteWidth: \"200px\",\n absoluteHeight: \"200px\"\n }\n );\n};\n\nexport function plateKeyboard(options?: {\n initPlates?: string[];\n completePlateLength?: number;\n onPlates?: (plates: string[]) => void;\n onOpen?: () => void;\n onClose?: () => void;\n onResize?: (rect: DOMRect) => void;\n}) {\n if (isInCE()) {\n // const ce = document.querySelector(\n // \"yz-plate-keyboard#globalPlateKeyboard\"\n // );\n const ce = document.createElement(\"yz-plate-keyboard\");\n // ce.id = \"globalPlateKeyboard\";\n teleport.appendChild(ce);\n\n if (ce && \"_instance\" in ce) {\n if (options?.onPlates) {\n const onPlates = (e: Event) => {\n if (\"detail\" in e) {\n options.onPlates(e.detail[0]);\n }\n };\n ce.addEventListener(\"plates\", onPlates);\n }\n\n if (options?.onOpen) {\n ce.addEventListener(\"open\", options.onOpen);\n }\n\n if (options?.onClose) {\n const onClose = () => {\n teleport.removeChild(ce);\n };\n ce.addEventListener(\"close\", onClose);\n }\n\n if (options?.onResize) {\n const onResize = (e: Event) => {\n if (\"detail\" in e) {\n // e.detail : [DOMRect]\n options.onResize.apply(ce, e.detail[0]);\n }\n };\n ce.addEventListener(\"resize\", onResize);\n }\n\n (ce as Element & Record<string, any>).initPlates = options?.initPlates;\n (ce as Element & Record<string, any>).completePlateLength =\n options?.completePlateLength;\n (ce._instance as any).exposed.open();\n }\n\n return () => {\n if (ce && \"_instance\" in ce) {\n (ce._instance as any).exposed.close();\n }\n };\n } else {\n const div = document.createElement(\"div\");\n teleport.appendChild(div);\n const vnode = h(PlateKeyboard, {\n ...options,\n onClose: () => {\n options?.onClose?.();\n teleport.removeChild(div);\n }\n });\n render(vnode, div);\n vnode.component?.exposed?.open();\n return () => {\n vnode.component?.exposed?.close();\n };\n }\n}\n\nexport function numberKeyboard(options?: {\n min?: number;\n max?: number;\n title?: string;\n onNumber?: (n: number) => void;\n onError?: (msg: string) => void;\n}) {\n if (isInCE()) {\n // const ce = document.querySelector(\n // \"yz-number-keyboard#globalNumberKeyboard\"\n // );\n const ce = document.createElement(\"yz-number-keyboard\");\n // ce.id = \"globalNumberKeyboard\";\n teleport.appendChild(ce);\n\n if (ce && \"_instance\" in ce) {\n if (options?.onNumber) {\n const onNumber = (e: Event) => {\n if (\"detail\" in e) {\n options.onNumber(e.detail[0]);\n }\n };\n ce.addEventListener(\"number\", onNumber);\n }\n if (options?.onError) {\n const onError = (e: Event) => {\n if (\"detail\" in e) {\n options.onError(e.detail[0]);\n }\n };\n ce.addEventListener(\"error\", onError);\n }\n\n const onClose = () => {\n teleport.removeChild(ce);\n };\n ce.addEventListener(\"close\", onClose);\n\n if (typeof options?.min == \"number\") {\n (ce as Element & Record<string, any>).min = options.min;\n }\n if (typeof options?.max == \"number\") {\n (ce as Element & Record<string, any>).max = options.max;\n }\n (ce as Element & Record<string, any>).title = options?.title;\n (ce._instance as any).exposed.open();\n }\n\n return () => {\n if (ce && \"_instance\" in ce) {\n (ce._instance as any).exposed.close();\n }\n };\n } else {\n const div = document.createElement(\"div\");\n teleport.appendChild(div);\n const vnode = h(NumberKeyboard, {\n ...options,\n onClose: () => {\n teleport.removeChild(div);\n }\n });\n render(vnode, div);\n vnode.component?.exposed?.open();\n return () => {\n vnode.component?.exposed?.close();\n };\n }\n}\n","<script setup lang=\"tsx\">\nimport { ref, onMounted, onUnmounted, inject } from \"vue\";\nimport { Context, useSafeArea$ } from \"@zyzgroup/core-web\";\nimport { useRouter } from \"../../hooks\";\nimport Button from \"../Button.vue\";\nimport { dialog } from \"../../globalTeleport\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: { Button },\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n billsn: number;\n }>(),\n {\n billsn: 0\n }\n);\n\nconst context = inject<Context>(\"context\");\n\nconst router = useRouter();\nfunction gotoPay() {\n // https://yaoyao.cebbank.com/LifePayment/webApp/h5/router.html?transType=01&canalType=13&canal=njczfs&ItemCode=860729765&userNo=32010025101035852255\n // router.push(\"/park\");\n context.axios\n .post(`/api/v6/bill/${props.billsn}/pay`, {\n type: \"B\",\n openid: \"quickpassapp\"\n })\n .then((result) => {\n console.log(result);\n console.log(JSON.stringify(result));\n dialog({\n title: \"\",\n content: \"请求成功,自行查看结果\",\n confirmText: \"知道了\"\n });\n })\n .catch((result) => {\n console.log(result);\n console.log(JSON.stringify(result));\n dialog({\n title: \"接口出错\",\n content: result.response.data.error,\n confirmText: \"知道了\"\n });\n });\n}\n\nconst safeAreaBottom = ref(\"0px\");\nlet subcription;\n\nonMounted(() => {\n subcription = useSafeArea$().subscribe((s) => {\n safeAreaBottom.value = s.bottom;\n });\n});\nonUnmounted(() => {\n subcription?.unsubscribe();\n});\n</script>\n\n<template>\n <div\n class=\"xg-footer\"\n :style=\"{ paddingBottom: safeAreaBottom }\"\n >\n <div class=\"xg-footer-inner\">\n <Button\n label=\"去支付\"\n width=\"100%\"\n @click=\"gotoPay\"\n ></Button>\n </div>\n </div>\n</template>\n\n<style scoped>\n.xg-footer {\n box-sizing: border-box;\n background-color: #ffffff;\n border-top: 1px solid #cccccc;\n}\n.xg-footer-inner {\n box-sizing: border-box;\n width: 100%;\n padding: 0.2rem 0.3rem;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { onMounted, ref } from \"vue\";\nimport { getEmSize } from \"@zyzgroup/core-web\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: {},\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n plate: string; // 无牌车\n plateType?:\n | \"蓝牌\"\n | \"b\"\n | \"绿牌\"\n | \"g\"\n | \"黄牌\"\n | \"y\"\n | \"黄绿\"\n | \"q\"\n | \"黑牌\"\n | \"d\"\n | \"白牌\"\n | \"w\"\n | \"未知\";\n displayType?: \"dot\" | \"chinese\" | \"plaintext\";\n // fontSize : 1em\n }>(),\n { displayType: \"chinese\" }\n);\n\nconst emits = defineEmits<{\n // (event: \"void\"): void;\n}>();\n\nconst PLATE_TYPES: { name: string; style: Record<string, string> }[] = [\n {\n name: \"蓝牌\",\n style: {\n \"background-color\": \"#0078f0\",\n color: \"#ffffff\"\n }\n },\n {\n name: \"绿牌\",\n style: {\n \"background-color\": \"#00f08c\",\n color: \"#000000\"\n }\n },\n {\n name: \"黄牌\",\n style: {\n \"background-color\": \"#fac800\",\n color: \"#000000\"\n }\n },\n {\n name: \"黄绿\",\n style: {\n background: \"linear-gradient(90deg, #fac800 51.5%, #00f08c 51.51%)\",\n color: \"#000000\"\n }\n },\n {\n name: \"黑牌\",\n style: {\n \"background-color\": \"#222222\",\n color: \"#ffffff\"\n }\n },\n {\n name: \"白牌\",\n style: {\n \"background-color\": \"#ffffff\",\n color: \"#000000\",\n border: \"1px solid #999999\"\n }\n },\n {\n name: \"未知\",\n style: {\n \"background-color\": \"#cccccc\",\n color: \"#ffffff\"\n }\n }\n];\n\nfunction getPlateType(name: string): {\n name: string;\n style: Record<string, string>;\n} {\n switch (name) {\n case \"b\":\n case \"蓝牌\":\n name = \"蓝牌\";\n break;\n case \"g\":\n case \"绿牌\":\n name = \"绿牌\";\n break;\n case \"y\":\n case \"黄牌\":\n name = \"黄牌\";\n break;\n case \"q\":\n case \"黄绿\":\n name = \"黄绿\";\n break;\n case \"d\":\n case \"黑牌\":\n name = \"黑牌\";\n break;\n case \"w\":\n case \"白牌\":\n name = \"白牌\";\n break;\n default:\n name = \"未知\";\n break;\n }\n const result = PLATE_TYPES.filter((item) => item.name === name);\n return result.length ? result[0] : getPlateType(\"未知\");\n}\n\nconst plateType = ref(getPlateType(props.plateType || \"\"));\n\nconst el = ref();\nconst dotSize = ref(14);\nonMounted(() => {\n dotSize.value = getEmSize(el.value);\n});\n\ndefineExpose({});\n</script>\n\n<template>\n <div\n class=\"plate-display\"\n ref=\"el\"\n >\n <div\n v-if=\"displayType == 'dot' && plate !== '无牌车'\"\n class=\"leading\"\n :class=\"displayType\"\n :style=\"{\n ...plateType.style,\n width: dotSize + 'px',\n height: dotSize + 'px',\n marginRight: 0.36 * dotSize + 'px'\n }\"\n >\n {{ plateType.name }}\n </div>\n <div\n v-if=\"displayType == 'chinese' && plate !== '无牌车'\"\n class=\"leading\"\n :class=\"displayType\"\n :style=\"plateType.style\"\n >\n {{ plateType.name }}\n </div>\n <div\n v-if=\"displayType == 'plaintext' && plate !== '无牌车'\"\n class=\"leading\"\n :class=\"displayType\"\n >\n {{ plateType.name }}\n </div>\n <div class=\"text\">\n {{ plate }}\n </div>\n </div>\n</template>\n\n<style scoped>\n.plate-display {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n}\n.leading {\n box-sizing: border-box;\n font-size: 0.86em;\n line-height: 1;\n border-radius: 0.3em;\n margin-right: 0.36em;\n}\n.leading.chinese {\n padding: 0.3em;\n}\n.leading.dot {\n font-size: 0;\n border-radius: 50%;\n}\n.leading.plaintext {\n padding-right: 0.36em;\n border-right: 1px solid #e6e6e6;\n border-radius: 0;\n}\n.text {\n line-height: 1;\n}\n</style>\n","<script setup lang=\"ts\">\nimport { ref, reactive, watch } from \"vue\";\nimport Container, {\n ContainerType,\n EffectTriggerTiming\n} from \"../Container.vue\";\nimport {\n ElementEventBusController,\n SupportedEaseNameToCubicBezier\n} from \"@zyzgroup/core-web\";\n\nexport type SupportedCSSAnimation =\n | \"jelly\"\n | \"bounce\"\n | \"flash\"\n | \"pulse\"\n | \"rubberBand\"\n | \"shakeX\"\n | \"shakeY\"\n | \"headShake\"\n | \"swing\"\n | \"tada\"\n | \"wobble\"\n | \"jello\"\n | \"heartBeat\"\n | \"backInLeft\"\n | \"backInRight\"\n | \"backInUp\"\n | \"backInDown\"\n | \"backOutLeft\"\n | \"backOutRight\"\n | \"backOutUp\"\n | \"backOutDown\"\n | \"bounceIn\"\n | \"bounceInLeft\"\n | \"bounceInRight\"\n | \"bounceInUp\"\n | \"bounceInDown\"\n | \"bounceOut\"\n | \"bounceOutLeft\"\n | \"bounceOutRight\"\n | \"bounceOutUp\"\n | \"bounceOutDown\"\n | \"fadeIn\"\n | \"fadeInLeft\"\n | \"fadeInLeftBig\"\n | \"fadeInRight\"\n | \"fadeInRightBig\"\n | \"fadeInUp\"\n | \"fadeInUpBig\"\n | \"fadeInDown\"\n | \"fadeInDownBig\"\n | \"fadeInTopLeft\"\n | \"fadeInTopRight\"\n | \"fadeInBottomLeft\"\n | \"fadeInBottomRight\"\n | \"fadeOut\"\n | \"fadeOutLeft\"\n | \"fadeOutLeftBig\"\n | \"fadeOutRight\"\n | \"fadeOutRightBig\"\n | \"fadeOutUp\"\n | \"fadeOutUpBig\"\n | \"fadeOutDown\"\n | \"fadeOutDownBig\"\n | \"fadeOutTopLeft\"\n | \"fadeOutTopRight\"\n | \"fadeOutBottomRight\"\n | \"fadeOutBottomLeft\"\n | \"flip\"\n | \"flipInX\"\n | \"flipInY\"\n | \"flipOutX\"\n | \"flipOutY\"\n | \"flipOutRight\"\n | \"flipInLeft\"\n | \"flipOutLeft\"\n | \"flipInRight\"\n | \"flipOutTop\"\n | \"flipInBottom\"\n | \"flipOutBottom\"\n | \"flipInTop\"\n | \"lightSpeedInLeft\"\n | \"lightSpeedInRight\"\n | \"lightSpeedOutLeft\"\n | \"lightSpeedOutRight\"\n | \"rotateIn\"\n | \"rotateInUpLeft\"\n | \"rotateInUpRight\"\n | \"rotateInDownLeft\"\n | \"rotateInDownRight\"\n | \"rotateOut\"\n | \"rotateOutUpLeft\"\n | \"rotateOutUpRight\"\n | \"rotateOutDownLeft\"\n | \"rotateOutDownRight\"\n | \"hinge\"\n | \"rotateFall\"\n | \"rotateOutNewspaper\"\n | \"rotateInNewspaper\"\n | \"jackInTheBox\"\n | \"rollIn\"\n | \"rollOut\"\n | \"zoomIn\"\n | \"zoomInLeft\"\n | \"zoomInRight\"\n | \"zoomInUp\"\n | \"zoomInDown\"\n | \"zoomOut\"\n | \"zoomOutLeft\"\n | \"zoomOutRight\"\n | \"zoomOutUp\"\n | \"zoomOutDown\"\n | \"fade\"\n | \"moveFromLeft\"\n | \"moveToLeft\"\n | \"moveFromRight\"\n | \"moveToRight\"\n | \"moveFromTop\"\n | \"moveToTop\"\n | \"moveFromBottom\"\n | \"moveToBottom\"\n | \"moveFromLeftFade\"\n | \"moveToLeftFade\"\n | \"moveFromRightFade\"\n | \"moveToRightFade\"\n | \"moveFromTopFade\"\n | \"moveToTopFade\"\n | \"moveFromBottomFade\"\n | \"moveToBottomFade\"\n | \"scaleFromSmall\"\n | \"scaleToSmall\"\n | \"scaleFromLarge\"\n | \"scaleToLarge\"\n | \"scaleFromSmallCenter\"\n | \"scaleToSmallCenter\"\n | \"slideInLeft\"\n | \"slideInRight\"\n | \"slideInUp\"\n | \"slideInDown\"\n | \"slideOutLeft\"\n | \"slideOutRight\"\n | \"slideOutUp\"\n | \"slideOutDown\"\n | \"rotateRightSideFirst\"\n | \"rotateLeftSideFirst\"\n | \"rotateTopSideFirst\"\n | \"rotateBottomSideFirst\"\n | \"rotatePushLeft\"\n | \"rotatePushRight\"\n | \"rotatePushTop\"\n | \"rotatePushBottom\"\n | \"rotatePullRight\"\n | \"rotatePullLeft\"\n | \"rotatePullTop\"\n | \"rotatePullBottom\"\n | \"rotateFoldRight\"\n | \"rotateFoldLeft\"\n | \"rotateFoldTop\"\n | \"rotateFoldBottom\"\n | \"rotateUnfoldLeft\"\n | \"rotateUnfoldRight\"\n | \"rotateUnfoldTop\"\n | \"rotateUnfoldBottom\"\n | \"rotateRoomLeftOut\"\n | \"rotateRoomLeftIn\"\n | \"rotateRoomRightOut\"\n | \"rotateRoomRightIn\"\n | \"rotateRoomTopOut\"\n | \"rotateRoomTopIn\"\n | \"rotateRoomBottomOut\"\n | \"rotateRoomBottomIn\"\n | \"rotateCubeLeftOut\"\n | \"rotateCubeLeftIn\"\n | \"rotateCubeRightOut\"\n | \"rotateCubeRightIn\"\n | \"rotateCubeTopOut\"\n | \"rotateCubeTopIn\"\n | \"rotateCubeBottomOut\"\n | \"rotateCubeBottomIn\"\n | \"rotateCarouselLeftOut\"\n | \"rotateCarouselLeftIn\"\n | \"rotateCarouselRightOut\"\n | \"rotateCarouselRightIn\"\n | \"rotateCarouselTopOut\"\n | \"rotateCarouselTopIn\"\n | \"rotateCarouselBottomOut\"\n | \"rotateCarouselBottomIn\"\n | \"rotateSidesOut\"\n | \"rotateSidesIn\"\n | \"rotateSlideOut\"\n | \"rotateSlideIn\"\n | \"superRainbow\"\n | \"statusProcessing\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: { Container },\n inheritAttrs: true\n});\n\n// timingFunction :\n// linear\n// ease\n// ease-in\n// ease-out\n// ease-in-out\n// step-start=steps(1, start) 动画执行时以开始端点为开始\n// step-end=steps(1, end) 动画执行时以结尾端点为开始、\n// cubic-bezier()\n// steps()\n\n// animation: moveObject 2s ease-in-out, fadeBox 3s linear;\n// animation-name: moveObject, fadeBox;\n// animation-duation: 2s, 3s;\n// animation-timing-function: ease-in-out, linear;\n\n// .exmaple {\n// animation-play-state: paused;\n// }\n// .exmaple:hover {\n// animation-play-state: running;\n// }\n\nconst props = withDefaults(\n defineProps<{\n containerType?: ContainerType;\n supportCopyText?: boolean;\n effectTriggerTiming?: EffectTriggerTiming;\n name?: SupportedCSSAnimation;\n timingFunction?: SupportedEaseNameToCubicBezier;\n duration?: number;\n delay?: number;\n repeat?: number | \"infinite\";\n direction?: \"normal\" | \"reverse\" | \"alternate\" | \"alternate-reverse\";\n fillMode?: \"none\" | \"forwards\" | \"backwards\" | \"both\";\n playState?: \"running\" | \"paused\";\n perspective?: string;\n }>(),\n {\n containerType: \"shrink\",\n supportCopyText: false,\n effectTriggerTiming: \"mouseMove\",\n name: \"jelly\",\n fillMode: \"both\",\n playState: \"running\",\n perspective: \"1200px\"\n }\n);\n\nconst emits = defineEmits<{\n (event: \"cssanimationstart\", name: string): void;\n (event: \"cssanimationend\", name: string): void;\n}>();\n\nconst parentStyle = reactive<Record<string, string>>({});\nconst style = reactive<Record<string, string>>({});\n\nlet animationName = props.name;\nlet duration = props.duration;\nlet timingFunction = props.timingFunction;\nlet delay = props.delay;\nlet repeat = props.repeat;\nlet direction = props.direction;\n\nfunction changeEffect(newAnimationName: SupportedCSSAnimation) {\n animationName = newAnimationName;\n /// duration\n switch (animationName) {\n case \"superRainbow\":\n duration = props.duration || 15000;\n break;\n case \"heartBeat\":\n duration = props.duration || 1300;\n break;\n case \"statusProcessing\":\n duration = props.duration || 1200;\n break;\n case \"rotateFall\":\n case \"rotateSlideOut\":\n case \"rotateSlideIn\":\n duration = props.duration || 1000;\n break;\n case \"rotateRightSideFirst\":\n case \"rotateLeftSideFirst\":\n case \"rotateTopSideFirst\":\n case \"rotateBottomSideFirst\":\n case \"rotatePushLeft\":\n case \"rotatePushRight\":\n case \"rotatePushTop\":\n case \"rotatePushBottom\":\n case \"rotateRoomLeftOut\":\n case \"rotateRoomLeftIn\":\n case \"rotateRoomRightOut\":\n case \"rotateRoomRightIn\":\n case \"rotateRoomTopOut\":\n case \"rotateRoomTopIn\":\n case \"rotateRoomBottomOut\":\n case \"rotateRoomBottomIn\":\n case \"rotateCarouselLeftOut\":\n case \"rotateCarouselLeftIn\":\n case \"rotateCarouselRightOut\":\n case \"rotateCarouselRightIn\":\n case \"rotateCarouselTopOut\":\n case \"rotateCarouselTopIn\":\n case \"rotateCarouselBottomOut\":\n case \"rotateCarouselBottomIn\":\n duration = props.duration || 800;\n break;\n case \"bounceIn\":\n case \"bounceOut\":\n case \"flipOutX\":\n case \"hinge\":\n duration = props.duration || 750;\n break;\n case \"rotateFoldRight\":\n case \"rotateFoldLeft\":\n case \"rotateFoldTop\":\n case \"rotateFoldBottom\":\n case \"rotateUnfoldLeft\":\n case \"rotateUnfoldRight\":\n case \"rotateUnfoldTop\":\n case \"rotateUnfoldBottom\":\n case \"fade\":\n case \"moveFromLeftFade\":\n case \"moveToLeftFade\":\n case \"moveFromRightFade\":\n case \"moveToRightFade\":\n case \"moveFromTopFade\":\n case \"moveToTopFade\":\n case \"moveFromBottomFade\":\n case \"moveToBottomFade\":\n duration = props.duration || 700;\n break;\n case \"moveFromLeft\":\n case \"moveToLeft\":\n case \"moveFromRight\":\n case \"moveToRight\":\n case \"moveFromTop\":\n case \"moveToTop\":\n case \"moveFromBottom\":\n case \"moveToBottom\":\n case \"rotateCubeLeftOut\":\n case \"rotateCubeLeftIn\":\n case \"rotateCubeRightOut\":\n case \"rotateCubeRightIn\":\n case \"rotateCubeTopOut\":\n case \"rotateCubeTopIn\":\n case \"rotateCubeBottomOut\":\n case \"rotateCubeBottomIn\":\n duration = props.duration || 600;\n break;\n default:\n duration = props.duration || 500;\n break;\n }\n\n /// css ease timingFunction\n switch (animationName) {\n case \"superRainbow\":\n timingFunction = props.timingFunction || \"linear\";\n break;\n case \"lightSpeedOutLeft\":\n case \"lightSpeedOutRight\":\n case \"rotateRightSideFirst\":\n case \"rotateLeftSideFirst\":\n case \"rotateTopSideFirst\":\n case \"rotateBottomSideFirst\":\n case \"flipOutRight\":\n case \"flipOutLeft\":\n case \"flipOutTop\":\n case \"flipOutBottom\":\n case \"rotateFall\":\n case \"rotateOutNewspaper\":\n case \"rotateCubeLeftOut\":\n case \"rotateCubeLeftIn\":\n case \"rotateCubeRightOut\":\n case \"rotateCubeRightIn\":\n case \"rotateCubeTopOut\":\n case \"rotateCubeTopIn\":\n case \"rotateCubeBottomOut\":\n case \"rotateCubeBottomIn\":\n case \"rotateSidesOut\":\n timingFunction = props.timingFunction || \"ease-in\";\n break;\n case \"lightSpeedInLeft\":\n case \"lightSpeedInRight\":\n case \"flipInLeft\":\n case \"flipInRight\":\n case \"flipInBottom\":\n case \"flipInTop\":\n case \"rotateInNewspaper\":\n case \"rotateSidesIn\":\n timingFunction = props.timingFunction || \"ease-out\";\n break;\n case \"pulse\":\n case \"headShake\":\n case \"heartBeat\":\n case \"statusProcessing\":\n timingFunction = props.timingFunction || \"ease-in-out\";\n break;\n default:\n timingFunction = props.timingFunction || \"ease\";\n break;\n }\n\n /// delay\n switch (animationName) {\n default:\n delay = props.delay || 0;\n break;\n }\n\n /// repeat\n switch (animationName) {\n case \"superRainbow\":\n case \"statusProcessing\":\n repeat = props.repeat || \"infinite\";\n break;\n default:\n repeat = props.repeat || 1;\n break;\n }\n\n /// direction\n switch (animationName) {\n case \"superRainbow\":\n direction = props.direction || \"alternate\";\n break;\n default:\n direction = props.direction || \"normal\";\n break;\n }\n\n /// transformOrigin: x-offset y-offset\n switch (animationName) {\n case \"hinge\":\n case \"rotateFall\":\n style.transformOrigin = \"left top\";\n // style.transformOrigin = \"0% 0%\";\n break;\n case \"zoomOutLeft\":\n case \"rotateRightSideFirst\":\n case \"rotatePushLeft\":\n case \"rotatePullLeft\":\n case \"rotateFoldRight\":\n case \"rotateUnfoldRight\":\n case \"rotateRoomLeftIn\":\n case \"rotateRoomRightOut\":\n case \"rotateCubeLeftIn\":\n case \"rotateCubeRightOut\":\n style.transformOrigin = \"left center\";\n // style.transformOrigin = \"0% 50%\";\n break;\n case \"rotateInUpLeft\":\n case \"rotateInDownLeft\":\n case \"rotateOutUpLeft\":\n case \"rotateOutDownLeft\":\n style.transformOrigin = \"left bottom\";\n // style.transformOrigin = \"0% 100%\";\n break;\n case \"swing\":\n case \"zoomOutUp\":\n case \"rotateBottomSideFirst\":\n case \"rotatePushTop\":\n case \"rotatePullTop\":\n case \"rotateFoldBottom\":\n case \"rotateUnfoldBottom\":\n case \"rotateRoomTopIn\":\n case \"rotateRoomBottomOut\":\n case \"rotateCubeTopIn\":\n case \"rotateCubeBottomOut\":\n style.transformOrigin = \"center top\";\n // style.transformOrigin = \"50% 0%\";\n break;\n case \"bounce\":\n case \"zoomOutDown\":\n case \"rotateTopSideFirst\":\n case \"rotatePushBottom\":\n case \"rotatePullBottom\":\n case \"rotateFoldTop\":\n case \"rotateUnfoldTop\":\n case \"rotateRoomTopOut\":\n case \"rotateRoomBottomIn\":\n case \"rotateCubeTopOut\":\n case \"rotateCubeBottomIn\":\n style.transformOrigin = \"center bottom\";\n // style.transformOrigin = \"50% 100%\";\n break;\n // case \"xxx\":\n // style.transformOrigin = \"right top\";\n // style.transformOrigin = \"100% 0%\";\n // break;\n case \"zoomOutRight\":\n case \"rotateLeftSideFirst\":\n case \"rotatePushRight\":\n case \"rotatePullRight\":\n case \"rotateFoldLeft\":\n case \"rotateUnfoldLeft\":\n case \"rotateRoomLeftOut\":\n case \"rotateRoomRightIn\":\n case \"rotateCubeLeftOut\":\n case \"rotateCubeRightIn\":\n style.transformOrigin = \"right center\";\n // style.transformOrigin = \"100% 50%\";\n break;\n case \"rotateInUpRight\":\n case \"rotateInDownRight\":\n case \"rotateOutUpRight\":\n case \"rotateOutDownRight\":\n style.transformOrigin = \"right bottom\";\n // style.transformOrigin = \"100% 100%\";\n break;\n default:\n // style.transformOrigin = \"center\"; // default\n // style.transformOrigin = \"50% 50%\"; // default\n delete style.transformOrigin;\n break;\n }\n\n /// overflow\n switch (animationName) {\n case \"jelly\":\n case \"bounce\":\n case \"flash\":\n case \"pulse\":\n case \"rubberBand\":\n case \"shakeX\":\n case \"shakeY\":\n case \"headShake\":\n case \"swing\":\n case \"tada\":\n case \"wobble\":\n case \"jello\":\n case \"heartBeat\":\n case \"bounceIn\":\n case \"fadeIn\":\n case \"fadeOut\":\n case \"flip\":\n case \"flipInX\":\n case \"flipInY\":\n case \"flipOutX\":\n case \"flipOutY\":\n case \"hinge\":\n case \"jackInTheBox\":\n parentStyle.overflow = \"visible\";\n break;\n default:\n parentStyle.overflow = \"hidden\";\n break;\n }\n\n /// backfaceVisibility\n switch (animationName) {\n case \"flip\":\n case \"flipInX\":\n case \"flipInY\":\n case \"flipOutX\":\n case \"flipOutY\":\n style.backfaceVisibility = \"visible\";\n break;\n default:\n delete style.backfaceVisibility;\n break;\n }\n}\n\nconst animationRef = ref();\n\nconst ready = (controller: ElementEventBusController) => {\n parentStyle.perspective = props.perspective;\n controller.eb.on(\"animationstart\", (e) => {\n emits(\"cssanimationstart\", e.animationName);\n });\n controller.eb.on(\"animationend\", (e) => {\n emits(\"cssanimationend\", e.animationName);\n });\n};\n\n/// restart css animation\nfunction resetAnimation() {\n animationRef.value.style.animation = \"none\";\n animationRef.value.offsetHeight; /* trigger reflow */\n animationRef.value.style.animation = null;\n}\n\nconst start = () => {\n style.animation = \"none\";\n};\nconst end = () => {\n resetAnimation();\n // style.animationName = `${animationName}`;\n // style.animationDuration = `${duration}ms`;\n // style.animationDelay = `${delay}ms`;\n // style.animationIterationCount = `${repeat}`;\n // style.animationFillMode = `${props.fillMode}`;\n // style.animationTimingFunction = `${timingFunction}`;\n // style.animationDirection = `${direction}`;\n // style.animationPlayState = `${props.playState}`;\n style.animation = `${duration}ms ${timingFunction} ${delay}ms ${repeat} ${direction} ${props.fillMode} ${props.playState} ${animationName}`;\n};\n\nconst trigger = (newAnimationName?: SupportedCSSAnimation) => {\n if (newAnimationName) {\n changeEffect(newAnimationName);\n }\n start();\n direction = \"normal\";\n end();\n};\n\nconst triggerReverse = (newAnimationName?: SupportedCSSAnimation) => {\n if (newAnimationName) {\n changeEffect(newAnimationName);\n }\n start();\n direction = \"reverse\";\n end();\n};\n\n/// 清除样式\nconst clear = () => {\n style.animation = \"none\";\n};\n\nwatch(\n () => props.name,\n () => {\n changeEffect(props.name);\n },\n { immediate: true }\n);\n\ndefineExpose({ trigger, triggerReverse, clear });\n</script>\n\n<template>\n <Container\n class=\"css-animation\"\n :type=\"props.containerType\"\n :supportCopyText=\"props.supportCopyText\"\n :effectTriggerTiming=\"props.effectTriggerTiming\"\n :style=\"parentStyle\"\n @ready=\"ready\"\n @start=\"start\"\n @end=\"end\"\n >\n <div\n class=\"css-animation-inner\"\n ref=\"animationRef\"\n :style=\"{\n position: 'relative',\n display: 'block',\n width: '100%',\n height: '100%',\n cursor: 'pointer',\n transformStyle: 'preserve-3d',\n ...style\n }\"\n >\n <slot></slot>\n </div>\n </Container>\n</template>\n\n<style>\n@import \"../../../../../css/animate_ce.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { ref, reactive, watch } from \"vue\";\nimport {\n Easing,\n EasingFunction,\n SupportedEaseNameToCubicBezier,\n Timeline,\n TweenValue\n} from \"@zyzgroup/core-web\";\nimport Container from \"./Container.vue\";\nimport CSSAnimation, { SupportedCSSAnimation } from \"./effect/CSSAnimation.vue\";\n\nexport type SupportedPageEffect =\n | \"static\"\n | \"fade\"\n | \"moveFromLeft\"\n | \"moveToLeft\"\n | \"moveFromRight\"\n | \"moveToRight\"\n | \"moveFromTop\"\n | \"moveToTop\"\n | \"moveFromBottom\"\n | \"moveToBottom\"\n | \"moveFromLeftFade\"\n | \"moveToLeftFade\"\n | \"moveFromRightFade\"\n | \"moveToRightFade\"\n | \"moveFromTopFade\"\n | \"moveToTopFade\"\n | \"moveFromBottomFade\"\n | \"moveToBottomFade\"\n | \"scaleFromSmall\"\n | \"scaleToSmall\"\n | \"scaleFromLarge\"\n | \"scaleToLarge\"\n | \"scaleFromSmallCenter\"\n | \"scaleToSmallCenter\"\n | \"rotateRightSideFirst\"\n | \"rotateLeftSideFirst\"\n | \"rotateTopSideFirst\"\n | \"rotateBottomSideFirst\"\n | \"flipOutRight\"\n | \"flipInLeft\"\n | \"flipOutLeft\"\n | \"flipInRight\"\n | \"flipOutTop\"\n | \"flipInBottom\"\n | \"flipOutBottom\"\n | \"flipInTop\"\n | \"rotateFall\"\n | \"rotateOutNewspaper\"\n | \"rotateInNewspaper\"\n | \"rotatePushLeft\"\n | \"rotatePushRight\"\n | \"rotatePushTop\"\n | \"rotatePushBottom\"\n | \"rotatePullRight\"\n | \"rotatePullLeft\"\n | \"rotatePullTop\"\n | \"rotatePullBottom\"\n | \"rotateFoldRight\"\n | \"rotateFoldLeft\"\n | \"rotateFoldTop\"\n | \"rotateFoldBottom\"\n | \"rotateUnfoldLeft\"\n | \"rotateUnfoldRight\"\n | \"rotateUnfoldTop\"\n | \"rotateUnfoldBottom\"\n | \"rotateRoomLeftOut\"\n | \"rotateRoomLeftIn\"\n | \"rotateRoomRightOut\"\n | \"rotateRoomRightIn\"\n | \"rotateRoomTopOut\"\n | \"rotateRoomTopIn\"\n | \"rotateRoomBottomOut\"\n | \"rotateRoomBottomIn\"\n | \"rotateCubeLeftOut\"\n | \"rotateCubeLeftIn\"\n | \"rotateCubeRightOut\"\n | \"rotateCubeRightIn\"\n | \"rotateCubeTopOut\"\n | \"rotateCubeTopIn\"\n | \"rotateCubeBottomOut\"\n | \"rotateCubeBottomIn\"\n | \"rotateCarouselLeftOut\"\n | \"rotateCarouselLeftIn\"\n | \"rotateCarouselRightOut\"\n | \"rotateCarouselRightIn\"\n | \"rotateCarouselTopOut\"\n | \"rotateCarouselTopIn\"\n | \"rotateCarouselBottomOut\"\n | \"rotateCarouselBottomIn\"\n | \"rotateSidesOut\"\n | \"rotateSidesIn\"\n | \"rotateSlideOut\"\n | \"rotateSlideIn\";\n\n// type AtomEffect =\n// | \"moveFromLeft\"\n// | \"moveToLeft\"\n// | \"moveFromRight\"\n// | \"moveToRight\"\n// | \"moveFromTop\"\n// | \"moveToTop\"\n// | \"moveFromBottom\"\n// | \"moveToBottom\"\n// | \"fadeOut\"\n// | \"fadeIn\"\n// | \"disappear\"\n// | \"appear\"\n// | \"scaleFromSmall\"\n// | \"scaleToSmall\"\n// | \"scaleFromLarge\"\n// | \"scaleToLarge\"\n// | \"scaleFromSmallCenter\"\n// | \"scaleToSmallCenter\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: { Container, CSSAnimation },\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n effect?: SupportedPageEffect;\n duration?: number;\n /// js ease\n easeFunction?: EasingFunction;\n /// css ease\n timingFunction?: SupportedEaseNameToCubicBezier;\n delay?: number;\n }>(),\n {\n effect: \"moveFromLeft\",\n duration: 500,\n easeFunction: Easing.Cubic.InOut,\n timingFunction: \"ease\",\n delay: 0\n }\n);\n\nconst emits = defineEmits<{\n (event: \"ready\", open: () => void, close: () => void): void;\n (event: \"pageOpenStart\"): void;\n (event: \"pageOpenEnd\"): void;\n (event: \"pageCloseStart\"): void;\n (event: \"pageCloseEnd\"): void;\n}>();\n\nconst pageRef = ref();\nconst style = reactive<Record<string, string>>({});\n\nconst ready = () => {\n emits(\"ready\", open, close);\n};\n\nconst update = () => {\n changeEffect();\n};\n\nconst cssAnimationRef = ref();\nlet cssAnimationName: SupportedCSSAnimation = \"rotateRightSideFirst\";\n\nlet effect: SupportedPageEffect = props.effect;\nfunction runDependOnEffectType(\n cssAnimationTask: () => void,\n jsAnimationTask: () => void\n) {\n switch (effect) {\n case \"static\":\n /// JS Animation\n jsAnimationTask();\n break;\n default:\n /// CSS Animation\n cssAnimationTask();\n break;\n }\n}\n\n// const _addAtomEffect = (\n// attrFrom: Record<string, number>,\n// attrTo: Record<string, number>,\n// effect: AtomEffect\n// ) => {\n// switch (effect) {\n// case \"moveFromLeft\":\n// attrFrom.x = -100;\n// attrTo.x = 0;\n// break;\n// case \"moveToLeft\":\n// attrFrom.x = 0;\n// attrTo.x = -100;\n// break;\n// case \"moveFromRight\":\n// attrFrom.x = 100;\n// attrTo.x = 0;\n// break;\n// case \"moveToRight\":\n// attrFrom.x = 0;\n// attrTo.x = 100;\n// break;\n// case \"moveFromTop\":\n// attrFrom.y = -100;\n// attrTo.y = 0;\n// break;\n// case \"moveToTop\":\n// attrFrom.y = 0;\n// attrTo.y = -100;\n// break;\n// case \"moveFromBottom\":\n// attrFrom.y = 100;\n// attrTo.y = 0;\n// break;\n// case \"moveToBottom\":\n// attrFrom.y = 0;\n// attrTo.y = 100;\n// break;\n// case \"fadeOut\":\n// attrFrom.opacity = 1;\n// attrTo.opacity = 0.3;\n// break;\n// case \"fadeIn\":\n// attrFrom.opacity = 0.3;\n// attrTo.opacity = 1;\n// break;\n// case \"disappear\":\n// attrFrom.opacity = 1;\n// attrTo.opacity = 0;\n// break;\n// case \"appear\":\n// attrFrom.opacity = 0;\n// attrTo.opacity = 1;\n// break;\n// case \"scaleFromSmall\":\n// attrFrom.scale = 0.8;\n// attrTo.scale = 1;\n// break;\n// case \"scaleToSmall\":\n// attrFrom.scale = 1;\n// attrTo.scale = 0.8;\n// break;\n// case \"scaleFromLarge\":\n// attrFrom.scale = 1.2;\n// attrTo.scale = 1;\n// break;\n// case \"scaleToLarge\":\n// attrFrom.scale = 1;\n// attrTo.scale = 1.2;\n// break;\n// case \"scaleFromSmallCenter\":\n// attrFrom.scale = 0.7;\n// attrTo.scale = 1;\n// break;\n// case \"scaleToSmallCenter\":\n// attrFrom.scale = 1;\n// attrTo.scale = 0.7;\n// break;\n// }\n// };\n\nlet isClose = false;\n\nconst triggerTimeline = new Timeline();\nconst changeEffect = () => {\n const triggerFrom: Record<string, number> = {};\n const triggerTo: Record<string, number> = {};\n switch (effect) {\n case \"static\":\n break;\n /// 统一用 css animation ,抹平与 js animation 的差异\n // case \"moveFromLeft\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveFromLeft\");\n // break;\n // case \"moveToLeft\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveToLeft\");\n // break;\n // case \"moveFromRight\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveFromRight\");\n // break;\n // case \"moveToRight\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveToRight\");\n // break;\n // case \"moveFromTop\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveFromTop\");\n // break;\n // case \"moveToTop\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveToTop\");\n // break;\n // case \"moveFromBottom\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveFromBottom\");\n // break;\n // case \"moveToBottom\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveToBottom\");\n // break;\n // case \"fade\":\n // _addAtomEffect(triggerFrom, triggerTo, \"fadeOut\");\n // break;\n // case \"moveFromLeftFade\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveFromLeft\");\n // _addAtomEffect(triggerFrom, triggerTo, \"fadeIn\");\n // break;\n // case \"moveToLeftFade\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveToLeft\");\n // _addAtomEffect(triggerFrom, triggerTo, \"fadeOut\");\n // break;\n // case \"moveFromRightFade\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveFromRight\");\n // _addAtomEffect(triggerFrom, triggerTo, \"fadeIn\");\n // break;\n // case \"moveToRightFade\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveToRight\");\n // _addAtomEffect(triggerFrom, triggerTo, \"fadeOut\");\n // break;\n // case \"moveFromTopFade\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveFromTop\");\n // _addAtomEffect(triggerFrom, triggerTo, \"fadeIn\");\n // break;\n // case \"moveToTopFade\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveToTop\");\n // _addAtomEffect(triggerFrom, triggerTo, \"fadeOut\");\n // break;\n // case \"moveFromBottomFade\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveFromBottom\");\n // _addAtomEffect(triggerFrom, triggerTo, \"fadeIn\");\n // break;\n // case \"moveToBottomFade\":\n // _addAtomEffect(triggerFrom, triggerTo, \"moveToBottom\");\n // _addAtomEffect(triggerFrom, triggerTo, \"fadeOut\");\n // break;\n // case \"scaleFromSmall\":\n // _addAtomEffect(triggerFrom, triggerTo, \"scaleFromSmall\");\n // _addAtomEffect(triggerFrom, triggerTo, \"appear\");\n // break;\n // case \"scaleToSmall\":\n // _addAtomEffect(triggerFrom, triggerTo, \"scaleToSmall\");\n // _addAtomEffect(triggerFrom, triggerTo, \"disappear\");\n // break;\n // case \"scaleFromLarge\":\n // _addAtomEffect(triggerFrom, triggerTo, \"scaleFromLarge\");\n // _addAtomEffect(triggerFrom, triggerTo, \"appear\");\n // break;\n // case \"scaleToLarge\":\n // _addAtomEffect(triggerFrom, triggerTo, \"scaleToLarge\");\n // _addAtomEffect(triggerFrom, triggerTo, \"disappear\");\n // break;\n // case \"scaleFromSmallCenter\":\n // _addAtomEffect(triggerFrom, triggerTo, \"scaleFromSmallCenter\");\n // _addAtomEffect(triggerFrom, triggerTo, \"appear\");\n // break;\n // case \"scaleToSmallCenter\":\n // _addAtomEffect(triggerFrom, triggerTo, \"scaleToSmallCenter\");\n // _addAtomEffect(triggerFrom, triggerTo, \"disappear\");\n // break;\n }\n triggerTimeline.clear();\n triggerTimeline.frameDuration = props.duration;\n runDependOnEffectType(\n () => {\n /// CSS Animation\n cssAnimationName = effect as SupportedCSSAnimation;\n },\n () => {\n /// JS Animation\n triggerTimeline.addTween(triggerFrom, triggerTo, {\n delay: props.delay / props.duration,\n easeFunction: props.easeFunction,\n onStart: () => {\n if (!isClose) {\n emits(\"pageOpenStart\");\n } else {\n emits(\"pageCloseStart\");\n }\n },\n onUpdate: (attrs: TweenValue) => {\n style.transform = \"\";\n if (\"x\" in attrs) {\n style.transform += ` translateX(${attrs.x}%)`;\n }\n if (\"y\" in attrs) {\n style.transform += ` translateY(${attrs.y}%)`;\n }\n if (\"rx\" in attrs) {\n style.transform += ` rotateX(${attrs.rx}deg)`;\n }\n if (\"ry\" in attrs) {\n style.transform += ` rotateY(${attrs.ry}deg)`;\n }\n if (\"scale\" in attrs) {\n style.transform += ` scale(${attrs.scale})`;\n }\n if (\"opacity\" in attrs) {\n style.opacity = `${attrs.opacity}`;\n }\n },\n onComplete: () => {\n if (!isClose) {\n emits(\"pageOpenEnd\");\n } else {\n emits(\"pageCloseEnd\");\n }\n }\n });\n }\n );\n};\n\nwatch(\n () => [props.effect, props.delay, props.duration, props.easeFunction],\n () => {\n effect = props.effect;\n changeEffect();\n },\n {\n immediate: true\n }\n);\n\nconst cssanimationstart = () => {\n if (!isClose) {\n emits(\"pageOpenStart\");\n } else {\n emits(\"pageCloseStart\");\n }\n};\n\nconst cssanimationend = () => {\n if (!isClose) {\n emits(\"pageOpenEnd\");\n } else {\n emits(\"pageCloseEnd\");\n }\n};\n\nconst start = () => {\n runDependOnEffectType(\n () => {\n /// CSS Animation\n cssAnimationRef.value.trigger(cssAnimationName);\n },\n () => {\n /// JS Animation\n triggerTimeline.play();\n }\n );\n};\n\nconst end = () => {\n runDependOnEffectType(\n () => {\n /// CSS Animation\n cssAnimationRef.value.triggerReverse(cssAnimationName);\n },\n () => {\n /// JS Animation\n triggerTimeline.reverse();\n }\n );\n};\n\n/// 清除样式\nconst clear = () => {\n style.transform = \"none\";\n style.opacity = \"1\";\n};\n\nfunction clearStyle() {\n runDependOnEffectType(\n () => {\n /// CSS Animation : clear js style\n clear();\n },\n () => {\n /// JS Animation : clear css style\n cssAnimationRef.value?.clear();\n }\n );\n}\n\nconst open = (newEffect?: SupportedPageEffect) => {\n if (newEffect) {\n effect = newEffect;\n changeEffect();\n }\n isClose = false;\n clearStyle();\n start();\n};\n\nconst close = (newEffect?: SupportedPageEffect) => {\n if (newEffect) {\n effect = newEffect;\n changeEffect();\n }\n isClose = true;\n clearStyle();\n end();\n};\n\ndefineExpose({\n open,\n close,\n clear\n});\n</script>\n\n<template>\n <Container\n class=\"page\"\n ref=\"pageRef\"\n type=\"full\"\n effectTriggerTiming=\"manual\"\n :style=\"{\n overflow: 'hidden',\n width: '100%',\n height: '100%'\n }\"\n @ready=\"ready\"\n @update=\"update\"\n >\n <CSSAnimation\n ref=\"cssAnimationRef\"\n containerType=\"full\"\n effectTriggerTiming=\"manual\"\n :duration=\"props.duration\"\n :delay=\"props.delay\"\n :timingFunction=\"props.timingFunction\"\n @cssanimationstart=\"cssanimationstart\"\n @cssanimationend=\"cssanimationend\"\n >\n <div\n class=\"page-inner\"\n :style=\"{\n position: 'relative',\n display: 'block',\n width: '100%',\n height: '100%',\n overflow: 'scroll',\n backfaceVisibility: 'hidden',\n transformStyle: 'preserve-3d',\n ...style\n }\"\n >\n <slot></slot>\n </div>\n </CSSAnimation>\n </Container>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, VNode, render, h, Component, watch } from \"vue\";\nimport Page, { SupportedPageEffect } from \"./Page.vue\";\nimport Container from \"./Container.vue\";\nimport { generateUUID, AsyncTaskQueue } from \"@zyzgroup/core-common\";\nimport {\n Easing,\n EasingFunction,\n // CSSToJSEasing,\n // reverseCSSToJSEasing,\n SupportedEaseNameToCubicBezier\n} from \"@zyzgroup/core-web\";\n// import { elementsToVNodes } from \"../vnode\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: { Page, Container },\n inheritAttrs: true\n});\n\nexport type SupportedRouteEffect =\n | \"moveToLeft\"\n | \"moveToRight\"\n | \"moveToTop\"\n | \"moveToBottom\"\n | \"moveFromLeftPrevFade\"\n | \"moveFromRightPrevFade\"\n | \"moveFromTopPrevFade\"\n | \"moveFromBottomPrevFade\"\n | \"moveToLeftFade\"\n | \"moveToRightFade\"\n | \"moveToTopFade\"\n | \"moveToBottomFade\"\n | \"moveToLeftEasing\"\n | \"moveToRightEasing\"\n | \"moveToTopEasing\"\n | \"moveToBottomEasing\"\n | \"moveFromLeftPrevScaleToSmall\"\n | \"moveFromRightPrevScaleToSmall\"\n | \"moveFromTopPrevScaleToSmall\"\n | \"moveFromBottomPrevScaleToSmall\" /// ⭐\n | \"scaleSmall\"\n | \"scaleLarge\"\n | \"scaleToLargePrevScaleToSmall\"\n | \"scaleFromSmallPrevMoveToLeft\"\n | \"scaleFromSmallPrevMoveToRight\"\n | \"scaleFromSmallPrevMoveToTop\"\n | \"scaleFromSmallPrevMoveToBottom\"\n | \"glueToLeft\"\n | \"glueToRight\"\n | \"glueToTop\"\n | \"glueToBottom\"\n | \"flipToLeft\"\n | \"flipToRight\"\n | \"flipToTop\"\n | \"flipToBottom\"\n | \"rotateFall\"\n | \"newspaper\"\n | \"moveFromLeftPrevPush\"\n | \"moveFromRightPrevPush\"\n | \"moveFromTopPrevPush\"\n | \"moveFromBottomPrevPush\"\n | \"pullFromLeftPrevPush\"\n | \"pullFromRightPrevPush\"\n | \"pullFromTopPrevPush\"\n | \"pullFromBottomPrevPush\"\n | \"moveFromLeftFadePrevFold\"\n | \"moveFromRightFadePrevFold\"\n | \"moveFromTopFadePrevFold\"\n | \"moveFromBottomFadePrevFold\"\n | \"moveToLeftFadePrevUnfold\"\n | \"moveToRightFadePrevUnfold\"\n | \"moveToTopFadePrevUnfold\"\n | \"moveToBottomFadePrevUnfold\"\n | \"rotateRoomLeftIn\"\n | \"rotateRoomRightIn\"\n | \"rotateRoomTopIn\"\n | \"rotateRoomBottomIn\"\n | \"rotateCubeLeftIn\"\n | \"rotateCubeRightIn\"\n | \"rotateCubeTopIn\"\n | \"rotateCubeBottomIn\"\n | \"rotateCarouselLeftIn\"\n | \"rotateCarouselRightIn\"\n | \"rotateCarouselTopIn\"\n | \"rotateCarouselBottomIn\"\n | \"rotateSidesIn\"\n | \"rotateSlideIn\";\n\nconst props = withDefaults(\n defineProps<{\n effect?: SupportedRouteEffect;\n duration?: number;\n /// js ease\n easeFunction?: EasingFunction;\n // differentEaseFunction?: EasingFunction;\n /// css ease\n timingFunction?: SupportedEaseNameToCubicBezier;\n delay?: number;\n }>(),\n {\n effect: \"moveToLeft\",\n duration: 500,\n easeFunction: Easing.Cubic.InOut,\n // differentEaseFunction: Easing.Quintic.InOut,\n timingFunction: \"ease\",\n delay: 0\n }\n);\n\nconst emits = defineEmits<{\n (\n event: \"routeChangeStart\",\n fromPageIndex: number,\n toPageIndex: number,\n totalPages: number\n ): void;\n (\n event: \"routeChangeEnd\",\n fromPageIndex: number,\n toPageIndex: number,\n totalPages: number\n ): void;\n (event: \"renderComplete\"): void;\n}>();\n\ntype VNodeChildAtom =\n | VNode\n | string\n | number\n | boolean\n | null\n | undefined\n | void;\ntype VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;\ntype RawChildren =\n | string\n | number\n | boolean\n | VNode\n | VNodeArrayChildren\n | (() => any);\ntype RawSlots = {\n [name: string]: unknown;\n $stable?: boolean;\n};\n\nexport type PageArgument = {\n pageKey?: string;\n // pageAttributes?: InstanceType<typeof Page>;\n component: VNode | Component | HTMLElement;\n attributes?: Record<string, any>;\n child?: RawChildren | RawSlots;\n};\n\nlet currentPageIndex = -1;\nlet nextPageIndex = -1;\nlet onRenderComplete: () => void;\nconst onRouteCompletes: (() => void)[] = [];\n\nlet pages: PageArgument[] = [];\nlet pageActions: {\n open: () => void;\n close: () => void;\n}[] = [];\nlet pageElements: HTMLElement[] = [];\n\nfunction isValidPageIndex(pageIndex: number): boolean {\n return pageIndex >= 0 && pageIndex < pages.length;\n}\n\nfunction isForward(): boolean {\n return nextPageIndex > currentPageIndex;\n}\n\n/// page effect\nfunction _getPageEffect(\n pageIndex: number,\n currentPageEffect: SupportedPageEffect,\n nextPageEffect: SupportedPageEffect\n): SupportedPageEffect {\n switch (pageIndex) {\n case currentPageIndex:\n return isForward() ? currentPageEffect : nextPageEffect;\n case nextPageIndex:\n return isForward() ? nextPageEffect : currentPageEffect;\n default:\n return \"static\";\n }\n}\nfunction getPageEffect(\n routeEffect: SupportedRouteEffect,\n pageIndex: number\n): SupportedPageEffect {\n switch (routeEffect) {\n case \"moveToLeft\":\n return _getPageEffect(pageIndex, \"moveToLeft\", \"moveFromRight\");\n case \"moveToRight\":\n return _getPageEffect(pageIndex, \"moveToRight\", \"moveFromLeft\");\n case \"moveToTop\":\n return _getPageEffect(pageIndex, \"moveToTop\", \"moveFromBottom\");\n case \"moveToBottom\":\n return _getPageEffect(pageIndex, \"moveToBottom\", \"moveFromTop\");\n\n case \"moveFromLeftPrevFade\":\n return _getPageEffect(pageIndex, \"fade\", \"moveFromLeft\");\n case \"moveFromRightPrevFade\":\n return _getPageEffect(pageIndex, \"fade\", \"moveFromRight\");\n case \"moveFromTopPrevFade\":\n return _getPageEffect(pageIndex, \"fade\", \"moveFromTop\");\n case \"moveFromBottomPrevFade\":\n return _getPageEffect(pageIndex, \"fade\", \"moveFromBottom\");\n\n case \"moveToLeftFade\":\n return _getPageEffect(pageIndex, \"moveToLeftFade\", \"moveFromRightFade\");\n case \"moveToRightFade\":\n return _getPageEffect(pageIndex, \"moveToRightFade\", \"moveFromLeftFade\");\n case \"moveToTopFade\":\n return _getPageEffect(pageIndex, \"moveToTopFade\", \"moveFromBottomFade\");\n case \"moveToBottomFade\":\n return _getPageEffect(pageIndex, \"moveToBottomFade\", \"moveFromTopFade\");\n\n case \"moveToLeftEasing\":\n return _getPageEffect(pageIndex, \"moveToLeft\", \"moveFromRight\");\n case \"moveToRightEasing\":\n return _getPageEffect(pageIndex, \"moveToRight\", \"moveFromLeft\");\n case \"moveToTopEasing\":\n return _getPageEffect(pageIndex, \"moveToTop\", \"moveFromBottom\");\n case \"moveToBottomEasing\":\n return _getPageEffect(pageIndex, \"moveToBottom\", \"moveFromTop\");\n\n case \"moveFromLeftPrevScaleToSmall\":\n return _getPageEffect(pageIndex, \"scaleToSmall\", \"moveFromLeft\");\n case \"moveFromRightPrevScaleToSmall\":\n return _getPageEffect(pageIndex, \"scaleToSmall\", \"moveFromRight\");\n case \"moveFromTopPrevScaleToSmall\":\n return _getPageEffect(pageIndex, \"scaleToSmall\", \"moveFromTop\");\n case \"moveFromBottomPrevScaleToSmall\":\n return _getPageEffect(pageIndex, \"scaleToSmall\", \"moveFromBottom\");\n\n case \"scaleSmall\":\n return _getPageEffect(pageIndex, \"scaleToSmall\", \"scaleFromLarge\");\n case \"scaleLarge\":\n return _getPageEffect(pageIndex, \"scaleToLarge\", \"scaleFromSmall\");\n case \"scaleToLargePrevScaleToSmall\":\n return _getPageEffect(\n pageIndex,\n \"scaleToSmallCenter\",\n \"scaleFromSmallCenter\"\n );\n\n case \"scaleFromSmallPrevMoveToLeft\":\n return _getPageEffect(pageIndex, \"moveToLeft\", \"scaleFromSmall\");\n case \"scaleFromSmallPrevMoveToRight\":\n return _getPageEffect(pageIndex, \"moveToRight\", \"scaleFromSmall\");\n case \"scaleFromSmallPrevMoveToTop\":\n return _getPageEffect(pageIndex, \"moveToTop\", \"scaleFromSmall\");\n case \"scaleFromSmallPrevMoveToBottom\":\n return _getPageEffect(pageIndex, \"moveToBottom\", \"scaleFromSmall\");\n\n case \"glueToLeft\":\n return _getPageEffect(pageIndex, \"rotateRightSideFirst\", \"moveFromRight\");\n case \"glueToRight\":\n return _getPageEffect(pageIndex, \"rotateLeftSideFirst\", \"moveFromLeft\");\n case \"glueToTop\":\n return _getPageEffect(\n pageIndex,\n \"rotateBottomSideFirst\",\n \"moveFromBottom\"\n );\n case \"glueToBottom\":\n return _getPageEffect(pageIndex, \"rotateTopSideFirst\", \"moveFromTop\");\n\n case \"flipToLeft\":\n return _getPageEffect(pageIndex, \"flipOutLeft\", \"flipInRight\");\n case \"flipToRight\":\n return _getPageEffect(pageIndex, \"flipOutRight\", \"flipInLeft\");\n case \"flipToTop\":\n return _getPageEffect(pageIndex, \"flipOutTop\", \"flipInBottom\");\n case \"flipToBottom\":\n return _getPageEffect(pageIndex, \"flipOutBottom\", \"flipInTop\");\n\n case \"rotateFall\":\n return _getPageEffect(pageIndex, \"rotateFall\", \"scaleFromSmall\");\n\n case \"newspaper\":\n return _getPageEffect(\n pageIndex,\n \"rotateOutNewspaper\",\n \"rotateInNewspaper\"\n );\n\n case \"moveFromLeftPrevPush\":\n return _getPageEffect(pageIndex, \"rotatePushRight\", \"moveFromLeft\");\n case \"moveFromRightPrevPush\":\n return _getPageEffect(pageIndex, \"rotatePushLeft\", \"moveFromRight\");\n case \"moveFromTopPrevPush\":\n return _getPageEffect(pageIndex, \"rotatePushBottom\", \"moveFromTop\");\n case \"moveFromBottomPrevPush\":\n return _getPageEffect(pageIndex, \"rotatePushTop\", \"moveFromBottom\");\n\n case \"pullFromLeftPrevPush\":\n return _getPageEffect(pageIndex, \"rotatePushRight\", \"rotatePullLeft\");\n case \"pullFromRightPrevPush\":\n return _getPageEffect(pageIndex, \"rotatePushLeft\", \"rotatePullRight\");\n case \"pullFromTopPrevPush\":\n return _getPageEffect(pageIndex, \"rotatePushBottom\", \"rotatePullTop\");\n case \"pullFromBottomPrevPush\":\n return _getPageEffect(pageIndex, \"rotatePushTop\", \"rotatePullBottom\");\n\n case \"moveFromLeftFadePrevFold\":\n return _getPageEffect(pageIndex, \"rotateFoldRight\", \"moveFromLeftFade\");\n case \"moveFromRightFadePrevFold\":\n return _getPageEffect(pageIndex, \"rotateFoldLeft\", \"moveFromRightFade\");\n case \"moveFromTopFadePrevFold\":\n return _getPageEffect(pageIndex, \"rotateFoldBottom\", \"moveFromTopFade\");\n case \"moveFromBottomFadePrevFold\":\n return _getPageEffect(pageIndex, \"rotateFoldTop\", \"moveFromBottomFade\");\n\n case \"moveToLeftFadePrevUnfold\":\n return _getPageEffect(pageIndex, \"moveToLeftFade\", \"rotateUnfoldRight\");\n case \"moveToRightFadePrevUnfold\":\n return _getPageEffect(pageIndex, \"moveToRightFade\", \"rotateUnfoldLeft\");\n case \"moveToTopFadePrevUnfold\":\n return _getPageEffect(pageIndex, \"moveToTopFade\", \"rotateUnfoldBottom\");\n case \"moveToBottomFadePrevUnfold\":\n return _getPageEffect(pageIndex, \"moveToBottomFade\", \"rotateUnfoldTop\");\n\n case \"rotateRoomLeftIn\":\n return _getPageEffect(pageIndex, \"rotateRoomLeftOut\", \"rotateRoomLeftIn\");\n case \"rotateRoomRightIn\":\n return _getPageEffect(\n pageIndex,\n \"rotateRoomRightOut\",\n \"rotateRoomRightIn\"\n );\n case \"rotateRoomTopIn\":\n return _getPageEffect(pageIndex, \"rotateRoomTopOut\", \"rotateRoomTopIn\");\n case \"rotateRoomBottomIn\":\n return _getPageEffect(\n pageIndex,\n \"rotateRoomBottomOut\",\n \"rotateRoomBottomIn\"\n );\n\n case \"rotateCubeLeftIn\":\n return _getPageEffect(pageIndex, \"rotateCubeLeftOut\", \"rotateCubeLeftIn\");\n case \"rotateCubeRightIn\":\n return _getPageEffect(\n pageIndex,\n \"rotateCubeRightOut\",\n \"rotateCubeRightIn\"\n );\n case \"rotateCubeTopIn\":\n return _getPageEffect(pageIndex, \"rotateCubeTopOut\", \"rotateCubeTopIn\");\n case \"rotateCubeBottomIn\":\n return _getPageEffect(\n pageIndex,\n \"rotateCubeBottomOut\",\n \"rotateCubeBottomIn\"\n );\n\n case \"rotateCarouselLeftIn\":\n return _getPageEffect(\n pageIndex,\n \"rotateCarouselLeftOut\",\n \"rotateCarouselLeftIn\"\n );\n case \"rotateCarouselRightIn\":\n return _getPageEffect(\n pageIndex,\n \"rotateCarouselRightOut\",\n \"rotateCarouselRightIn\"\n );\n case \"rotateCarouselTopIn\":\n return _getPageEffect(\n pageIndex,\n \"rotateCarouselTopOut\",\n \"rotateCarouselTopIn\"\n );\n case \"rotateCarouselBottomIn\":\n return _getPageEffect(\n pageIndex,\n \"rotateCarouselBottomOut\",\n \"rotateCarouselBottomIn\"\n );\n\n case \"rotateSidesIn\":\n return _getPageEffect(pageIndex, \"rotateSidesOut\", \"rotateSidesIn\");\n case \"rotateSlideIn\":\n return _getPageEffect(pageIndex, \"rotateSlideOut\", \"rotateSlideIn\");\n }\n}\n\n/// duration\nfunction _getPageDuration(\n pageIndex: number,\n currentDuration = 600,\n nextDuration = 600\n): number {\n switch (pageIndex) {\n case currentPageIndex:\n return currentDuration;\n case nextPageIndex:\n return nextDuration;\n default:\n return props.duration;\n }\n}\nfunction getPageDuration(\n routeEffect: SupportedRouteEffect,\n pageIndex: number\n): number {\n switch (routeEffect) {\n case \"moveFromLeftFadePrevFold\":\n case \"moveFromRightFadePrevFold\":\n case \"moveFromTopFadePrevFold\":\n case \"moveFromBottomFadePrevFold\":\n return _getPageDuration(pageIndex, 700, 700);\n case \"moveToLeftEasing\":\n case \"moveToRightEasing\":\n case \"moveToTopEasing\":\n case \"moveToBottomEasing\":\n case \"moveFromLeftPrevScaleToSmall\":\n case \"moveFromRightPrevScaleToSmall\":\n case \"moveFromTopPrevScaleToSmall\":\n case \"moveFromBottomPrevScaleToSmall\":\n return _getPageDuration(pageIndex, 700, 600);\n case \"scaleSmall\":\n return _getPageDuration(pageIndex, 700, 500);\n case \"scaleLarge\":\n return _getPageDuration(pageIndex, 500, 700);\n case \"scaleToLargePrevScaleToSmall\":\n return _getPageDuration(pageIndex, 400, 400);\n case \"scaleFromSmallPrevMoveToLeft\":\n case \"scaleFromSmallPrevMoveToRight\":\n case \"scaleFromSmallPrevMoveToTop\":\n case \"scaleFromSmallPrevMoveToBottom\":\n return _getPageDuration(pageIndex, 600, 700);\n case \"glueToLeft\":\n case \"glueToRight\":\n case \"glueToTop\":\n case \"glueToBottom\":\n return _getPageDuration(pageIndex, 800, 600);\n default:\n return props.duration;\n }\n}\n\n/// js ease\nlet timingFunction = props.timingFunction;\n// function _getPageEaseFunctionFromCSS(pageIndex: number): EasingFunction {\n// switch (pageIndex) {\n// case currentPageIndex:\n// case nextPageIndex:\n// return isForward()\n// ? CSSToJSEasing(timingFunction)\n// : reverseCSSToJSEasing(timingFunction);\n// default:\n// return props.easeFunction;\n// }\n// }\nfunction _getPageEaseFunction(pageIndex: number): EasingFunction {\n switch (pageIndex) {\n // case currentPageIndex:\n // return props.differentEaseFunction;\n // case nextPageIndex:\n default:\n return props.easeFunction;\n }\n}\nfunction getPageEaseFunction(\n routeEffect: SupportedRouteEffect,\n pageIndex: number\n): EasingFunction {\n /// css animation 和 js animation 混合\n // switch (routeEffect) {\n // case \"moveFromLeftFadePrevFold\":\n // case \"moveFromRightFadePrevFold\":\n // case \"moveFromTopFadePrevFold\":\n // case \"moveFromBottomFadePrevFold\":\n // timingFunction = \"ease\";\n // return _getPageEaseFunctionFromCSS(pageIndex);\n // default:\n // timingFunction = props.timingFunction;\n // break;\n // }\n /// js animation\n switch (routeEffect) {\n case \"moveToLeftEasing\":\n case \"moveToRightEasing\":\n case \"moveToTopEasing\":\n case \"moveToBottomEasing\":\n switch (pageIndex) {\n case currentPageIndex:\n timingFunction = isForward() ? \"ease-in-out\" : \"ease\";\n break;\n case nextPageIndex:\n default:\n timingFunction = isForward() ? \"ease\" : \"ease-in-out\";\n }\n return _getPageEaseFunction(pageIndex);\n default:\n timingFunction = props.timingFunction;\n return props.easeFunction;\n }\n}\n\n/// delay\nfunction _getPageDelay(pageIndex: number, delay = 300): number {\n switch (pageIndex) {\n case nextPageIndex:\n return props.delay + delay;\n default:\n return props.delay;\n }\n}\nfunction getPageDelay(\n routeEffect: SupportedRouteEffect,\n pageIndex: number\n): number {\n switch (routeEffect) {\n case \"flipToLeft\":\n case \"flipToRight\":\n case \"flipToTop\":\n case \"flipToBottom\":\n case \"newspaper\":\n return _getPageDelay(pageIndex, 500);\n case \"scaleSmall\":\n case \"scaleLarge\":\n return _getPageDelay(pageIndex, 300);\n case \"scaleToLargePrevScaleToSmall\":\n return _getPageDelay(pageIndex, 400);\n case \"glueToLeft\":\n case \"glueToRight\":\n case \"glueToTop\":\n case \"glueToBottom\":\n case \"rotateSidesIn\":\n return _getPageDelay(pageIndex, 200);\n case \"pullFromLeftPrevPush\":\n case \"pullFromRightPrevPush\":\n case \"pullFromTopPrevPush\":\n case \"pullFromBottomPrevPush\":\n return _getPageDelay(pageIndex, 180);\n default:\n return props.delay;\n }\n}\n\nlet currentZIndex = 2;\nlet nextZIndex = 2;\nconst sameOnTop = () => {\n currentZIndex = 2;\n nextZIndex = 2;\n};\nconst nextOnTop = () => {\n currentZIndex = 2;\n nextZIndex = 3;\n};\nconst currentOnTop = () => {\n currentZIndex = 3;\n nextZIndex = 2;\n};\nfunction setRunningStyle(pageIndex: number) {\n switch (props.effect) {\n case \"moveToLeftEasing\":\n case \"moveToRightEasing\":\n case \"moveToTopEasing\":\n case \"moveToBottomEasing\":\n currentOnTop();\n break;\n // case \"xxx\":\n // nextOnTop();\n // break;\n case \"scaleFromSmallPrevMoveToLeft\":\n case \"scaleFromSmallPrevMoveToRight\":\n case \"scaleFromSmallPrevMoveToTop\":\n case \"scaleFromSmallPrevMoveToBottom\":\n case \"rotateFall\":\n case \"rotateRoomLeftIn\":\n case \"rotateRoomRightIn\":\n case \"rotateRoomTopIn\":\n case \"rotateRoomBottomIn\":\n case \"rotateCubeLeftIn\":\n case \"rotateCubeRightIn\":\n case \"rotateCubeTopIn\":\n case \"rotateCubeBottomIn\":\n case \"rotateCarouselLeftIn\":\n case \"rotateCarouselRightIn\":\n case \"rotateCarouselTopIn\":\n case \"rotateCarouselBottomIn\":\n isForward() ? currentOnTop() : nextOnTop();\n break;\n case \"moveFromLeftPrevFade\":\n case \"moveFromRightPrevFade\":\n case \"moveFromTopPrevFade\":\n case \"moveFromBottomPrevFade\":\n case \"moveFromLeftPrevScaleToSmall\":\n case \"moveFromRightPrevScaleToSmall\":\n case \"moveFromTopPrevScaleToSmall\":\n case \"moveFromBottomPrevScaleToSmall\":\n case \"glueToLeft\":\n case \"glueToRight\":\n case \"glueToTop\":\n case \"glueToBottom\":\n isForward() ? nextOnTop() : currentOnTop();\n break;\n default:\n sameOnTop();\n break;\n }\n if (isValidPageIndex(currentPageIndex) && currentPageIndex == pageIndex) {\n pageElements[currentPageIndex].style.zIndex = `${currentZIndex}`;\n pageElements[currentPageIndex].style.visibility = \"visible\";\n }\n if (isValidPageIndex(nextPageIndex) && nextPageIndex == pageIndex) {\n pageElements[nextPageIndex].style.zIndex = `${nextZIndex}`;\n pageElements[nextPageIndex].style.visibility = \"visible\";\n }\n}\n\n/// css animation 与 js animation 有时间差\nfunction emitsEnd(pageIndex: number) {\n nextOnTop();\n if (pageIndex == currentPageIndex) {\n pageElements[currentPageIndex].style.zIndex = `${currentZIndex}`;\n pageElements[currentPageIndex].style.visibility = \"hidden\";\n }\n if (pageIndex == nextPageIndex) {\n pageElements[nextPageIndex].style.zIndex = `${nextZIndex}`;\n pageElements[nextPageIndex].style.visibility = \"visible\";\n onRouteCompletes.shift()?.();\n emits(\"routeChangeEnd\", currentPageIndex, nextPageIndex, pages.length);\n currentPageIndex = nextPageIndex;\n }\n}\n\nconst routesRef = ref();\nfunction renderPages(appendCount = 0, isReset = false) {\n if (!routesRef.value) {\n return;\n }\n let renderCount = 0;\n render(\n h(\n \"div\",\n {\n class: \"routes-pages\",\n style: {\n display: \"block\",\n width: \"100%\",\n height: \"100%\",\n overflow: \"hidden\",\n position: \"relative\"\n }\n },\n pages.map((page, index) => {\n /// 初始化\n const pageEffect = getPageEffect(props.effect, index);\n return h(\n \"div\",\n Object.assign(\n {\n class: \"routes-page\",\n style: {\n display: \"block\",\n width: \"100%\",\n height: \"100%\",\n overflow: \"hidden\",\n position: \"absolute\",\n top: \"0\",\n left: \"0\",\n backfaceVisibility: \"hidden\",\n transform: \"translate3d(0, 0, 0)\",\n transformStyle: \"preserve-3d\",\n visibility: currentPageIndex == index ? \"visible\" : \"hidden\",\n zIndex: isReset ? \"1\" : \"0\"\n }\n },\n page.pageKey\n ? { key: page.pageKey }\n : {\n /// 无 key 不会重复利用\n }\n ),\n h(\n Page,\n {\n // ...page.pageAttributes,\n effect: pageEffect,\n duration: getPageDuration(props.effect, index),\n easeFunction: getPageEaseFunction(props.effect, index),\n timingFunction: timingFunction,\n delay: getPageDelay(props.effect, index),\n onReady: (open, close) => {\n // console.log(\"onReady \", index);\n pageActions[index] = { open, close };\n /// 渲染结束\n if (++renderCount == appendCount) {\n onRenderComplete?.();\n emits(\"renderComplete\");\n }\n },\n onPageOpenStart: () => {\n // console.log(\"onPageOpenStart \", index);\n setRunningStyle(index);\n },\n onPageOpenEnd: () => {\n // console.log(\"onPageOpenEnd \", index);\n emitsEnd(index);\n },\n onPageCloseStart: () => {\n // console.log(\"onPageCloseStart \", index);\n setRunningStyle(index);\n },\n onPageCloseEnd: () => {\n // console.log(\"onPageCloseEnd \", index);\n emitsEnd(index);\n }\n },\n // () => h(page.component, page.attributes)\n {\n default: () =>\n page.component instanceof HTMLElement\n ? h(\n \"div\",\n {\n ...page.attributes,\n innerHTML: page.component.innerHTML /// ce 动态设置的 props 丢失 !\n }\n // elementsToVNodes(page.component)\n )\n : h(page.component, page.attributes, () => page.child)\n }\n )\n );\n })\n ),\n routesRef.value\n );\n pageElements = routesRef.value.children[0].children;\n}\n\nwatch(\n () => props.effect,\n () => {\n renderPages();\n }\n);\n\nfunction reset(resetPages: PageArgument[] = []) {\n pages = [...resetPages];\n pages.forEach((p) => {\n p.pageKey = p.pageKey || generateUUID();\n });\n onRenderComplete = () => {\n currentPageIndex = -1;\n goto(0);\n };\n renderPages(pages.length, true);\n}\n\nfunction push(page: PageArgument) {\n page.pageKey = page.pageKey || generateUUID();\n pages.push(page);\n onRenderComplete = () => {\n goto(pages.length - 1);\n };\n renderPages(1, pages.length == 1);\n}\n\nfunction pop() {\n if (pages.length <= 1) {\n return;\n }\n goto(pages.length - 2, () => {\n pages.splice(pages.length - 1, 1);\n /// pop 中 onRenderComplete 不会执行\n currentPageIndex = pages.length - 1;\n renderPages();\n });\n}\n\nfunction forward() {\n goto(currentPageIndex + 1);\n}\n\nfunction back() {\n goto(currentPageIndex - 1);\n}\n\nconst routeTaskQueue = new AsyncTaskQueue(1);\n\nfunction goto(index: number, cb?: () => void) {\n routeTaskQueue.addTask(\n () =>\n new Promise<void>((resolve) => {\n const onRouteComplete = () => {\n cb?.();\n resolve();\n };\n if (!isValidPageIndex(index)) {\n onRouteComplete();\n return;\n }\n nextPageIndex = index;\n if (nextPageIndex == currentPageIndex) {\n onRouteComplete();\n return;\n }\n /// 执行动画\n onRouteCompletes.push(onRouteComplete);\n /// 修改 page prop\n renderPages();\n emits(\n \"routeChangeStart\",\n currentPageIndex,\n nextPageIndex,\n pages.length\n );\n if (isForward()) {\n /// forward\n if (isValidPageIndex(currentPageIndex)) {\n pageActions[currentPageIndex].open();\n }\n if (isValidPageIndex(nextPageIndex)) {\n pageActions[nextPageIndex].open();\n }\n } else {\n /// back\n if (isValidPageIndex(currentPageIndex)) {\n pageActions[currentPageIndex].close();\n }\n if (isValidPageIndex(nextPageIndex)) {\n pageActions[nextPageIndex].close();\n }\n }\n })\n );\n}\n\ndefineExpose({\n reset,\n push,\n pop,\n forward,\n back,\n goto,\n currentPageIndex: () => currentPageIndex,\n totalPages: () => pages.length\n});\n</script>\n\n<template>\n <div\n class=\"routes\"\n ref=\"routesRef\"\n style=\"\n display: block;\n position: relative;\n width: 100%;\n height: 100%;\n overflow-x: hidden;\n overflow-y: hidden;\n \"\n ></div>\n</template>\n","<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport {\n useLoadImage,\n Timeline,\n ImageDisplayMode,\n computeImageDisplayRect,\n getViewportSize,\n Easing\n} from \"@zyzgroup/core-web\";\nimport Container from \"./Container.vue\";\nimport Pop from \"./Pop.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n name: \"Image\",\n customOptions: { Container, Pop },\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n src: string;\n mode?: ImageDisplayMode;\n dur?: number;\n bgColor?: string;\n openImageDetailWhenClick?: boolean;\n }>(),\n {\n mode: \"scaleToFill\",\n dur: 300,\n bgColor: \"transparent\",\n openImageDetailWhenClick: true\n }\n);\n\nconst emits = defineEmits<{\n (event: \"settled\", x: number, y: number, width: number, height: number): void;\n}>();\n\nconst tl = new Timeline({\n frameDuration: props.dur\n});\n\nconst popX = ref(0);\nconst popY = ref(0);\nconst popWidth = ref(0);\nconst popHeight = ref(0);\n\nconst finalX = ref(0);\nconst finalY = ref(0);\nconst finalWidth = ref(0);\nconst finalHeight = ref(0);\n\nconst isCORS = ref(true);\n\nconst sourceWidth = ref(0);\nconst sourceHeight = ref(0);\n/// 初始化获取图片信息\nuseLoadImage(props.src)\n .then((info: { width: number; height: number; aspectRatio: number }) => {\n sourceWidth.value = info.width;\n sourceHeight.value = info.height;\n setImageWidthHeight();\n })\n .catch(() => {\n isCORS.value = false;\n });\n\nconst wrapWidth = ref(0);\nconst wrapHeight = ref(0);\nconst outter = (controller) => {\n wrapWidth.value = controller.rect.width;\n wrapHeight.value = controller.rect.height;\n setImageWidthHeight();\n};\n\nconst showWidth = ref(0);\nconst showHeight = ref(0);\nfunction setImageWidthHeight() {\n if (\n !wrapWidth.value ||\n !wrapHeight.value ||\n !sourceWidth.value ||\n !sourceHeight.value\n ) {\n return;\n }\n const wrapImageRect = computeImageDisplayRect(\n props.mode,\n sourceWidth.value,\n sourceHeight.value,\n wrapWidth.value,\n wrapHeight.value\n );\n showWidth.value = wrapImageRect.width;\n showHeight.value = wrapImageRect.height;\n\n const { width: viewportWidth, height: viewportHeight } = getViewportSize();\n const viewportImageRect = computeImageDisplayRect(\n \"aspectFit\",\n sourceWidth.value,\n sourceHeight.value,\n viewportWidth,\n viewportHeight\n );\n finalWidth.value = viewportImageRect.width;\n finalHeight.value = viewportImageRect.height;\n finalX.value = (viewportWidth - finalWidth.value) / 2;\n finalY.value = (viewportHeight - finalHeight.value) / 2;\n}\n\nconst inner = (controller) => {\n emits(\"settled\", controller.rect.x, controller.rect.y, controller.rect.width, controller.rect.height);\n};\n\n// const app = inject(\"app\", null) as unknown as App<Element>;\n\nlet isOpenPop = false;\nconst imageRef = ref();\nconst popRef = ref();\nasync function clickSourceImage() {\n if (!props.openImageDetailWhenClick) {\n return;\n }\n const showSize = await imageRef.value.getRect();\n tl.clear();\n tl.addTween(\n {\n left: showSize.x,\n top: showSize.y,\n width: showSize.width,\n height: showSize.height\n },\n {\n left: finalX.value,\n top: finalY.value,\n width: finalWidth.value,\n height: finalHeight.value\n },\n {\n easeFunction: Easing.Quadratic.Out,\n onUpdate(data) {\n popX.value = data.left;\n popY.value = data.top;\n popWidth.value = data.width;\n popHeight.value = data.height;\n },\n onComplete() {\n if (isOpenPop) {\n popRef.value.close();\n }\n isOpenPop = !isOpenPop;\n }\n }\n );\n if (!isOpenPop) {\n popRef.value.open();\n tl.play();\n }\n}\n\nfunction clickOverlay() {\n if (isOpenPop) {\n tl.reverse();\n }\n}\n\ndefineExpose({});\n</script>\n\n<template>\n <Container\n class=\"image\"\n type=\"full\"\n :style=\"{ backgroundColor: props.bgColor }\"\n @ready=\"outter\"\n @update=\"outter\"\n @click=\"clickSourceImage\"\n >\n <Container\n v-if=\"isCORS\"\n class=\"image-inner\"\n ref=\"imageRef\"\n type=\"shrink\"\n :style=\"{\n width: showWidth + 'px',\n height: showHeight + 'px',\n backgroundImage: `url(${props.src})`,\n backgroundSize: `${showWidth}px ${showHeight}px`\n }\"\n @ready=\"inner\"\n @update=\"inner\"\n ></Container>\n <Container v-if=\"!isCORS\" type=\"shrink\">\n <img :src=\"props.src\" :style=\"{display: 'block', objectFit: 'contain'}\"></img>\n </Container>\n <Pop\n ref=\"popRef\"\n direction-from=\"absolute\"\n :absolute-left=\"`${popX}px`\"\n :absolute-top=\"`${popY}px`\"\n :absolute-width=\"`${popWidth}px`\"\n :absolute-height=\"`${popHeight}px`\"\n :close-when-click-overlay=\"false\"\n @clickOverlay=\"clickOverlay\"\n >\n <div\n class=\"image-pop\"\n :style=\"{\n width: '100%',\n height: '100%',\n backgroundImage: `url(${props.src})`,\n backgroundSize: '100% 100%'\n }\"\n ></div>\n </Pop>\n </Container>\n</template>\n\n<style scoped>\n.image {\n overflow: hidden;\n display: flex !important;\n justify-content: center;\n align-items: center;\n}\n.image-inner,\n.image-pop {\n background-repeat: no-repeat;\n background-position: center center;\n /* background-size: contain; */\n}\n/*\n.none {\n object-fit: none;\n}\n.fill {\n object-fit: fill;\n}\n.cover {\n object-fit: cover;\n}\n.contain {\n object-fit: contain;\n}\n.scale-down {\n object-fit: scale-down;\n}\n*/\n</style>\n","<script setup lang=\"ts\">\nimport { ref, h } from \"vue\";\nimport { ElementEventBusController, hasClass } from \"@zyzgroup/core-web\";\nimport Routes, { SupportedRouteEffect } from \"./Routes.vue\";\nimport Pop from \"./Pop.vue\";\nimport Image from \"./Image.vue\";\nimport Container from \"./Container.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: { Image, Container, Routes },\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n urls: string[];\n effect?: SupportedRouteEffect;\n }>(),\n {\n urls: () => [],\n effect: \"moveToLeftFade\"\n }\n);\n\nconst emits = defineEmits<{\n // (event: \"click\"): void;\n}>();\n\nconst currentIndex = ref(0);\nfunction routeChangeEnd(_: number, toPageIndex: number) {\n currentIndex.value = toPageIndex;\n}\n\nconst routesRef = ref();\nconst ready = (controller: ElementEventBusController) => {\n controller.eb.on(\"panLeft\", () => {\n routesRef.value?.forward();\n });\n controller.eb.on(\"panRight\", () => {\n routesRef.value?.back();\n });\n routesRef.value.reset(\n props.urls.map((url) => ({\n component: h(Image, {\n mode: \"aspectFit\",\n src: url,\n openImageDetailWhenClick: false\n })\n }))\n );\n};\n\nconst popRef = ref();\nfunction open() {\n popRef.value?.open();\n}\nfunction close() {\n popRef.value?.close();\n}\n\nconst checkClose = (e: Event) => {\n // console.log(e.target);\n if (e.target && hasClass(e.target as HTMLElement, \"image\")) {\n close();\n }\n};\n\ndefineExpose({ open, close });\n</script>\n\n<template>\n <Pop\n ref=\"popRef\"\n directionFrom=\"absolute\"\n @click=\"checkClose\"\n >\n <div\n v-if=\"props.urls.length > 1\"\n style=\"\n position: absolute;\n top: 30px;\n left: 50%;\n transform: translate(-50%, 0);\n color: #ffffff;\n font-size: 1em;\n z-index: 98;\n \"\n >\n {{ currentIndex + 1 }} / {{ props.urls.length }}\n </div>\n <Container\n style=\"\n position: absolute;\n top: 50%;\n transform: translate(0, -50%);\n width: 100%;\n height: 100%;\n z-index: 97;\n \"\n @ready=\"ready\"\n >\n <Routes\n ref=\"routesRef\"\n :effect=\"props.effect\"\n @routeChangeEnd=\"routeChangeEnd\"\n />\n </Container>\n </Pop>\n</template>\n","<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport Pop from \"../Pop.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: { Pop },\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n tel: string;\n }>(),\n {}\n);\n\nconst emits = defineEmits<{}>();\n\nconst el = ref();\nfunction open() {\n el.value?.open();\n}\nfunction close() {\n el.value?.close();\n}\ndefineExpose({ open, close });\n</script>\n\n<template>\n <Pop\n directionFrom=\"bottom\"\n :closeWhenClickOverlay=\"false\"\n ref=\"el\"\n >\n <div class=\"pop-tel\">\n <div>{{ tel }}</div>\n <a\n class=\"pop-tel-call\"\n @click=\"close\"\n :href=\"`tel:${tel}`\"\n >\n 呼叫\n </a>\n <div\n class=\"pop-tel-cancel\"\n @click=\"close\"\n >\n 取消\n </div>\n </div>\n </Pop>\n</template>\n\n<style scoped>\n.pop-tel {\n background-color: #ffffff;\n color: #333333;\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n}\n.pop-tel > div,\n.pop-tel-call {\n display: block;\n height: 64px;\n line-height: 64px;\n font-size: 18px;\n text-align: center;\n}\n.pop-tel-cancel,\n.pop-tel-call {\n border-top: 1px solid #e6e6e6;\n}\n.pop-tel > div:nth-child(1) {\n color: #999999;\n}\n.pop-tel-call {\n color: #333333;\n font-weight: bold;\n}\n.pop-tel-call,\n.pop-tel-call:link,\n.pop-tel-call:visited,\n.pop-tel-call:hover,\n.pop-tel-call:active {\n /* 禁止长按链接与图片弹出菜单 */\n -webkit-touch-callout: none;\n text-decoration: none;\n}\n.pop-tel-call:focus {\n outline: none;\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { ref, onMounted, inject } from \"vue\";\nimport { Context } from \"@zyzgroup/core-web\";\nimport { useRouter } from \"../../hooks\";\nimport LayoutPage from \"../layout/LayoutPage.vue\";\nimport Footer from \"./Footer.vue\";\nimport PlateDisplay from \"../PlateDisplay.vue\";\nimport ImageView from \"../ImageView.vue\";\nimport ViewDocument from \"../form/ViewDocument.vue\";\nimport PopTel from \"../pop/PopTel.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: {\n LayoutPage,\n Footer,\n PlateDisplay,\n ViewDocument,\n PopTel,\n ImageView\n },\n inheritAttrs: true\n});\n\nconst router = useRouter();\n\nlet billsn = ref(0);\nlet fee = ref(0);\n\nfunction viewDocument() {\n router.push({\n name: \"view-document\",\n params: {\n title: \"收费标准\",\n src: encodeURIComponent(\n \"https://erichd2.oss-cn-shanghai.aliyuncs.com/0000/0002/2159\"\n )\n }\n });\n}\n\nconst popTelEl = ref();\nfunction call() {\n popTelEl.value?.open();\n}\n\nconst imageViewEl = ref();\nfunction viewPhotos() {\n imageViewEl.value?.open();\n}\n\nconst context = inject<Context>(\"context\");\n\nonMounted(() => {\n context.axios\n .post(`/api/v6/lot/740/getwithorder6`, {\n openid: \"quickpassapp\"\n })\n .then((result) => {\n console.log(result);\n console.log(JSON.stringify(result));\n billsn.value = result.data.bill.sn;\n fee.value = result.data.bill.fee;\n })\n .catch((result) => {\n console.log(result);\n console.log(JSON.stringify(result));\n });\n});\n</script>\n\n<template>\n <LayoutPage class=\"lot\">\n <div class=\"lot-main-bg\"></div>\n <div class=\"lot-main\">\n <div>若临测试泊位机器人停车场</div>\n <div>\n <div></div>\n <div>编号</div>\n <div></div>\n </div>\n <div>\n <span>103</span>\n <span>003</span>\n </div>\n <div>\n <!-- <div>停车场主页</div>\n <div>更换附近车位</div>\n <div @click=\"viewDocument\">收费标准</div> -->\n </div>\n <div class=\"lot-detail\">\n <div>\n <div>待支付</div>\n <div class=\"red\">¥{{ (fee / 100).toFixed(2) }}</div>\n </div>\n <!-- <div>\n <div>已支付</div>\n <div>¥0.01</div>\n </div> -->\n <div>\n <div>订单编号</div>\n <div>33333333333</div>\n </div>\n <div>\n <div>开始时间</div>\n <div>2025-04-08 09:41:25</div>\n </div>\n <div>\n <div>停车时长</div>\n <div>1小时53分钟15秒</div>\n </div>\n <!-- <div>\n <div>优惠券</div>\n <div class=\"red\">1分钟</div>\n </div>\n <div>\n <div>优惠信息</div>\n <div class=\"red\">xxxx</div>\n </div> -->\n <!-- <div>\n <div>包月开始时间</div>\n <div>2025-04-08 09:41:25</div>\n </div>\n <div>\n <div>包月结束时间</div>\n <div>2025-04-08 09:41:25</div>\n </div> -->\n <div class=\"lot-detail-gap\"></div>\n <div>\n <div>车牌号</div>\n <div class=\"bold\">\n <PlateDisplay\n plate=\"苏U77777\"\n plate-type=\"b\"\n ></PlateDisplay>\n </div>\n </div>\n <!-- <div>\n <div>现场照片</div>\n <div @click=\"viewPhotos\">查看</div>\n </div> -->\n </div>\n <div class=\"lot-actions\">\n <div @click=\"call\">联系客服</div>\n </div>\n </div>\n <template #footer><Footer :billsn=\"billsn\"></Footer></template>\n <template #global>\n <PopTel\n tel=\"15851575410\"\n ref=\"popTelEl\"\n ></PopTel>\n <ImageView\n :urls=\"[\n 'https://erichd2.oss-cn-shanghai.aliyuncs.com/0000/0002/2159',\n 'https://erichd2.oss-cn-shanghai.aliyuncs.com/0000/0002/2159'\n ]\"\n ref=\"imageViewEl\"\n ></ImageView>\n </template>\n </LayoutPage>\n</template>\n\n<style scoped>\n.lot-main-bg {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n height: 5.2rem;\n border-bottom-left-radius: 2rem 0.5rem;\n border-bottom-right-radius: 2rem 0.5rem;\n background: linear-gradient(180deg, #5a82f0 0%, #66b3ff 100%);\n}\n.lot-main {\n position: relative;\n z-index: 2;\n width: 100%;\n overflow: hidden;\n box-sizing: border-box;\n line-height: 1;\n color: #ffffff;\n padding: 0 0.3rem;\n margin-bottom: 0.3rem;\n text-align: center;\n}\n.lot-main > div:nth-child(1) {\n font-size: 0.32rem;\n padding-top: 0.4rem;\n word-break: break-all;\n font-weight: bold;\n}\n.lot-main > div:nth-child(2) > div:nth-child(1) {\n width: 2.4rem;\n height: 0.04rem;\n background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, #ffffff 100%);\n}\n.lot-main > div:nth-child(2) > div:nth-child(3) {\n width: 2.4rem;\n height: 0.04rem;\n background: linear-gradient(90deg, #ffffff 0%, rgba(255, 255, 255, 0) 100%);\n}\n.lot-main > div:nth-child(2) > div:nth-child(2) {\n width: 1rem;\n font-size: 0.28rem;\n line-height: 0.32rem;\n}\n.lot-main > div:nth-child(2) {\n display: flex;\n align-items: center;\n margin: 0.28rem auto 0;\n width: 4.8rem;\n position: relative;\n}\n.lot-main > div:nth-child(3) {\n font-family: \"D-DINExp-Bold-number\";\n margin-top: 0.12rem;\n font-size: 0.8rem;\n letter-spacing: 0.06rem;\n}\n.lot-main > div:nth-child(3) > span + span {\n margin-left: 0.3rem;\n}\n.lot-main > div:nth-child(4) {\n display: flex;\n justify-content: space-between;\n font-size: 0.28rem;\n line-height: 0.28rem;\n margin: 0.3rem 0;\n}\n.lot-main > div:nth-child(4) > div {\n flex: 1 1 auto;\n text-align: center;\n}\n.lot-main > div:nth-child(4) > div + div {\n border-left: 1px solid rgba(255, 255, 255, 0.4);\n}\n.lot-detail {\n position: relative;\n background: #ffffff;\n box-shadow: 0 0.04rem 0.1rem rgba(0, 0, 0, 0.1);\n border-radius: 0.08rem;\n padding: 0 0.3rem 0.1rem;\n font-size: 0.28rem;\n color: #666666;\n}\n.lot-detail > div {\n line-height: 0.4rem;\n margin: 0.2rem auto;\n display: flex;\n justify-content: space-between;\n}\n.lot-detail > div:nth-child(1) {\n border-bottom: 1px solid var(--yz-xg-border-color);\n line-height: 0.88rem;\n margin: 0 0 0.2rem;\n font-weight: bold;\n}\n.lot-detail > div:nth-child(1) > div:nth-child(2) {\n font-size: 0.4rem;\n}\n.lot-detail > div > div:nth-child(1) {\n flex: 0 0 auto;\n padding-right: 0.2rem;\n}\n.lot-detail > div > div:nth-child(2) {\n color: #333333;\n}\n.lot-detail-gap {\n border-top: 1px solid var(--yz-xg-border-color);\n}\n.lot-actions {\n margin: 0.2rem 0;\n background: #ffffff;\n box-shadow: 0px 0.04rem 0.1rem rgba(0, 0, 0, 0.1);\n border-radius: 0.08rem;\n display: flex;\n align-items: center;\n font-size: 0.28rem;\n}\n.lot-actions > div {\n flex: 1;\n line-height: 0.88rem;\n position: relative;\n cursor: pointer;\n color: var(--yz-xg-primary);\n text-align: center;\n font-weight: 700;\n}\n</style>\n","<template>\n <div\n class=\"resize-observer\"\n tabindex=\"-1\"\n />\n</template>\n\n<script>\nimport { isIE } from \"@zyzgroup/core-web\";\n\nfunction initCompat() {\n if (!initCompat.init) {\n initCompat.init = true;\n }\n}\n\nexport default {\n name: \"ResizeObserver\",\n\n props: {\n emitOnMount: {\n type: Boolean,\n default: true\n },\n ignoreWidth: {\n type: Boolean,\n default: false\n },\n ignoreHeight: {\n type: Boolean,\n default: false\n }\n },\n\n mounted() {\n initCompat();\n this.$nextTick(() => {\n this._w = this.$el.offsetWidth;\n this._h = this.$el.offsetHeight;\n if (this.emitOnMount) {\n this.emitSize();\n }\n });\n const object = document.createElement(\"object\");\n this._resizeObject = object;\n object.setAttribute(\"aria-hidden\", \"true\");\n object.setAttribute(\"tabindex\", -1);\n object.onload = this.addResizeHandlers;\n object.type = \"text/html\";\n if (isIE) {\n this.$el.appendChild(object);\n }\n object.data = \"about:blank\";\n if (!isIE) {\n this.$el.appendChild(object);\n }\n },\n\n beforeDestroy() {\n this.removeResizeHandlers();\n },\n\n methods: {\n compareAndNotify() {\n if (\n (!this.ignoreWidth && this._w !== this.$el.offsetWidth) ||\n (!this.ignoreHeight && this._h !== this.$el.offsetHeight)\n ) {\n this._w = this.$el.offsetWidth;\n this._h = this.$el.offsetHeight;\n this.emitSize();\n }\n },\n\n emitSize() {\n this.$emit(\"resize\", {\n width: this._w,\n height: this._h\n });\n },\n\n addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener(\n \"resize\",\n this.compareAndNotify\n );\n this.compareAndNotify();\n },\n\n removeResizeHandlers() {\n if (this._resizeObject && this._resizeObject.onload) {\n if (!isIE && this._resizeObject.contentDocument) {\n this._resizeObject.contentDocument.defaultView.removeEventListener(\n \"resize\",\n this.compareAndNotify\n );\n }\n this.$el.removeChild(this._resizeObject);\n this._resizeObject.onload = null;\n this._resizeObject = null;\n }\n }\n }\n};\n</script>\n\n<style scoped>\n.resize-observer {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n border: none;\n background-color: transparent;\n pointer-events: none;\n display: block;\n overflow: hidden;\n opacity: 0;\n}\n\n/* .resize-observer >>> object */\n.resize-observer :deep(object) {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n display: block;\n overflow: hidden;\n pointer-events: none;\n z-index: -1;\n}\n</style>\n","/**\n * @author mrdoob / http://mrdoob.com/\n */\n\nvar Stats = function () {\n var mode = 0;\n\n var container = document.createElement(\"div\");\n container.style.cssText =\n \"position:fixed;top:0;right:0;cursor:pointer;opacity:0.9;z-index:10000\";\n container.addEventListener(\n \"click\",\n function (event) {\n event.preventDefault();\n showPanel(++mode % container.children.length);\n },\n false\n );\n\n //\n\n function addPanel(panel) {\n container.appendChild(panel.dom);\n return panel;\n }\n\n function showPanel(id) {\n for (var i = 0; i < container.children.length; i++) {\n container.children[i].style.display = i === id ? \"block\" : \"none\";\n }\n\n mode = id;\n }\n\n //\n\n var beginTime = (performance || Date).now(),\n prevTime = beginTime,\n frames = 0;\n\n var fpsPanel = addPanel(new Stats.Panel(\"FPS\", \"#0ff\", \"#002\"));\n var msPanel = addPanel(new Stats.Panel(\"MS\", \"#0f0\", \"#020\"));\n\n if (self.performance && self.performance.memory) {\n var memPanel = addPanel(new Stats.Panel(\"MB\", \"#f08\", \"#201\"));\n }\n\n showPanel(0);\n\n return {\n REVISION: 16,\n\n dom: container,\n\n addPanel: addPanel,\n showPanel: showPanel,\n\n begin: function () {\n beginTime = (performance || Date).now();\n },\n\n end: function () {\n frames++;\n\n var time = (performance || Date).now();\n\n msPanel.update(time - beginTime, 200);\n\n if (time > prevTime + 1000) {\n fpsPanel.update((frames * 1000) / (time - prevTime), 100);\n\n prevTime = time;\n frames = 0;\n\n if (memPanel) {\n var memory = performance.memory;\n memPanel.update(\n memory.usedJSHeapSize / 1048576,\n memory.jsHeapSizeLimit / 1048576\n );\n }\n }\n\n return time;\n },\n\n update: function () {\n beginTime = this.end();\n },\n\n // Backwards Compatibility\n\n domElement: container,\n setMode: showPanel\n };\n};\n\nStats.Panel = function (name, fg, bg) {\n var min = Infinity,\n max = 0,\n round = Math.round;\n var PR = round(window.devicePixelRatio || 1);\n\n var WIDTH = 80 * PR,\n HEIGHT = 48 * PR,\n TEXT_X = 3 * PR,\n TEXT_Y = 2 * PR,\n GRAPH_X = 3 * PR,\n GRAPH_Y = 15 * PR,\n GRAPH_WIDTH = 74 * PR,\n GRAPH_HEIGHT = 30 * PR;\n\n var canvas = document.createElement(\"canvas\");\n canvas.width = WIDTH;\n canvas.height = HEIGHT;\n canvas.style.cssText = \"width:80px;height:48px\";\n\n var context = canvas.getContext(\"2d\");\n context.font = \"bold \" + 9 * PR + \"px Helvetica,Arial,sans-serif\";\n context.textBaseline = \"top\";\n\n context.fillStyle = bg;\n context.fillRect(0, 0, WIDTH, HEIGHT);\n\n context.fillStyle = fg;\n context.fillText(name, TEXT_X, TEXT_Y);\n context.fillRect(GRAPH_X, GRAPH_Y, GRAPH_WIDTH, GRAPH_HEIGHT);\n\n context.fillStyle = bg;\n context.globalAlpha = 0.9;\n context.fillRect(GRAPH_X, GRAPH_Y, GRAPH_WIDTH, GRAPH_HEIGHT);\n\n return {\n dom: canvas,\n\n update: function (value, maxValue) {\n min = Math.min(min, value);\n max = Math.max(max, value);\n\n context.fillStyle = bg;\n context.globalAlpha = 1;\n context.fillRect(0, 0, WIDTH, GRAPH_Y);\n context.fillStyle = fg;\n context.fillText(\n round(value) + \" \" + name + \" (\" + round(min) + \"-\" + round(max) + \")\",\n TEXT_X,\n TEXT_Y\n );\n\n context.drawImage(\n canvas,\n GRAPH_X + PR,\n GRAPH_Y,\n GRAPH_WIDTH - PR,\n GRAPH_HEIGHT,\n GRAPH_X,\n GRAPH_Y,\n GRAPH_WIDTH - PR,\n GRAPH_HEIGHT\n );\n\n context.fillRect(GRAPH_X + GRAPH_WIDTH - PR, GRAPH_Y, PR, GRAPH_HEIGHT);\n\n context.fillStyle = bg;\n context.globalAlpha = 0.9;\n context.fillRect(\n GRAPH_X + GRAPH_WIDTH - PR,\n GRAPH_Y,\n PR,\n round((1 - value / maxValue) * GRAPH_HEIGHT)\n );\n }\n };\n};\n\nexport { Stats as default };\n","<script setup>\nimport { ref, onMounted } from \"vue\";\nimport { requestAnimationFrameCycle } from \"@zyzgroup/core-web\";\nimport Stats from \"@lib/third/stats/stats.js\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: {},\n inheritAttrs: true\n});\n\nconst containerRef = ref();\n\nonMounted(() => {\n const stats = new Stats();\n stats.domElement.style.margin = \"1em\";\n containerRef.value.appendChild(stats.domElement);\n requestAnimationFrameCycle(() => {\n stats.update();\n return true;\n });\n});\n\ndefineExpose({});\n</script>\n\n<template>\n <div ref=\"containerRef\"></div>\n</template>\n","<script setup lang=\"tsx\">\nconst props = withDefaults(\n defineProps<{\n width?: string;\n height?: string;\n color?: string;\n }>(),\n {\n width: \"1em\",\n color: \"#cccccc\"\n }\n);\n</script>\n\n<template>\n <svg\n viewBox=\"0 0 20 20\"\n :width=\"props.width\"\n :height=\"props.height || props.width\"\n style=\"transform-origin: center\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z\"\n clip-rule=\"evenodd\"\n :fill=\"props.color\"\n />\n </svg>\n</template>\n","<script setup lang=\"ts\">\nimport { ref, watchEffect, onMounted, nextTick } from \"vue\";\nimport Container from \"./Container.vue\";\nimport SVGDown from \"./svg/SVGDown.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: { Container, SVGDown },\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n initOpen?: boolean;\n titleHeight?: string;\n bgColor?: string;\n fontColor?: string;\n borderColor?: string;\n borderRadius?: string;\n padding?: string;\n duration?: number;\n }>(),\n {\n initOpen: false,\n titleHeight: \"44px\",\n bgColor: \"#efefef\",\n fontColor: \"#333333\",\n borderColor: \"#dddddd\",\n borderRadius: \"4px\",\n padding: \"1em\",\n duration: 500\n }\n);\n\nconst emits = defineEmits<{\n (event: \"open\"): void;\n (event: \"close\"): void;\n}>();\n\nconst content = ref();\nconst contentMaxHeight = ref(Number.MAX_SAFE_INTEGER + \"px\");\nconst open = ref(true);\n\nonMounted(() => {\n nextTick(() => {\n contentMaxHeight.value =\n content.value.getBoundingClientRect().height + \"px\";\n open.value = props.initOpen;\n });\n});\n\nfunction toggleOpen() {\n open.value = !open.value;\n if (open.value) {\n emits(\"open\");\n } else {\n emits(\"close\");\n }\n}\n\nconst rotate = ref(0);\nwatchEffect(() => {\n rotate.value = open.value ? 0 : -90;\n});\n\ndefineExpose({});\n</script>\n\n<template>\n <Container>\n <div\n class=\"accordion\"\n :style=\"{\n background: props.bgColor,\n color: props.fontColor,\n borderRadius: props.borderRadius\n }\"\n >\n <div\n class=\"accordion-title\"\n @click=\"toggleOpen\"\n :style=\"{\n height: props.titleHeight,\n lineHeight: props.titleHeight,\n margin: `0 ${props.padding}`,\n transitionDelay: `${open ? 0 : props.duration}ms`,\n borderBottom: `${open ? 1 : 0}px solid ${props.borderColor}`\n }\"\n >\n <slot name=\"title\">title</slot>\n <SVGDown\n class=\"arrow\"\n :style=\"{\n transition: `transform ${props.duration}ms ease-in-out`,\n transform: `rotate(${rotate}deg)`\n }\"\n ></SVGDown>\n </div>\n\n <div\n class=\"accordion-content\"\n ref=\"content\"\n :style=\"{\n margin: `0 ${props.padding}`,\n transition: `max-height ${props.duration}ms ease-in-out`,\n maxHeight: open ? contentMaxHeight : '0'\n }\"\n >\n <slot name=\"content\"></slot>\n </div>\n </div>\n </Container>\n</template>\n\n<style scoped>\n.accordion {\n width: 100%;\n font-size: 1em;\n position: relative;\n overflow: hidden;\n}\n.accordion-title {\n display: flex;\n justify-content: space-between;\n align-items: center;\n user-select: none;\n cursor: pointer;\n}\n.accordion-content {\n word-break: break-all;\n overflow: hidden;\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { ref } from \"vue\";\n\nconst props = withDefaults(\n defineProps<{\n bgColor?: string;\n progressColor?: string;\n borderColor?: string;\n borderRadius?: string;\n showText?: boolean;\n }>(),\n {\n bgColor: \"#efefef\",\n progressColor: \"#a0dde9\",\n borderColor: \"#eeeeee\",\n borderRadius: \"4px\",\n showText: false\n }\n);\n\nconst emits = defineEmits<{\n (event: \"complete\", currentPercent: number): void;\n}>();\n\nconst barPercent = ref(0);\n\nfunction goto(toValue: number) {\n barPercent.value = Math.min(Math.max(0, toValue), 100);\n}\n\ndefineExpose({ goto });\n</script>\n\n<template>\n <div\n class=\"bar\"\n :style=\"{\n border: `1px solid ${props.borderColor}`,\n borderRadius: props.borderRadius,\n backgroundColor: props.bgColor\n }\"\n >\n <div\n class=\"bar-inner\"\n :style=\"{ width: barPercent + '%', backgroundColor: props.progressColor }\"\n >\n {{ props.showText ? barPercent + \"%\" : \"\" }}\n </div>\n </div>\n</template>\n\n<style scoped>\n.bar {\n position: relative;\n overflow: hidden;\n width: 100%;\n height: 100%;\n}\n.bar-inner {\n position: absolute;\n top: 0;\n left: 0;\n width: 0;\n height: 100%;\n text-align: center;\n font-size: 12px;\n display: flex;\n justify-content: center;\n align-items: center;\n color: #666666;\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { ref, onUnmounted } from \"vue\";\nimport {\n useScroll$,\n getVerticalScrollPercentInPage,\n getDocumentElementPosition\n} from \"@zyzgroup/core-web\";\nimport ProgressBar from \"./ProgressBar.vue\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: { ProgressBar },\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n bgColor?: string;\n progressColor?: string;\n borderColor?: string;\n borderRadius?: string;\n duringTimeGap?: number;\n showText?: boolean;\n }>(),\n {\n bgColor: \"#efefef\",\n progressColor: \"#07B56D\",\n borderColor: \"transparent\",\n borderRadius: \"4px\",\n duringTimeGap: 1,\n showText: false\n }\n);\n\nconst emits = defineEmits<{\n (event: \"progress\", percent: number): void;\n}>();\n\nconst bar = ref();\nconst subscription = useScroll$().subscribe((e) => {\n const percent = getVerticalScrollPercentInPage();\n emits(\"progress\", percent);\n bar.value?.goto(percent);\n});\n\nonUnmounted(() => {\n subscription.unsubscribe();\n});\n\ndefineExpose({});\n</script>\n\n<template>\n <div class=\"page-vertical-scroll-progress-bar\">\n <ProgressBar\n ref=\"bar\"\n :bgColor=\"props.bgColor\"\n :progressColor=\"props.progressColor\"\n :borderColor=\"props.borderColor\"\n :borderRadius=\"props.borderRadius\"\n :duringTimeGap=\"props.duringTimeGap\"\n :showText=\"props.showText\"\n ></ProgressBar>\n </div>\n</template>\n\n<style scoped>\n.page-vertical-scroll-progress-bar {\n position: relative;\n overflow: hidden;\n width: 100%;\n height: 100%;\n}\n</style>\n","<script setup lang=\"tsx\">\nimport { onMounted, onUnmounted, ref, watch, watchEffect } from \"vue\";\nimport {\n getInnerText,\n useClipboard,\n useResize$,\n tap$,\n DrawShape,\n DrawType,\n DrawContext,\n useDraw,\n requestAnimationFrameCycle\n} from \"@zyzgroup/core-web\";\n\n// for merge ce shadow-root styles\ndefineOptions({\n customOptions: {},\n inheritAttrs: true\n});\n\nconst props = withDefaults(\n defineProps<{\n type?: DrawType | \"div\";\n shapes?: DrawShape[];\n loop?: boolean;\n // 是否支持复制文字\n supportCopyToClipboard?: boolean;\n }>(),\n {\n type: \"div\",\n shapes: () => [],\n loop: false,\n supportCopyToClipboard: false\n }\n);\n\nconst emits = defineEmits<{\n (event: \"init\", box: { el: HTMLElement; rect: DOMRect }): void;\n (event: \"resize\", box: { el: HTMLElement; rect: DOMRect }): void;\n (event: \"frameInit\", drawContext: DrawContext): void;\n (event: \"frame\", drawContext: DrawContext): void;\n (event: \"copyToClipboardSuccess\", text: string): void;\n (event: \"copyToClipboardError\", err: string): void;\n}>();\n\nconst r = ref();\n\nconst isDrawType = props.type !== \"div\";\nlet drawContext;\n\nlet isEmitInit = false;\nlet isEmitFrameInit = false;\nlet resizeSubscription;\nlet tapSubscription;\nlet cancelAnimationFrame;\n\n// props.shapes 改变后没有触发?\nwatch(\n () => props.shapes,\n () => {\n isEmitFrameInit = false;\n }\n);\n\nwatchEffect(() => {\n if (!r.value) {\n // not mounted yet, or the element was unmounted (e.g. by v-if)\n return;\n }\n if (resizeSubscription) {\n return;\n }\n\n resizeSubscription = useResize$(r.value).subscribe((rect: DOMRect) => {\n const box = { el: r.value, rect };\n if (!isEmitInit) {\n emits(\"init\", box);\n isEmitInit = true;\n if (isDrawType) {\n drawContext = useDraw(box.el, props.type);\n cancelAnimationFrame = requestAnimationFrameCycle(() => {\n if (!isEmitFrameInit) {\n emits(\"frameInit\", drawContext);\n isEmitFrameInit = true;\n }\n emits(\"frame\", drawContext);\n drawContext.draw(...props.shapes);\n return props.loop;\n });\n }\n }\n emits(\"resize\", box);\n });\n\n if (props.supportCopyToClipboard) {\n tapSubscription = tap$(r.value).subscribe(() => {\n const text = getInnerText(r.value);\n useClipboard(text)\n .then(() => {\n emits(\"copyToClipboardSuccess\", text);\n })\n .catch((err) => {\n emits(\"copyToClipboardError\", err.toString());\n });\n });\n }\n});\n\nonMounted(() => {});\n\nonUnmounted(() => {\n resizeSubscription?.unsubscribe();\n tapSubscription?.unsubscribe();\n cancelAnimationFrame?.();\n});\n\n// 不推荐使用,推荐使用 @resize\ndefineExpose({\n getElement: () => r.value,\n getRect: () => r.value.getBoundingClientRect()\n});\n</script>\n\n<template>\n <!-- v-bind=\"$attrs\" -->\n <div\n ref=\"r\"\n class=\"box\"\n :style=\"{\n position: 'relative',\n boxSizing: 'border-box'\n /* overflow: 'hidden', */\n /* pointer-events: none; */\n }\"\n >\n <slot></slot>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { onMounted, reactive, ref } from \"vue\";\nimport { flushArray } from \"@zyzgroup/core-common\";\nimport {\n ArrowShape,\n BallShape,\n Color,\n CrossShape,\n FoxShape,\n HeartShape,\n HeartVariantShape,\n LineShape,\n RabbitShape,\n RectShape,\n SegmentShapeCombo,\n ShipShapeCombo,\n SliderShapeCombo,\n StarShape,\n TreeShapeCombo,\n animateSpringMassShapes,\n gravitateShapes\n} from \"@zyzgroup/core-web\";\n\nimport ResizeObserver from \"../components/ResizeObserver.vue\";\nconst sizeChange = (_size: any) => {\n console.log(\"ResizeObserver\", _size.width, _size.height);\n};\n\nimport FPSStats from \"../components/FPSStats.vue\";\n\nimport Button from \"../components/Button.vue\";\nimport Accordion from \"../components/Accordion.vue\";\n\nimport PageVerticalScrollProgressBar from \"../components/form/PageVerticalScrollProgressBar.vue\";\n\nimport Box from \"../components/base/Box.vue\";\n\nlet SVGShapes = [];\nlet svgFrameInit = (d) => {};\nlet svgFrame = (d) => {};\n\nlet CanvasShapes = [];\nlet canvasFrameInit = (d) => {};\nlet canvasFrame = (d) => {};\n\nconst currentType = ref(\"shapes\");\nconst boxCases = [\n {\n name: \"shapes\",\n onClick: () => {\n currentType.value = \"shapes\";\n\n const marker = new BallShape({\n ballRadius: 4,\n attrs: {\n fill: \"#ff0000\"\n }\n });\n const markerClone = marker.clone();\n\n const line = new LineShape({\n lineLength: 100,\n lineDegree: 0,\n attrs: { stroke: Color.random().toString(), strokeWidth: \"1\" }\n });\n line.moveTo(100, 100);\n const lineClone = line.clone() as LineShape;\n\n const lineDegree = line.clone() as LineShape;\n lineDegree.rotateTo(30);\n const lineDegreeClone = lineDegree.clone() as LineShape;\n\n const p = line.intersection(lineDegree);\n if (p) {\n marker.moveTo(p.x, p.y);\n }\n const p2 = lineClone.intersection(lineDegreeClone);\n if (p2) {\n markerClone.moveTo(p2.x, p2.y);\n }\n\n const tree = new TreeShapeCombo(\n {},\n {\n attrs: { stroke: \"#ff0000\", strokeWidth: \"1\" },\n drag: {\n enable: true\n }\n }\n );\n tree.comboMove(100, 100);\n const treeClone = tree.clone();\n\n const treeRotate = tree.clone();\n treeRotate.setAttr(\"stroke\", \"#0000ff\");\n treeRotate.comboRotate(30);\n const treeRotateClone = treeRotate.clone();\n\n const rect = new RectShape({\n x: 100,\n y: 200,\n scale: 0.5,\n degree: 5,\n rectWidth: 100,\n rectHeight: 60,\n rectBorderRadius: 10,\n attrs: {\n fill: \"pink\",\n stroke: \"#ff0000\",\n strokeWidth: \"1\"\n },\n drag: {\n enable: true\n }\n // strokeArmyAnts: true\n });\n const rectClone = rect.clone();\n\n const heart = new HeartShape({\n x: 200,\n y: 200,\n scale: 0.5,\n degree: -10,\n attrs: {\n fill: Color.random().toString(),\n stroke: \"#ff0000\",\n strokeWidth: \"3\"\n },\n drag: {\n enable: true\n }\n // strokeArmyAnts: true\n });\n const heartClone = heart.clone();\n\n const heartVariant = new HeartVariantShape({\n x: 220,\n y: 200,\n scale: 0.5,\n degree: 0,\n attrs: {\n fill: Color.random().toString(),\n stroke: \"#ff0000\",\n strokeWidth: \"3\"\n },\n drag: {\n enable: true\n }\n // strokeArmyAnts: true\n });\n const heartVariantClone = heartVariant.clone();\n\n const star = new StarShape({\n x: 240,\n y: 200,\n scale: 1,\n degree: 0,\n attrs: {\n fill: Color.random().toString()\n },\n drag: {\n enable: true\n }\n // strokeArmyAnts: true\n });\n const starClone = star.clone();\n\n const fox = new FoxShape({\n x: 260,\n y: 200,\n scale: 1,\n degree: 0,\n attrs: {\n fill: \"rgb(200,80,80)\",\n stroke: \"#ff0000\",\n strokeWidth: \"3\"\n },\n drag: {\n enable: true\n }\n // strokeArmyAnts: true\n });\n const foxClone = fox.clone();\n\n const rabbit = new RabbitShape({\n x: 300,\n y: 200,\n scale: 1,\n degree: 0,\n attrs: {\n fill: Color.random().toString(),\n stroke: \"#ff0000\",\n strokeWidth: \"1\"\n },\n drag: {\n enable: true\n }\n // strokeArmyAnts: true\n });\n const rabbitClone = rabbit.clone();\n\n const cross = new CrossShape({\n x: 320,\n y: 200,\n scale: 1,\n degree: 0,\n attrs: {\n fill: Color.random().toString()\n },\n drag: {\n enable: true\n }\n // strokeArmyAnts: true\n });\n const crossClone = cross.clone();\n\n const ship = new ShipShapeCombo(\n {\n showFlame: true\n },\n {\n attrs: {\n stroke: Color.random().toString()\n },\n drag: {\n enable: true\n }\n }\n );\n ship.comboMove(400, 100);\n ship.comboRotate(30);\n ship.comboScale(2);\n const shipClone = ship.clone();\n\n const segment = new SegmentShapeCombo(\n {\n segmentWidth: 100,\n segmentHeight: 20\n // segmentCornerRadius: 5\n },\n {\n attrs: {\n stroke: Color.random().toString()\n },\n drag: {\n enable: true\n }\n }\n );\n segment.comboMove(200, 100);\n segment.comboRotate(0);\n segment.comboScale(1);\n const segmentRotate = segment.clone();\n segmentRotate.comboRotate(30);\n const segmentClone = segment.clone();\n const segmentRotateClone = segmentRotate.clone();\n\n const slider = new SliderShapeCombo({\n sliderMin: 0,\n sliderMax: 200,\n sliderStep: 2,\n sliderDefaultValue: 10,\n sliderWidth: 200\n });\n slider.comboMove(250, 100);\n slider.comboRotate(30);\n slider.value$.subscribe((v) => {\n console.log(\"slider : \" + v);\n });\n const sliderClone = slider.clone() as SliderShapeCombo;\n sliderClone.value$.subscribe((v) => {\n console.log(\"sliderClone : \" + v);\n });\n\n SVGShapes = [\n line,\n lineDegree,\n tree,\n treeRotate,\n rect,\n heart,\n heartVariant,\n star,\n fox,\n rabbit,\n cross,\n ship,\n segment,\n segmentRotate,\n slider,\n marker\n ];\n CanvasShapes = [\n lineClone,\n lineDegreeClone,\n treeClone,\n treeRotateClone,\n rectClone,\n heartClone,\n heartVariantClone,\n starClone,\n foxClone,\n rabbitClone,\n crossClone,\n shipClone,\n segmentClone,\n segmentRotateClone,\n sliderClone,\n markerClone\n ];\n\n const frameInit = (d) => {};\n svgFrameInit = (d) => {\n frameInit(d);\n };\n canvasFrameInit = (d) => {\n frameInit(d);\n };\n svgFrame = (d) => {};\n canvasFrame = (d) => {};\n }\n },\n {\n name: \"checkCollision\",\n onClick: () => {\n currentType.value = \"checkCollision\";\n const ball1 = new BallShape({\n ballRadius: 30,\n attrs: {\n fill: Color.random().toString()\n },\n mass: 2,\n vx: 2\n });\n const ball1Clone = ball1.clone();\n const ball2 = new BallShape({\n ballRadius: 30,\n attrs: {\n fill: Color.random().toString()\n },\n mass: 1,\n vx: -2\n });\n const ball2Clone = ball2.clone();\n SVGShapes = [ball1, ball2];\n CanvasShapes = [ball1Clone, ball2Clone];\n let isSetCommonFrameInit = false;\n const frameInit = (d) => {\n if (isSetCommonFrameInit) {\n return;\n }\n isSetCommonFrameInit = true;\n const centerY = d.rect.height * 0.5;\n ball1.moveTo(50, centerY);\n ball2.moveTo(d.rect.width - 50, centerY);\n ball1Clone.moveTo(50, centerY);\n ball2Clone.moveTo(d.rect.width - 50, centerY);\n };\n svgFrameInit = (d) => {\n frameInit(d);\n };\n canvasFrameInit = (d) => {\n frameInit(d);\n };\n svgFrame = (d) => {\n ball1.checkCollision(ball2);\n ball1.animate();\n ball2.animate();\n };\n canvasFrame = (d) => {\n ball1Clone.checkCollision(ball2Clone);\n ball1Clone.animate();\n ball2Clone.animate();\n };\n }\n },\n {\n name: \"followMouse\",\n onClick: () => {\n currentType.value = \"followMouse\";\n const arrow = new ArrowShape({\n attrs: {\n fill: Color.random().toString()\n },\n scale: 0.5,\n followMouse: true\n });\n const arrowClone = arrow.clone();\n const arrowLine = new LineShape({\n attrs: {\n \"stroke-width\": \"1\",\n stroke: \"#666666\"\n }\n });\n const arrowLineClone = arrowLine.clone() as LineShape;\n SVGShapes = [arrowLine, arrow];\n CanvasShapes = [arrowLineClone, arrowClone];\n let isSetCommonFrameInit = false;\n const frameInit = (d) => {\n if (isSetCommonFrameInit) {\n return;\n }\n isSetCommonFrameInit = true;\n const centerX = d.rect.width * 0.5;\n const centerY = d.rect.height * 0.5;\n arrowLine.moveTo(centerX, centerY);\n arrowLineClone.moveTo(centerX, centerY);\n };\n svgFrameInit = (d) => {\n frameInit(d);\n };\n canvasFrameInit = (d) => {\n frameInit(d);\n };\n svgFrame = (d) => {\n arrowLine.lineToAbsolutePoint(arrow);\n };\n canvasFrame = (d) => {\n arrowLineClone.lineToAbsolutePoint(arrowClone);\n };\n }\n },\n {\n name: \"dragBall\",\n onClick: () => {\n currentType.value = \"dragBall\";\n const dragBall = new BallShape({\n ballRadius: 30,\n attrs: {\n fill: Color.random().toString()\n }\n });\n const dragBallClone = dragBall.clone();\n SVGShapes = [dragBall];\n CanvasShapes = [dragBallClone];\n let isSetCommonFrameInit = false;\n const frameInit = (d) => {\n if (isSetCommonFrameInit) {\n return;\n }\n isSetCommonFrameInit = true;\n const centerX = d.rect.width * 0.5;\n const centerY = d.rect.height * 0.5;\n dragBall.moveTo(centerX, centerY);\n dragBallClone.moveTo(centerX, centerY);\n dragBallClone.drag = dragBall.drag = {\n enable: true,\n targetToAfterDrop: { x: centerX, y: centerY }\n };\n };\n svgFrameInit = (d) => {\n frameInit(d);\n };\n canvasFrameInit = (d) => {\n frameInit(d);\n };\n svgFrame = (d) => {};\n canvasFrame = (d) => {};\n }\n },\n {\n name: \"animateSpringMassShapes\",\n onClick: () => {\n currentType.value = \"animateSpringMassShapes\";\n const springMassBalls: BallShape[] = [];\n const springMassLines: LineShape[] = [];\n const color0 = new Color(\"#000000\");\n const numParticles = 30;\n for (let i = 0; i < numParticles; i++) {\n const size = Math.random() * 10 + 2;\n const particle = new BallShape({\n ballRadius: size,\n attrs: { fill: Color.random().toString() }\n });\n particle.vx = Math.random() * 6 - 3;\n particle.vy = Math.random() * 6 - 3;\n particle.mass = size;\n springMassBalls.push(particle);\n }\n const springMassBallsClone = springMassBalls.map((s) => s.clone());\n const springMassLinesClone = springMassLines.map((s) => s.clone());\n // SVGShapes = [...springMassLines, ...springMassBalls];\n SVGShapes = [...springMassBalls];\n CanvasShapes = [...springMassLinesClone, ...springMassBallsClone];\n let isSetCommonFrameInit = false;\n const frameInit = (d) => {\n if (isSetCommonFrameInit) {\n return;\n }\n isSetCommonFrameInit = true;\n springMassBalls.forEach((b, i) => {\n const x = Math.random() * d.rect.width;\n const y = Math.random() * d.rect.height;\n b.moveTo(x, y);\n springMassBallsClone[i].moveTo(x, y);\n });\n };\n svgFrameInit = (d) => {\n frameInit(d);\n };\n canvasFrameInit = (d) => {\n frameInit(d);\n };\n const frame = (d, springMassBalls, springMassLines) => {\n animateSpringMassShapes(\n springMassBalls,\n {\n x: 0,\n y: 0,\n width: d.rect.width,\n height: d.rect.height\n },\n {\n spring: 0.0005\n }\n ).forEach(([fromX, fromY, toX, toY, alpha], i) => {\n if (!springMassLines[i]) {\n const l = new LineShape({\n x: fromX,\n y: fromY,\n lineDx: toX - fromX,\n lineDy: toY - fromY,\n attrs: {\n strokeWidth: \"1\",\n stroke: color0.setAlpha(alpha).toString()\n }\n });\n springMassLines.push(l);\n } else {\n springMassLines[i].moveTo(fromX, fromY);\n springMassLines[i].lineToAbsolutePoint({ x: toX, y: toY });\n springMassLines[i].setAttr(\n \"stroke\",\n color0.setAlpha(alpha).toString()\n );\n }\n });\n return d;\n };\n svgFrame = (d) => {\n frame(d, springMassBalls, springMassLines);\n };\n canvasFrame = (d) => {\n frame(d, springMassBallsClone, springMassLinesClone);\n CanvasShapes = [...springMassLinesClone, ...springMassBallsClone];\n };\n }\n },\n {\n name: \"gravitateShapes\",\n onClick: () => {\n currentType.value = \"gravitateShapes\";\n const numBalls = 30;\n const balls: BallShape[] = [];\n for (let i = 0; i < numBalls; i++) {\n const radius = Math.random() * 25 + 5;\n const ball = new BallShape({\n ballRadius: radius,\n attrs: {\n fill: Color.random().toString()\n }\n });\n ball.mass = radius;\n balls.push(ball);\n }\n const ballsClone = balls.map((s) => s.clone());\n SVGShapes = [...balls];\n CanvasShapes = [...ballsClone];\n let isSetCommonFrameInit = false;\n const frameInit = (d) => {\n if (isSetCommonFrameInit) {\n return;\n }\n isSetCommonFrameInit = true;\n balls.forEach((b, i) => {\n const x = Math.random() * d.rect.width;\n const y = Math.random() * d.rect.height;\n b.moveTo(x, y);\n ballsClone[i].moveTo(x, y);\n });\n };\n svgFrameInit = (d) => {\n frameInit(d);\n };\n canvasFrameInit = (d) => {\n frameInit(d);\n };\n svgFrame = (d) => {\n gravitateShapes(balls);\n };\n canvasFrame = (d) => {\n gravitateShapes(ballsClone);\n };\n }\n }\n];\n\nonMounted(() => {\n boxCases[0].onClick();\n});\n</script>\n\n<template>\n <div style=\"position: relative; overflow: hidden\">\n <div\n style=\"\n position: fixed;\n top: 0;\n left: 0;\n z-index: 100;\n width: 100%;\n height: 6px;\n \"\n >\n <PageVerticalScrollProgressBar></PageVerticalScrollProgressBar>\n </div>\n\n <FPSStats></FPSStats>\n\n <ResizeObserver @resize=\"sizeChange\"></ResizeObserver>\n\n <Accordion\n :initOpen=\"true\"\n style=\"margin: 30px\"\n >\n <template #title>Shape</template>\n <template #content>\n <div class=\"btns\">\n <Button\n v-for=\"item in boxCases\"\n :key=\"item.name\"\n :item=\"item\"\n @click=\"item.onClick\"\n :stylePattern=\"currentType == item.name ? 'fullfill' : 'outline'\"\n >\n {{ item.name }}\n </Button>\n </div>\n\n <Box\n type=\"svg\"\n :shapes=\"SVGShapes\"\n :loop=\"true\"\n style=\"\n width: 100%;\n height: 300px;\n background-color: rgba(0, 0, 0, 0.1);\n \"\n @frameInit=\"svgFrameInit\"\n @frame=\"svgFrame\"\n ></Box>\n <Box\n type=\"canvas\"\n :shapes=\"CanvasShapes\"\n :loop=\"true\"\n style=\"\n width: 100%;\n height: 300px;\n background-color: rgba(0, 0, 0, 0.2);\n \"\n @frameInit=\"canvasFrameInit\"\n @frame=\"canvasFrame\"\n ></Box>\n </template>\n </Accordion>\n </div>\n</template>\n\n<style scoped>\n:root {\n --min-font-size: 16;\n --max-font-size: 16;\n}\n</style>\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return function (source) {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n//# sourceMappingURL=isPromise.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n//# sourceMappingURL=isAsyncIterable.js.map","export function createInvalidObservableTypeError(input) {\n return new TypeError(\"You provided \" + (input !== null && typeof input === 'object' ? 'an invalid object' : \"'\" + input + \"'\") + \" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.\");\n}\n//# sourceMappingURL=throwUnobservableError.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\n//# sourceMappingURL=iterator.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n//# sourceMappingURL=isIterable.js.map","import { __asyncGenerator, __await, __generator } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {\n var reader, _a, value, done;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = readableStream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 9, 10]);\n _b.label = 2;\n case 2:\n if (!true) return [3, 8];\n return [4, __await(reader.read())];\n case 3:\n _a = _b.sent(), value = _a.value, done = _a.done;\n if (!done) return [3, 5];\n return [4, __await(void 0)];\n case 4: return [2, _b.sent()];\n case 5: return [4, __await(value)];\n case 6: return [4, _b.sent()];\n case 7:\n _b.sent();\n return [3, 2];\n case 8: return [3, 10];\n case 9:\n reader.releaseLock();\n return [7];\n case 10: return [2];\n }\n });\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n//# sourceMappingURL=isReadableStreamLike.js.map","import { __asyncValues, __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable(function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable(function (subscriber) {\n for (var i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable(function (subscriber) {\n promise\n .then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable(function (subscriber) {\n var e_1, _a;\n try {\n for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {\n var value = iterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable(function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_2, _a;\n return __awaiter(this, void 0, void 0, function () {\n var value, e_2_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = __asyncValues(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return [2];\n }\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_2_1 = _b.sent();\n e_2 = { error: e_2_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_2) throw e_2.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=innerFrom.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nvar OperatorSubscriber = (function (_super) {\n __extends(OperatorSubscriber, _super);\n function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n var _this = _super.call(this, destination) || this;\n _this.onFinalize = onFinalize;\n _this.shouldUnsubscribe = shouldUnsubscribe;\n _this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : _super.prototype._next;\n _this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._error;\n _this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._complete;\n return _this;\n }\n OperatorSubscriber.prototype.unsubscribe = function () {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n var closed_1 = this.closed;\n _super.prototype.unsubscribe.call(this);\n !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n };\n return OperatorSubscriber;\n}(Subscriber));\nexport { OperatorSubscriber };\n//# sourceMappingURL=OperatorSubscriber.js.map","import { operate } from '../util/lift';\nimport { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function audit(durationSelector) {\n return operate(function (source, subscriber) {\n var hasValue = false;\n var lastValue = null;\n var durationSubscriber = null;\n var isComplete = false;\n var endDuration = function () {\n durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe();\n durationSubscriber = null;\n if (hasValue) {\n hasValue = false;\n var value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n isComplete && subscriber.complete();\n };\n var cleanupDuration = function () {\n durationSubscriber = null;\n isComplete && subscriber.complete();\n };\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n hasValue = true;\n lastValue = value;\n if (!durationSubscriber) {\n innerFrom(durationSelector(value)).subscribe((durationSubscriber = createOperatorSubscriber(subscriber, endDuration, cleanupDuration)));\n }\n }, function () {\n isComplete = true;\n (!hasValue || !durationSubscriber || durationSubscriber.closed) && subscriber.complete();\n }));\n });\n}\n//# sourceMappingURL=audit.js.map","import { __extends } from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = (function (_super) {\n __extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var intervalProvider = {\n setInterval: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = intervalProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) {\n return delegate.setInterval.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setInterval.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearInterval: function (handle) {\n var delegate = intervalProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=intervalProvider.js.map","import { __extends } from \"tslib\";\nimport { Action } from './Action';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nvar AsyncAction = (function (_super) {\n __extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n var _a;\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = (_a = this.id) !== null && _a !== void 0 ? _a : this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, _id, delay) {\n if (delay === void 0) { delay = 0; }\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (_scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, _delay) {\n var errored = false;\n var errorValue;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype.unsubscribe = function () {\n if (!this.closed) {\n var _a = this, id = _a.id, scheduler = _a.scheduler;\n var actions = scheduler.actions;\n this.work = this.state = this.scheduler = null;\n this.pending = false;\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n _super.prototype.unsubscribe.call(this);\n }\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map","export var dateTimestampProvider = {\n now: function () {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n//# sourceMappingURL=dateTimestampProvider.js.map","import { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nvar Scheduler = (function () {\n function Scheduler(schedulerActionCtor, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.schedulerActionCtor = schedulerActionCtor;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n };\n Scheduler.now = dateTimestampProvider.now;\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map","import { __extends } from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = (function (_super) {\n __extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n var _this = _super.call(this, SchedulerAction, now) || this;\n _this.actions = [];\n _this._active = false;\n return _this;\n }\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this._active) {\n actions.push(action);\n return;\n }\n var error;\n this._active = true;\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()));\n this._active = false;\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var asyncScheduler = new AsyncScheduler(AsyncAction);\nexport var async = asyncScheduler;\n//# sourceMappingURL=async.js.map","import { isFunction } from './isFunction';\nexport function isScheduler(value) {\n return value && isFunction(value.schedule);\n}\n//# sourceMappingURL=isScheduler.js.map","export function isValidDate(value) {\n return value instanceof Date && !isNaN(value);\n}\n//# sourceMappingURL=isDate.js.map","import { Observable } from '../Observable';\nimport { async as asyncScheduler } from '../scheduler/async';\nimport { isScheduler } from '../util/isScheduler';\nimport { isValidDate } from '../util/isDate';\nexport function timer(dueTime, intervalOrScheduler, scheduler) {\n if (dueTime === void 0) { dueTime = 0; }\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n var intervalDuration = -1;\n if (intervalOrScheduler != null) {\n if (isScheduler(intervalOrScheduler)) {\n scheduler = intervalOrScheduler;\n }\n else {\n intervalDuration = intervalOrScheduler;\n }\n }\n return new Observable(function (subscriber) {\n var due = isValidDate(dueTime) ? +dueTime - scheduler.now() : dueTime;\n if (due < 0) {\n due = 0;\n }\n var n = 0;\n return scheduler.schedule(function () {\n if (!subscriber.closed) {\n subscriber.next(n++);\n if (0 <= intervalDuration) {\n this.schedule(undefined, intervalDuration);\n }\n else {\n subscriber.complete();\n }\n }\n }, due);\n });\n}\n//# sourceMappingURL=timer.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { audit } from './audit';\nimport { timer } from '../observable/timer';\nexport function auditTime(duration, scheduler) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n return audit(function () { return timer(duration, scheduler); });\n}\n//# sourceMappingURL=auditTime.js.map","import { operate } from '../util/lift';\nimport { noop } from '../util/noop';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nexport function buffer(closingNotifier) {\n return operate(function (source, subscriber) {\n var currentBuffer = [];\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return currentBuffer.push(value); }, function () {\n subscriber.next(currentBuffer);\n subscriber.complete();\n }));\n innerFrom(closingNotifier).subscribe(createOperatorSubscriber(subscriber, function () {\n var b = currentBuffer;\n currentBuffer = [];\n subscriber.next(b);\n }, noop));\n return function () {\n currentBuffer = null;\n };\n });\n}\n//# sourceMappingURL=buffer.js.map","import { __values } from \"tslib\";\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { arrRemove } from '../util/arrRemove';\nexport function bufferCount(bufferSize, startBufferEvery) {\n if (startBufferEvery === void 0) { startBufferEvery = null; }\n startBufferEvery = startBufferEvery !== null && startBufferEvery !== void 0 ? startBufferEvery : bufferSize;\n return operate(function (source, subscriber) {\n var buffers = [];\n var count = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var e_1, _a, e_2, _b;\n var toEmit = null;\n if (count++ % startBufferEvery === 0) {\n buffers.push([]);\n }\n try {\n for (var buffers_1 = __values(buffers), buffers_1_1 = buffers_1.next(); !buffers_1_1.done; buffers_1_1 = buffers_1.next()) {\n var buffer = buffers_1_1.value;\n buffer.push(value);\n if (bufferSize <= buffer.length) {\n toEmit = toEmit !== null && toEmit !== void 0 ? toEmit : [];\n toEmit.push(buffer);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (buffers_1_1 && !buffers_1_1.done && (_a = buffers_1.return)) _a.call(buffers_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (toEmit) {\n try {\n for (var toEmit_1 = __values(toEmit), toEmit_1_1 = toEmit_1.next(); !toEmit_1_1.done; toEmit_1_1 = toEmit_1.next()) {\n var buffer = toEmit_1_1.value;\n arrRemove(buffers, buffer);\n subscriber.next(buffer);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (toEmit_1_1 && !toEmit_1_1.done && (_b = toEmit_1.return)) _b.call(toEmit_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }, function () {\n var e_3, _a;\n try {\n for (var buffers_2 = __values(buffers), buffers_2_1 = buffers_2.next(); !buffers_2_1.done; buffers_2_1 = buffers_2.next()) {\n var buffer = buffers_2_1.value;\n subscriber.next(buffer);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (buffers_2_1 && !buffers_2_1.done && (_a = buffers_2.return)) _a.call(buffers_2);\n }\n finally { if (e_3) throw e_3.error; }\n }\n subscriber.complete();\n }, undefined, function () {\n buffers = null;\n }));\n });\n}\n//# sourceMappingURL=bufferCount.js.map","import { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nexport function popResultSelector(args) {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\nexport function popScheduler(args) {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\nexport function popNumber(args, defaultValue) {\n return typeof last(args) === 'number' ? args.pop() : defaultValue;\n}\n//# sourceMappingURL=args.js.map","export function executeSchedule(parentSubscription, scheduler, work, delay, repeat) {\n if (delay === void 0) { delay = 0; }\n if (repeat === void 0) { repeat = false; }\n var scheduleSubscription = scheduler.schedule(function () {\n work();\n if (repeat) {\n parentSubscription.add(this.schedule(null, delay));\n }\n else {\n this.unsubscribe();\n }\n }, delay);\n parentSubscription.add(scheduleSubscription);\n if (!repeat) {\n return scheduleSubscription;\n }\n}\n//# sourceMappingURL=executeSchedule.js.map","import { __values } from \"tslib\";\nimport { Subscription } from '../Subscription';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { arrRemove } from '../util/arrRemove';\nimport { asyncScheduler } from '../scheduler/async';\nimport { popScheduler } from '../util/args';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function bufferTime(bufferTimeSpan) {\n var _a, _b;\n var otherArgs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n otherArgs[_i - 1] = arguments[_i];\n }\n var scheduler = (_a = popScheduler(otherArgs)) !== null && _a !== void 0 ? _a : asyncScheduler;\n var bufferCreationInterval = (_b = otherArgs[0]) !== null && _b !== void 0 ? _b : null;\n var maxBufferSize = otherArgs[1] || Infinity;\n return operate(function (source, subscriber) {\n var bufferRecords = [];\n var restartOnEmit = false;\n var emit = function (record) {\n var buffer = record.buffer, subs = record.subs;\n subs.unsubscribe();\n arrRemove(bufferRecords, record);\n subscriber.next(buffer);\n restartOnEmit && startBuffer();\n };\n var startBuffer = function () {\n if (bufferRecords) {\n var subs = new Subscription();\n subscriber.add(subs);\n var buffer = [];\n var record_1 = {\n buffer: buffer,\n subs: subs,\n };\n bufferRecords.push(record_1);\n executeSchedule(subs, scheduler, function () { return emit(record_1); }, bufferTimeSpan);\n }\n };\n if (bufferCreationInterval !== null && bufferCreationInterval >= 0) {\n executeSchedule(subscriber, scheduler, startBuffer, bufferCreationInterval, true);\n }\n else {\n restartOnEmit = true;\n }\n startBuffer();\n var bufferTimeSubscriber = createOperatorSubscriber(subscriber, function (value) {\n var e_1, _a;\n var recordsCopy = bufferRecords.slice();\n try {\n for (var recordsCopy_1 = __values(recordsCopy), recordsCopy_1_1 = recordsCopy_1.next(); !recordsCopy_1_1.done; recordsCopy_1_1 = recordsCopy_1.next()) {\n var record = recordsCopy_1_1.value;\n var buffer = record.buffer;\n buffer.push(value);\n maxBufferSize <= buffer.length && emit(record);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (recordsCopy_1_1 && !recordsCopy_1_1.done && (_a = recordsCopy_1.return)) _a.call(recordsCopy_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }, function () {\n while (bufferRecords === null || bufferRecords === void 0 ? void 0 : bufferRecords.length) {\n subscriber.next(bufferRecords.shift().buffer);\n }\n bufferTimeSubscriber === null || bufferTimeSubscriber === void 0 ? void 0 : bufferTimeSubscriber.unsubscribe();\n subscriber.complete();\n subscriber.unsubscribe();\n }, undefined, function () { return (bufferRecords = null); });\n source.subscribe(bufferTimeSubscriber);\n });\n}\n//# sourceMappingURL=bufferTime.js.map","import { __values } from \"tslib\";\nimport { Subscription } from '../Subscription';\nimport { operate } from '../util/lift';\nimport { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { noop } from '../util/noop';\nimport { arrRemove } from '../util/arrRemove';\nexport function bufferToggle(openings, closingSelector) {\n return operate(function (source, subscriber) {\n var buffers = [];\n innerFrom(openings).subscribe(createOperatorSubscriber(subscriber, function (openValue) {\n var buffer = [];\n buffers.push(buffer);\n var closingSubscription = new Subscription();\n var emitBuffer = function () {\n arrRemove(buffers, buffer);\n subscriber.next(buffer);\n closingSubscription.unsubscribe();\n };\n closingSubscription.add(innerFrom(closingSelector(openValue)).subscribe(createOperatorSubscriber(subscriber, emitBuffer, noop)));\n }, noop));\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var e_1, _a;\n try {\n for (var buffers_1 = __values(buffers), buffers_1_1 = buffers_1.next(); !buffers_1_1.done; buffers_1_1 = buffers_1.next()) {\n var buffer = buffers_1_1.value;\n buffer.push(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (buffers_1_1 && !buffers_1_1.done && (_a = buffers_1.return)) _a.call(buffers_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }, function () {\n while (buffers.length > 0) {\n subscriber.next(buffers.shift());\n }\n subscriber.complete();\n }));\n });\n}\n//# sourceMappingURL=bufferToggle.js.map","import { operate } from '../util/lift';\nimport { noop } from '../util/noop';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nexport function bufferWhen(closingSelector) {\n return operate(function (source, subscriber) {\n var buffer = null;\n var closingSubscriber = null;\n var openBuffer = function () {\n closingSubscriber === null || closingSubscriber === void 0 ? void 0 : closingSubscriber.unsubscribe();\n var b = buffer;\n buffer = [];\n b && subscriber.next(b);\n innerFrom(closingSelector()).subscribe((closingSubscriber = createOperatorSubscriber(subscriber, openBuffer, noop)));\n };\n openBuffer();\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return buffer === null || buffer === void 0 ? void 0 : buffer.push(value); }, function () {\n buffer && subscriber.next(buffer);\n subscriber.complete();\n }, undefined, function () { return (buffer = closingSubscriber = null); }));\n });\n}\n//# sourceMappingURL=bufferWhen.js.map","var isArray = Array.isArray;\nvar getPrototypeOf = Object.getPrototypeOf, objectProto = Object.prototype, getKeys = Object.keys;\nexport function argsArgArrayOrObject(args) {\n if (args.length === 1) {\n var first_1 = args[0];\n if (isArray(first_1)) {\n return { args: first_1, keys: null };\n }\n if (isPOJO(first_1)) {\n var keys = getKeys(first_1);\n return {\n args: keys.map(function (key) { return first_1[key]; }),\n keys: keys,\n };\n }\n }\n return { args: args, keys: null };\n}\nfunction isPOJO(obj) {\n return obj && typeof obj === 'object' && getPrototypeOf(obj) === objectProto;\n}\n//# sourceMappingURL=argsArgArrayOrObject.js.map","import { executeSchedule } from '../util/executeSchedule';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function observeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return operate(function (source, subscriber) {\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return executeSchedule(subscriber, scheduler, function () { return subscriber.next(value); }, delay); }, function () { return executeSchedule(subscriber, scheduler, function () { return subscriber.complete(); }, delay); }, function (err) { return executeSchedule(subscriber, scheduler, function () { return subscriber.error(err); }, delay); }));\n });\n}\n//# sourceMappingURL=observeOn.js.map","import { operate } from '../util/lift';\nexport function subscribeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return operate(function (source, subscriber) {\n subscriber.add(scheduler.schedule(function () { return source.subscribe(subscriber); }, delay));\n });\n}\n//# sourceMappingURL=subscribeOn.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function scheduleObservable(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n//# sourceMappingURL=scheduleObservable.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function schedulePromise(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n//# sourceMappingURL=schedulePromise.js.map","import { Observable } from '../Observable';\nexport function scheduleArray(input, scheduler) {\n return new Observable(function (subscriber) {\n var i = 0;\n return scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n }\n else {\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n this.schedule();\n }\n }\n });\n });\n}\n//# sourceMappingURL=scheduleArray.js.map","import { Observable } from '../Observable';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from '../util/isFunction';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleIterable(input, scheduler) {\n return new Observable(function (subscriber) {\n var iterator;\n executeSchedule(subscriber, scheduler, function () {\n iterator = input[Symbol_iterator]();\n executeSchedule(subscriber, scheduler, function () {\n var _a;\n var value;\n var done;\n try {\n (_a = iterator.next(), value = _a.value, done = _a.done);\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n }\n }, 0, true);\n });\n return function () { return isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return(); };\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map","import { Observable } from '../Observable';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(function (subscriber) {\n executeSchedule(subscriber, scheduler, function () {\n var iterator = input[Symbol.asyncIterator]();\n executeSchedule(subscriber, scheduler, function () {\n iterator.next().then(function (result) {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n }\n });\n }, 0, true);\n });\n });\n}\n//# sourceMappingURL=scheduleAsyncIterable.js.map","import { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nexport function scheduleReadableStreamLike(input, scheduler) {\n return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);\n}\n//# sourceMappingURL=scheduleReadableStreamLike.js.map","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isReadableStreamLike } from '../util/isReadableStreamLike';\nimport { scheduleReadableStreamLike } from './scheduleReadableStreamLike';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n if (isAsyncIterable(input)) {\n return scheduleAsyncIterable(input, scheduler);\n }\n if (isIterable(input)) {\n return scheduleIterable(input, scheduler);\n }\n if (isReadableStreamLike(input)) {\n return scheduleReadableStreamLike(input, scheduler);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\n//# sourceMappingURL=scheduled.js.map","import { scheduled } from '../scheduled/scheduled';\nimport { innerFrom } from './innerFrom';\nexport function from(input, scheduler) {\n return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\n//# sourceMappingURL=from.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","import { __read, __spreadArray } from \"tslib\";\nimport { map } from \"../operators/map\";\nvar isArray = Array.isArray;\nfunction callOrApply(fn, args) {\n return isArray(args) ? fn.apply(void 0, __spreadArray([], __read(args))) : fn(args);\n}\nexport function mapOneOrManyArgs(fn) {\n return map(function (args) { return callOrApply(fn, args); });\n}\n//# sourceMappingURL=mapOneOrManyArgs.js.map","export function createObject(keys, values) {\n return keys.reduce(function (result, key, i) { return ((result[key] = values[i]), result); }, {});\n}\n//# sourceMappingURL=createObject.js.map","import { Observable } from '../Observable';\nimport { argsArgArrayOrObject } from '../util/argsArgArrayOrObject';\nimport { from } from './from';\nimport { identity } from '../util/identity';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { popResultSelector, popScheduler } from '../util/args';\nimport { createObject } from '../util/createObject';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function combineLatest() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = popScheduler(args);\n var resultSelector = popResultSelector(args);\n var _a = argsArgArrayOrObject(args), observables = _a.args, keys = _a.keys;\n if (observables.length === 0) {\n return from([], scheduler);\n }\n var result = new Observable(combineLatestInit(observables, scheduler, keys\n ?\n function (values) { return createObject(keys, values); }\n :\n identity));\n return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result;\n}\nexport function combineLatestInit(observables, scheduler, valueTransform) {\n if (valueTransform === void 0) { valueTransform = identity; }\n return function (subscriber) {\n maybeSchedule(scheduler, function () {\n var length = observables.length;\n var values = new Array(length);\n var active = length;\n var remainingFirstValues = length;\n var _loop_1 = function (i) {\n maybeSchedule(scheduler, function () {\n var source = from(observables[i], scheduler);\n var hasFirstValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n values[i] = value;\n if (!hasFirstValue) {\n hasFirstValue = true;\n remainingFirstValues--;\n }\n if (!remainingFirstValues) {\n subscriber.next(valueTransform(values.slice()));\n }\n }, function () {\n if (!--active) {\n subscriber.complete();\n }\n }));\n }, subscriber);\n };\n for (var i = 0; i < length; i++) {\n _loop_1(i);\n }\n }, subscriber);\n };\n}\nfunction maybeSchedule(scheduler, execute, subscription) {\n if (scheduler) {\n executeSchedule(subscription, scheduler, execute);\n }\n else {\n execute();\n }\n}\n//# sourceMappingURL=combineLatest.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {\n var buffer = [];\n var active = 0;\n var index = 0;\n var isComplete = false;\n var checkComplete = function () {\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n var outerNext = function (value) { return (active < concurrent ? doInnerSub(value) : buffer.push(value)); };\n var doInnerSub = function (value) {\n expand && subscriber.next(value);\n active++;\n var innerComplete = false;\n innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, function (innerValue) {\n onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);\n if (expand) {\n outerNext(innerValue);\n }\n else {\n subscriber.next(innerValue);\n }\n }, function () {\n innerComplete = true;\n }, undefined, function () {\n if (innerComplete) {\n try {\n active--;\n var _loop_1 = function () {\n var bufferedValue = buffer.shift();\n if (innerSubScheduler) {\n executeSchedule(subscriber, innerSubScheduler, function () { return doInnerSub(bufferedValue); });\n }\n else {\n doInnerSub(bufferedValue);\n }\n };\n while (buffer.length && active < concurrent) {\n _loop_1();\n }\n checkComplete();\n }\n catch (err) {\n subscriber.error(err);\n }\n }\n }));\n };\n source.subscribe(createOperatorSubscriber(subscriber, outerNext, function () {\n isComplete = true;\n checkComplete();\n }));\n return function () {\n additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();\n };\n}\n//# sourceMappingURL=mergeInternals.js.map","import { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\nexport function mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n if (isFunction(resultSelector)) {\n return mergeMap(function (a, i) { return map(function (b, ii) { return resultSelector(a, b, i, ii); })(innerFrom(project(a, i))); }, concurrent);\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return operate(function (source, subscriber) { return mergeInternals(source, subscriber, project, concurrent); });\n}\n//# sourceMappingURL=mergeMap.js.map","import { createOperatorSubscriber } from './OperatorSubscriber';\nexport function scanInternals(accumulator, seed, hasSeed, emitOnNext, emitBeforeComplete) {\n return function (source, subscriber) {\n var hasState = hasSeed;\n var state = seed;\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var i = index++;\n state = hasState\n ?\n accumulator(state, value, i)\n :\n ((hasState = true), value);\n emitOnNext && subscriber.next(state);\n }, emitBeforeComplete &&\n (function () {\n hasState && subscriber.next(state);\n subscriber.complete();\n })));\n };\n}\n//# sourceMappingURL=scanInternals.js.map","import { scanInternals } from './scanInternals';\nimport { operate } from '../util/lift';\nexport function reduce(accumulator, seed) {\n return operate(scanInternals(accumulator, seed, arguments.length >= 2, false, true));\n}\n//# sourceMappingURL=reduce.js.map","import { reduce } from './reduce';\nimport { operate } from '../util/lift';\nvar arrReducer = function (arr, value) { return (arr.push(value), arr); };\nexport function toArray() {\n return operate(function (source, subscriber) {\n reduce(arrReducer, [])(source).subscribe(subscriber);\n });\n}\n//# sourceMappingURL=toArray.js.map","import { identity } from '../util/identity';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { pipe } from '../util/pipe';\nimport { mergeMap } from './mergeMap';\nimport { toArray } from './toArray';\nexport function joinAllInternals(joinFn, project) {\n return pipe(toArray(), mergeMap(function (sources) { return joinFn(sources); }), project ? mapOneOrManyArgs(project) : identity);\n}\n//# sourceMappingURL=joinAllInternals.js.map","import { combineLatest } from '../observable/combineLatest';\nimport { joinAllInternals } from './joinAllInternals';\nexport function combineLatestAll(project) {\n return joinAllInternals(combineLatest, project);\n}\n//# sourceMappingURL=combineLatestAll.js.map","var isArray = Array.isArray;\nexport function argsOrArgArray(args) {\n return args.length === 1 && isArray(args[0]) ? args[0] : args;\n}\n//# sourceMappingURL=argsOrArgArray.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map","import { mergeMap } from './mergeMap';\nimport { isFunction } from '../util/isFunction';\nexport function concatMap(project, resultSelector) {\n return isFunction(resultSelector) ? mergeMap(project, resultSelector, 1) : mergeMap(project, 1);\n}\n//# sourceMappingURL=concatMap.js.map","import { createErrorClass } from './createErrorClass';\nexport var ObjectUnsubscribedError = createErrorClass(function (_super) {\n return function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n };\n});\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import { __extends, __values } from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.closed = false;\n _this.currentObservers = null;\n _this.observers = [];\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype._throwIfClosed = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n };\n Subject.prototype.next = function (value) {\n var _this = this;\n errorContext(function () {\n var e_1, _a;\n _this._throwIfClosed();\n if (!_this.isStopped) {\n if (!_this.currentObservers) {\n _this.currentObservers = Array.from(_this.observers);\n }\n try {\n for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var observer = _c.value;\n observer.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n });\n };\n Subject.prototype.error = function (err) {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.hasError = _this.isStopped = true;\n _this.thrownError = err;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n };\n Subject.prototype.complete = function () {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.isStopped = true;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n };\n Object.defineProperty(Subject.prototype, \"observed\", {\n get: function () {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n },\n enumerable: false,\n configurable: true\n });\n Subject.prototype._trySubscribe = function (subscriber) {\n this._throwIfClosed();\n return _super.prototype._trySubscribe.call(this, subscriber);\n };\n Subject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n };\n Subject.prototype._innerSubscribe = function (subscriber) {\n var _this = this;\n var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(function () {\n _this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n };\n Subject.prototype._checkFinalizedStatuses = function (subscriber) {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n };\n AnonymousSubject.prototype.error = function (err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n AnonymousSubject.prototype.complete = function () {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","import { reduce } from './reduce';\nexport function count(predicate) {\n return reduce(function (total, value, i) { return (!predicate || predicate(value, i) ? total + 1 : total); }, 0);\n}\n//# sourceMappingURL=count.js.map","import { operate } from '../util/lift';\nimport { noop } from '../util/noop';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nexport function debounce(durationSelector) {\n return operate(function (source, subscriber) {\n var hasValue = false;\n var lastValue = null;\n var durationSubscriber = null;\n var emit = function () {\n durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe();\n durationSubscriber = null;\n if (hasValue) {\n hasValue = false;\n var value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n };\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe();\n hasValue = true;\n lastValue = value;\n durationSubscriber = createOperatorSubscriber(subscriber, emit, noop);\n innerFrom(durationSelector(value)).subscribe(durationSubscriber);\n }, function () {\n emit();\n subscriber.complete();\n }, undefined, function () {\n lastValue = durationSubscriber = null;\n }));\n });\n}\n//# sourceMappingURL=debounce.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function debounceTime(dueTime, scheduler) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n return operate(function (source, subscriber) {\n var activeTask = null;\n var lastValue = null;\n var lastTime = null;\n var emit = function () {\n if (activeTask) {\n activeTask.unsubscribe();\n activeTask = null;\n var value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n };\n function emitWhenIdle() {\n var targetTime = lastTime + dueTime;\n var now = scheduler.now();\n if (now < targetTime) {\n activeTask = this.schedule(undefined, targetTime - now);\n subscriber.add(activeTask);\n return;\n }\n emit();\n }\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n lastValue = value;\n lastTime = scheduler.now();\n if (!activeTask) {\n activeTask = scheduler.schedule(emitWhenIdle, dueTime);\n subscriber.add(activeTask);\n }\n }, function () {\n emit();\n subscriber.complete();\n }, undefined, function () {\n lastValue = activeTask = null;\n }));\n });\n}\n//# sourceMappingURL=debounceTime.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function defaultIfEmpty(defaultValue) {\n return operate(function (source, subscriber) {\n var hasValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n hasValue = true;\n subscriber.next(value);\n }, function () {\n if (!hasValue) {\n subscriber.next(defaultValue);\n }\n subscriber.complete();\n }));\n });\n}\n//# sourceMappingURL=defaultIfEmpty.js.map","import { concatAll } from '../operators/concatAll';\nimport { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function concat() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return concatAll()(from(args, popScheduler(args)));\n}\n//# sourceMappingURL=concat.js.map","import { Observable } from '../Observable';\nexport var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map","import { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function take(count) {\n return count <= 0\n ?\n function () { return EMPTY; }\n : operate(function (source, subscriber) {\n var seen = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n if (++seen <= count) {\n subscriber.next(value);\n if (count <= seen) {\n subscriber.complete();\n }\n }\n }));\n });\n}\n//# sourceMappingURL=take.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { noop } from '../util/noop';\nexport function ignoreElements() {\n return operate(function (source, subscriber) {\n source.subscribe(createOperatorSubscriber(subscriber, noop));\n });\n}\n//# sourceMappingURL=ignoreElements.js.map","import { map } from './map';\nexport function mapTo(value) {\n return map(function () { return value; });\n}\n//# sourceMappingURL=mapTo.js.map","import { concat } from '../observable/concat';\nimport { take } from './take';\nimport { ignoreElements } from './ignoreElements';\nimport { mapTo } from './mapTo';\nimport { mergeMap } from './mergeMap';\nimport { innerFrom } from '../observable/innerFrom';\nexport function delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return function (source) {\n return concat(subscriptionDelay.pipe(take(1), ignoreElements()), source.pipe(delayWhen(delayDurationSelector)));\n };\n }\n return mergeMap(function (value, index) { return innerFrom(delayDurationSelector(value, index)).pipe(take(1), mapTo(value)); });\n}\n//# sourceMappingURL=delayWhen.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { delayWhen } from './delayWhen';\nimport { timer } from '../observable/timer';\nexport function delay(due, scheduler) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n var duration = timer(due, scheduler);\n return delayWhen(function () { return duration; });\n}\n//# sourceMappingURL=delay.js.map","import { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function of() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = popScheduler(args);\n return from(args, scheduler);\n}\n//# sourceMappingURL=of.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { noop } from '../util/noop';\nimport { innerFrom } from '../observable/innerFrom';\nexport function distinct(keySelector, flushes) {\n return operate(function (source, subscriber) {\n var distinctKeys = new Set();\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var key = keySelector ? keySelector(value) : value;\n if (!distinctKeys.has(key)) {\n distinctKeys.add(key);\n subscriber.next(value);\n }\n }));\n flushes && innerFrom(flushes).subscribe(createOperatorSubscriber(subscriber, function () { return distinctKeys.clear(); }, noop));\n });\n}\n//# sourceMappingURL=distinct.js.map","import { identity } from '../util/identity';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function distinctUntilChanged(comparator, keySelector) {\n if (keySelector === void 0) { keySelector = identity; }\n comparator = comparator !== null && comparator !== void 0 ? comparator : defaultCompare;\n return operate(function (source, subscriber) {\n var previousKey;\n var first = true;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var currentKey = keySelector(value);\n if (first || !comparator(previousKey, currentKey)) {\n first = false;\n previousKey = currentKey;\n subscriber.next(value);\n }\n }));\n });\n}\nfunction defaultCompare(a, b) {\n return a === b;\n}\n//# sourceMappingURL=distinctUntilChanged.js.map","import { createErrorClass } from './createErrorClass';\nexport var ArgumentOutOfRangeError = createErrorClass(function (_super) {\n return function ArgumentOutOfRangeErrorImpl() {\n _super(this);\n this.name = 'ArgumentOutOfRangeError';\n this.message = 'argument out of range';\n };\n});\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function filter(predicate, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return predicate.call(thisArg, value, index++) && subscriber.next(value); }));\n });\n}\n//# sourceMappingURL=filter.js.map","import { createErrorClass } from './createErrorClass';\nexport var EmptyError = createErrorClass(function (_super) {\n return function EmptyErrorImpl() {\n _super(this);\n this.name = 'EmptyError';\n this.message = 'no elements in sequence';\n };\n});\n//# sourceMappingURL=EmptyError.js.map","import { EmptyError } from '../util/EmptyError';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function throwIfEmpty(errorFactory) {\n if (errorFactory === void 0) { errorFactory = defaultErrorFactory; }\n return operate(function (source, subscriber) {\n var hasValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n hasValue = true;\n subscriber.next(value);\n }, function () { return (hasValue ? subscriber.complete() : subscriber.error(errorFactory())); }));\n });\n}\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n//# sourceMappingURL=throwIfEmpty.js.map","import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { filter } from './filter';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { take } from './take';\nexport function elementAt(index, defaultValue) {\n if (index < 0) {\n throw new ArgumentOutOfRangeError();\n }\n var hasDefaultValue = arguments.length >= 2;\n return function (source) {\n return source.pipe(filter(function (v, i) { return i === index; }), take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new ArgumentOutOfRangeError(); }));\n };\n}\n//# sourceMappingURL=elementAt.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function every(predicate, thisArg) {\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n if (!predicate.call(thisArg, value, index++, source)) {\n subscriber.next(false);\n subscriber.complete();\n }\n }, function () {\n subscriber.next(true);\n subscriber.complete();\n }));\n });\n}\n//# sourceMappingURL=every.js.map","import { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function exhaustMap(project, resultSelector) {\n if (resultSelector) {\n return function (source) {\n return source.pipe(exhaustMap(function (a, i) { return innerFrom(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }));\n };\n }\n return operate(function (source, subscriber) {\n var index = 0;\n var innerSub = null;\n var isComplete = false;\n source.subscribe(createOperatorSubscriber(subscriber, function (outerValue) {\n if (!innerSub) {\n innerSub = createOperatorSubscriber(subscriber, undefined, function () {\n innerSub = null;\n isComplete && subscriber.complete();\n });\n innerFrom(project(outerValue, index++)).subscribe(innerSub);\n }\n }, function () {\n isComplete = true;\n !innerSub && subscriber.complete();\n }));\n });\n}\n//# sourceMappingURL=exhaustMap.js.map","import { exhaustMap } from './exhaustMap';\nimport { identity } from '../util/identity';\nexport function exhaustAll() {\n return exhaustMap(identity);\n}\n//# sourceMappingURL=exhaustAll.js.map","import { operate } from '../util/lift';\nexport function finalize(callback) {\n return operate(function (source, subscriber) {\n try {\n source.subscribe(subscriber);\n }\n finally {\n subscriber.add(callback);\n }\n });\n}\n//# sourceMappingURL=finalize.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function find(predicate, thisArg) {\n return operate(createFind(predicate, thisArg, 'value'));\n}\nexport function createFind(predicate, thisArg, emit) {\n var findIndex = emit === 'index';\n return function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var i = index++;\n if (predicate.call(thisArg, value, i, source)) {\n subscriber.next(findIndex ? i : value);\n subscriber.complete();\n }\n }, function () {\n subscriber.next(findIndex ? -1 : undefined);\n subscriber.complete();\n }));\n };\n}\n//# sourceMappingURL=find.js.map","import { operate } from '../util/lift';\nimport { createFind } from './find';\nexport function findIndex(predicate, thisArg) {\n return operate(createFind(predicate, thisArg, 'index'));\n}\n//# sourceMappingURL=findIndex.js.map","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) {\n return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); }));\n };\n}\n//# sourceMappingURL=first.js.map","import { Observable } from '../Observable';\nimport { innerFrom } from '../observable/innerFrom';\nimport { Subject } from '../Subject';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber, OperatorSubscriber } from './OperatorSubscriber';\nexport function groupBy(keySelector, elementOrOptions, duration, connector) {\n return operate(function (source, subscriber) {\n var element;\n if (!elementOrOptions || typeof elementOrOptions === 'function') {\n element = elementOrOptions;\n }\n else {\n (duration = elementOrOptions.duration, element = elementOrOptions.element, connector = elementOrOptions.connector);\n }\n var groups = new Map();\n var notify = function (cb) {\n groups.forEach(cb);\n cb(subscriber);\n };\n var handleError = function (err) { return notify(function (consumer) { return consumer.error(err); }); };\n var activeGroups = 0;\n var teardownAttempted = false;\n var groupBySourceSubscriber = new OperatorSubscriber(subscriber, function (value) {\n try {\n var key_1 = keySelector(value);\n var group_1 = groups.get(key_1);\n if (!group_1) {\n groups.set(key_1, (group_1 = connector ? connector() : new Subject()));\n var grouped = createGroupedObservable(key_1, group_1);\n subscriber.next(grouped);\n if (duration) {\n var durationSubscriber_1 = createOperatorSubscriber(group_1, function () {\n group_1.complete();\n durationSubscriber_1 === null || durationSubscriber_1 === void 0 ? void 0 : durationSubscriber_1.unsubscribe();\n }, undefined, undefined, function () { return groups.delete(key_1); });\n groupBySourceSubscriber.add(innerFrom(duration(grouped)).subscribe(durationSubscriber_1));\n }\n }\n group_1.next(element ? element(value) : value);\n }\n catch (err) {\n handleError(err);\n }\n }, function () { return notify(function (consumer) { return consumer.complete(); }); }, handleError, function () { return groups.clear(); }, function () {\n teardownAttempted = true;\n return activeGroups === 0;\n });\n source.subscribe(groupBySourceSubscriber);\n function createGroupedObservable(key, groupSubject) {\n var result = new Observable(function (groupSubscriber) {\n activeGroups++;\n var innerSub = groupSubject.subscribe(groupSubscriber);\n return function () {\n innerSub.unsubscribe();\n --activeGroups === 0 && teardownAttempted && groupBySourceSubscriber.unsubscribe();\n };\n });\n result.key = key;\n return result;\n }\n });\n}\n//# sourceMappingURL=groupBy.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function isEmpty() {\n return operate(function (source, subscriber) {\n source.subscribe(createOperatorSubscriber(subscriber, function () {\n subscriber.next(false);\n subscriber.complete();\n }, function () {\n subscriber.next(true);\n subscriber.complete();\n }));\n });\n}\n//# sourceMappingURL=isEmpty.js.map","import { __values } from \"tslib\";\nimport { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function takeLast(count) {\n return count <= 0\n ? function () { return EMPTY; }\n : operate(function (source, subscriber) {\n var buffer = [];\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n buffer.push(value);\n count < buffer.length && buffer.shift();\n }, function () {\n var e_1, _a;\n try {\n for (var buffer_1 = __values(buffer), buffer_1_1 = buffer_1.next(); !buffer_1_1.done; buffer_1_1 = buffer_1.next()) {\n var value = buffer_1_1.value;\n subscriber.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (buffer_1_1 && !buffer_1_1.done && (_a = buffer_1.return)) _a.call(buffer_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n }, undefined, function () {\n buffer = null;\n }));\n });\n}\n//# sourceMappingURL=takeLast.js.map","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\nexport function last(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) {\n return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); }));\n };\n}\n//# sourceMappingURL=last.js.map","import { reduce } from './reduce';\nimport { isFunction } from '../util/isFunction';\nexport function max(comparer) {\n return reduce(isFunction(comparer) ? function (x, y) { return (comparer(x, y) > 0 ? x : y); } : function (x, y) { return (x > y ? x : y); });\n}\n//# sourceMappingURL=max.js.map","import { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nexport function mergeScan(accumulator, seed, concurrent) {\n if (concurrent === void 0) { concurrent = Infinity; }\n return operate(function (source, subscriber) {\n var state = seed;\n return mergeInternals(source, subscriber, function (value, index) { return accumulator(state, value, index); }, concurrent, function (value) {\n state = value;\n }, false, undefined, function () { return (state = null); });\n });\n}\n//# sourceMappingURL=mergeScan.js.map","import { reduce } from './reduce';\nimport { isFunction } from '../util/isFunction';\nexport function min(comparer) {\n return reduce(isFunction(comparer) ? function (x, y) { return (comparer(x, y) < 0 ? x : y); } : function (x, y) { return (x < y ? x : y); });\n}\n//# sourceMappingURL=min.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function pairwise() {\n return operate(function (source, subscriber) {\n var prev;\n var hasPrev = false;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var p = prev;\n prev = value;\n hasPrev && subscriber.next([p, value]);\n hasPrev = true;\n }));\n });\n}\n//# sourceMappingURL=pairwise.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nvar BehaviorSubject = (function (_super) {\n __extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: false,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, (this._value = value));\n };\n return BehaviorSubject;\n}(Subject));\nexport { BehaviorSubject };\n//# sourceMappingURL=BehaviorSubject.js.map","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nvar ReplaySubject = (function (_super) {\n __extends(ReplaySubject, _super);\n function ReplaySubject(_bufferSize, _windowTime, _timestampProvider) {\n if (_bufferSize === void 0) { _bufferSize = Infinity; }\n if (_windowTime === void 0) { _windowTime = Infinity; }\n if (_timestampProvider === void 0) { _timestampProvider = dateTimestampProvider; }\n var _this = _super.call(this) || this;\n _this._bufferSize = _bufferSize;\n _this._windowTime = _windowTime;\n _this._timestampProvider = _timestampProvider;\n _this._buffer = [];\n _this._infiniteTimeWindow = true;\n _this._infiniteTimeWindow = _windowTime === Infinity;\n _this._bufferSize = Math.max(1, _bufferSize);\n _this._windowTime = Math.max(1, _windowTime);\n return _this;\n }\n ReplaySubject.prototype.next = function (value) {\n var _a = this, isStopped = _a.isStopped, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow, _timestampProvider = _a._timestampProvider, _windowTime = _a._windowTime;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._trimBuffer();\n var subscription = this._innerSubscribe(subscriber);\n var _a = this, _infiniteTimeWindow = _a._infiniteTimeWindow, _buffer = _a._buffer;\n var copy = _buffer.slice();\n for (var i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i]);\n }\n this._checkFinalizedStatuses(subscriber);\n return subscription;\n };\n ReplaySubject.prototype._trimBuffer = function () {\n var _a = this, _bufferSize = _a._bufferSize, _timestampProvider = _a._timestampProvider, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow;\n var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n if (!_infiniteTimeWindow) {\n var now = _timestampProvider.now();\n var last = 0;\n for (var i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n };\n return ReplaySubject;\n}(Subject));\nexport { ReplaySubject };\n//# sourceMappingURL=ReplaySubject.js.map","import { Observable } from '../Observable';\nimport { innerFrom } from './innerFrom';\nimport { argsOrArgArray } from '../util/argsOrArgArray';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nexport function race() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n sources = argsOrArgArray(sources);\n return sources.length === 1 ? innerFrom(sources[0]) : new Observable(raceInit(sources));\n}\nexport function raceInit(sources) {\n return function (subscriber) {\n var subscriptions = [];\n var _loop_1 = function (i) {\n subscriptions.push(innerFrom(sources[i]).subscribe(createOperatorSubscriber(subscriber, function (value) {\n if (subscriptions) {\n for (var s = 0; s < subscriptions.length; s++) {\n s !== i && subscriptions[s].unsubscribe();\n }\n subscriptions = null;\n }\n subscriber.next(value);\n })));\n };\n for (var i = 0; subscriptions && !subscriber.closed && i < sources.length; i++) {\n _loop_1(i);\n }\n };\n}\n//# sourceMappingURL=race.js.map","import { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { timer } from '../observable/timer';\nexport function repeat(countOrConfig) {\n var _a;\n var count = Infinity;\n var delay;\n if (countOrConfig != null) {\n if (typeof countOrConfig === 'object') {\n (_a = countOrConfig.count, count = _a === void 0 ? Infinity : _a, delay = countOrConfig.delay);\n }\n else {\n count = countOrConfig;\n }\n }\n return count <= 0\n ? function () { return EMPTY; }\n : operate(function (source, subscriber) {\n var soFar = 0;\n var sourceSub;\n var resubscribe = function () {\n sourceSub === null || sourceSub === void 0 ? void 0 : sourceSub.unsubscribe();\n sourceSub = null;\n if (delay != null) {\n var notifier = typeof delay === 'number' ? timer(delay) : innerFrom(delay(soFar));\n var notifierSubscriber_1 = createOperatorSubscriber(subscriber, function () {\n notifierSubscriber_1.unsubscribe();\n subscribeToSource();\n });\n notifier.subscribe(notifierSubscriber_1);\n }\n else {\n subscribeToSource();\n }\n };\n var subscribeToSource = function () {\n var syncUnsub = false;\n sourceSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, function () {\n if (++soFar < count) {\n if (sourceSub) {\n resubscribe();\n }\n else {\n syncUnsub = true;\n }\n }\n else {\n subscriber.complete();\n }\n }));\n if (syncUnsub) {\n resubscribe();\n }\n };\n subscribeToSource();\n });\n}\n//# sourceMappingURL=repeat.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { noop } from '../util/noop';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function sample(notifier) {\n return operate(function (source, subscriber) {\n var hasValue = false;\n var lastValue = null;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n hasValue = true;\n lastValue = value;\n }));\n innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, function () {\n if (hasValue) {\n hasValue = false;\n var value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n }, noop));\n });\n}\n//# sourceMappingURL=sample.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { timer } from './timer';\nexport function interval(period, scheduler) {\n if (period === void 0) { period = 0; }\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n if (period < 0) {\n period = 0;\n }\n return timer(period, period, scheduler);\n}\n//# sourceMappingURL=interval.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { sample } from './sample';\nimport { interval } from '../observable/interval';\nexport function sampleTime(period, scheduler) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n return sample(interval(period, scheduler));\n}\n//# sourceMappingURL=sampleTime.js.map","import { operate } from '../util/lift';\nimport { scanInternals } from './scanInternals';\nexport function scan(accumulator, seed) {\n return operate(scanInternals(accumulator, seed, arguments.length >= 2, true));\n}\n//# sourceMappingURL=scan.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nexport function sequenceEqual(compareTo, comparator) {\n if (comparator === void 0) { comparator = function (a, b) { return a === b; }; }\n return operate(function (source, subscriber) {\n var aState = createState();\n var bState = createState();\n var emit = function (isEqual) {\n subscriber.next(isEqual);\n subscriber.complete();\n };\n var createSubscriber = function (selfState, otherState) {\n var sequenceEqualSubscriber = createOperatorSubscriber(subscriber, function (a) {\n var buffer = otherState.buffer, complete = otherState.complete;\n if (buffer.length === 0) {\n complete ? emit(false) : selfState.buffer.push(a);\n }\n else {\n !comparator(a, buffer.shift()) && emit(false);\n }\n }, function () {\n selfState.complete = true;\n var complete = otherState.complete, buffer = otherState.buffer;\n complete && emit(buffer.length === 0);\n sequenceEqualSubscriber === null || sequenceEqualSubscriber === void 0 ? void 0 : sequenceEqualSubscriber.unsubscribe();\n });\n return sequenceEqualSubscriber;\n };\n source.subscribe(createSubscriber(aState, bState));\n innerFrom(compareTo).subscribe(createSubscriber(bState, aState));\n });\n}\nfunction createState() {\n return {\n buffer: [],\n complete: false,\n };\n}\n//# sourceMappingURL=sequenceEqual.js.map","import { __read, __spreadArray } from \"tslib\";\nimport { innerFrom } from '../observable/innerFrom';\nimport { Subject } from '../Subject';\nimport { SafeSubscriber } from '../Subscriber';\nimport { operate } from '../util/lift';\nexport function share(options) {\n if (options === void 0) { options = {}; }\n var _a = options.connector, connector = _a === void 0 ? function () { return new Subject(); } : _a, _b = options.resetOnError, resetOnError = _b === void 0 ? true : _b, _c = options.resetOnComplete, resetOnComplete = _c === void 0 ? true : _c, _d = options.resetOnRefCountZero, resetOnRefCountZero = _d === void 0 ? true : _d;\n return function (wrapperSource) {\n var connection;\n var resetConnection;\n var subject;\n var refCount = 0;\n var hasCompleted = false;\n var hasErrored = false;\n var cancelReset = function () {\n resetConnection === null || resetConnection === void 0 ? void 0 : resetConnection.unsubscribe();\n resetConnection = undefined;\n };\n var reset = function () {\n cancelReset();\n connection = subject = undefined;\n hasCompleted = hasErrored = false;\n };\n var resetAndUnsubscribe = function () {\n var conn = connection;\n reset();\n conn === null || conn === void 0 ? void 0 : conn.unsubscribe();\n };\n return operate(function (source, subscriber) {\n refCount++;\n if (!hasErrored && !hasCompleted) {\n cancelReset();\n }\n var dest = (subject = subject !== null && subject !== void 0 ? subject : connector());\n subscriber.add(function () {\n refCount--;\n if (refCount === 0 && !hasErrored && !hasCompleted) {\n resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero);\n }\n });\n dest.subscribe(subscriber);\n if (!connection &&\n refCount > 0) {\n connection = new SafeSubscriber({\n next: function (value) { return dest.next(value); },\n error: function (err) {\n hasErrored = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnError, err);\n dest.error(err);\n },\n complete: function () {\n hasCompleted = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnComplete);\n dest.complete();\n },\n });\n innerFrom(source).subscribe(connection);\n }\n })(wrapperSource);\n };\n}\nfunction handleReset(reset, on) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n if (on === true) {\n reset();\n return;\n }\n if (on === false) {\n return;\n }\n var onSubscriber = new SafeSubscriber({\n next: function () {\n onSubscriber.unsubscribe();\n reset();\n },\n });\n return innerFrom(on.apply(void 0, __spreadArray([], __read(args)))).subscribe(onSubscriber);\n}\n//# sourceMappingURL=share.js.map","import { createErrorClass } from './createErrorClass';\nexport var SequenceError = createErrorClass(function (_super) {\n return function SequenceErrorImpl(message) {\n _super(this);\n this.name = 'SequenceError';\n this.message = message;\n };\n});\n//# sourceMappingURL=SequenceError.js.map","import { createErrorClass } from './createErrorClass';\nexport var NotFoundError = createErrorClass(function (_super) {\n return function NotFoundErrorImpl(message) {\n _super(this);\n this.name = 'NotFoundError';\n this.message = message;\n };\n});\n//# sourceMappingURL=NotFoundError.js.map","import { EmptyError } from '../util/EmptyError';\nimport { SequenceError } from '../util/SequenceError';\nimport { NotFoundError } from '../util/NotFoundError';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function single(predicate) {\n return operate(function (source, subscriber) {\n var hasValue = false;\n var singleValue;\n var seenValue = false;\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n seenValue = true;\n if (!predicate || predicate(value, index++, source)) {\n hasValue && subscriber.error(new SequenceError('Too many matching values'));\n hasValue = true;\n singleValue = value;\n }\n }, function () {\n if (hasValue) {\n subscriber.next(singleValue);\n subscriber.complete();\n }\n else {\n subscriber.error(seenValue ? new NotFoundError('No matching values') : new EmptyError());\n }\n }));\n });\n}\n//# sourceMappingURL=single.js.map","import { filter } from './filter';\nexport function skip(count) {\n return filter(function (_, index) { return count <= index; });\n}\n//# sourceMappingURL=skip.js.map","import { identity } from '../util/identity';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function skipLast(skipCount) {\n return skipCount <= 0\n ?\n identity\n : operate(function (source, subscriber) {\n var ring = new Array(skipCount);\n var seen = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var valueIndex = seen++;\n if (valueIndex < skipCount) {\n ring[valueIndex] = value;\n }\n else {\n var index = valueIndex % skipCount;\n var oldValue = ring[index];\n ring[index] = value;\n subscriber.next(oldValue);\n }\n }));\n return function () {\n ring = null;\n };\n });\n}\n//# sourceMappingURL=skipLast.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { noop } from '../util/noop';\nexport function skipUntil(notifier) {\n return operate(function (source, subscriber) {\n var taking = false;\n var skipSubscriber = createOperatorSubscriber(subscriber, function () {\n skipSubscriber === null || skipSubscriber === void 0 ? void 0 : skipSubscriber.unsubscribe();\n taking = true;\n }, noop);\n innerFrom(notifier).subscribe(skipSubscriber);\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return taking && subscriber.next(value); }));\n });\n}\n//# sourceMappingURL=skipUntil.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function skipWhile(predicate) {\n return operate(function (source, subscriber) {\n var taking = false;\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) { return (taking || (taking = !predicate(value, index++))) && subscriber.next(value); }));\n });\n}\n//# sourceMappingURL=skipWhile.js.map","import { concat } from '../observable/concat';\nimport { popScheduler } from '../util/args';\nimport { operate } from '../util/lift';\nexport function startWith() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n var scheduler = popScheduler(values);\n return operate(function (source, subscriber) {\n (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);\n });\n}\n//# sourceMappingURL=startWith.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function switchMap(project, resultSelector) {\n return operate(function (source, subscriber) {\n var innerSubscriber = null;\n var index = 0;\n var isComplete = false;\n var checkComplete = function () { return isComplete && !innerSubscriber && subscriber.complete(); };\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe();\n var innerIndex = 0;\n var outerIndex = index++;\n innerFrom(project(value, outerIndex)).subscribe((innerSubscriber = createOperatorSubscriber(subscriber, function (innerValue) { return subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue); }, function () {\n innerSubscriber = null;\n checkComplete();\n })));\n }, function () {\n isComplete = true;\n checkComplete();\n }));\n });\n}\n//# sourceMappingURL=switchMap.js.map","import { switchMap } from './switchMap';\nimport { identity } from '../util/identity';\nexport function switchAll() {\n return switchMap(identity);\n}\n//# sourceMappingURL=switchAll.js.map","import { switchMap } from './switchMap';\nimport { operate } from '../util/lift';\nexport function switchScan(accumulator, seed) {\n return operate(function (source, subscriber) {\n var state = seed;\n switchMap(function (value, index) { return accumulator(state, value, index); }, function (_, innerValue) { return ((state = innerValue), innerValue); })(source).subscribe(subscriber);\n return function () {\n state = null;\n };\n });\n}\n//# sourceMappingURL=switchScan.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { noop } from '../util/noop';\nexport function takeUntil(notifier) {\n return operate(function (source, subscriber) {\n innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, function () { return subscriber.complete(); }, noop));\n !subscriber.closed && source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=takeUntil.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function takeWhile(predicate, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return operate(function (source, subscriber) {\n var index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var result = predicate(value, index++);\n (result || inclusive) && subscriber.next(value);\n !result && subscriber.complete();\n }));\n });\n}\n//# sourceMappingURL=takeWhile.js.map","import { isFunction } from '../util/isFunction';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { identity } from '../util/identity';\nexport function tap(observerOrNext, error, complete) {\n var tapObserver = isFunction(observerOrNext) || error || complete\n ?\n { next: observerOrNext, error: error, complete: complete }\n : observerOrNext;\n return tapObserver\n ? operate(function (source, subscriber) {\n var _a;\n (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n var isUnsub = true;\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var _a;\n (_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);\n subscriber.next(value);\n }, function () {\n var _a;\n isUnsub = false;\n (_a = tapObserver.complete) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n subscriber.complete();\n }, function (err) {\n var _a;\n isUnsub = false;\n (_a = tapObserver.error) === null || _a === void 0 ? void 0 : _a.call(tapObserver, err);\n subscriber.error(err);\n }, function () {\n var _a, _b;\n if (isUnsub) {\n (_a = tapObserver.unsubscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n }\n (_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver);\n }));\n })\n :\n identity;\n}\n//# sourceMappingURL=tap.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nexport function throttle(durationSelector, config) {\n return operate(function (source, subscriber) {\n var _a = config !== null && config !== void 0 ? config : {}, _b = _a.leading, leading = _b === void 0 ? true : _b, _c = _a.trailing, trailing = _c === void 0 ? false : _c;\n var hasValue = false;\n var sendValue = null;\n var throttled = null;\n var isComplete = false;\n var endThrottling = function () {\n throttled === null || throttled === void 0 ? void 0 : throttled.unsubscribe();\n throttled = null;\n if (trailing) {\n send();\n isComplete && subscriber.complete();\n }\n };\n var cleanupThrottling = function () {\n throttled = null;\n isComplete && subscriber.complete();\n };\n var startThrottle = function (value) {\n return (throttled = innerFrom(durationSelector(value)).subscribe(createOperatorSubscriber(subscriber, endThrottling, cleanupThrottling)));\n };\n var send = function () {\n if (hasValue) {\n hasValue = false;\n var value = sendValue;\n sendValue = null;\n subscriber.next(value);\n !isComplete && startThrottle(value);\n }\n };\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n hasValue = true;\n sendValue = value;\n !(throttled && !throttled.closed) && (leading ? send() : startThrottle(value));\n }, function () {\n isComplete = true;\n !(trailing && hasValue && throttled && !throttled.closed) && subscriber.complete();\n }));\n });\n}\n//# sourceMappingURL=throttle.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { throttle } from './throttle';\nimport { timer } from '../observable/timer';\nexport function throttleTime(duration, scheduler, config) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n var duration$ = timer(duration, scheduler);\n return throttle(function () { return duration$; }, config);\n}\n//# sourceMappingURL=throttleTime.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function timeInterval(scheduler) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n return operate(function (source, subscriber) {\n var last = scheduler.now();\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n var now = scheduler.now();\n var interval = now - last;\n last = now;\n subscriber.next(new TimeInterval(value, interval));\n }));\n });\n}\nvar TimeInterval = (function () {\n function TimeInterval(value, interval) {\n this.value = value;\n this.interval = interval;\n }\n return TimeInterval;\n}());\nexport { TimeInterval };\n//# sourceMappingURL=timeInterval.js.map","import { dateTimestampProvider } from '../scheduler/dateTimestampProvider';\nimport { map } from './map';\nexport function timestamp(timestampProvider) {\n if (timestampProvider === void 0) { timestampProvider = dateTimestampProvider; }\n return map(function (value) { return ({ value: value, timestamp: timestampProvider.now() }); });\n}\n//# sourceMappingURL=timestamp.js.map","import { __read, __spreadArray } from \"tslib\";\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { identity } from '../util/identity';\nimport { noop } from '../util/noop';\nimport { popResultSelector } from '../util/args';\nexport function withLatestFrom() {\n var inputs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n inputs[_i] = arguments[_i];\n }\n var project = popResultSelector(inputs);\n return operate(function (source, subscriber) {\n var len = inputs.length;\n var otherValues = new Array(len);\n var hasValue = inputs.map(function () { return false; });\n var ready = false;\n var _loop_1 = function (i) {\n innerFrom(inputs[i]).subscribe(createOperatorSubscriber(subscriber, function (value) {\n otherValues[i] = value;\n if (!ready && !hasValue[i]) {\n hasValue[i] = true;\n (ready = hasValue.every(identity)) && (hasValue = null);\n }\n }, noop));\n };\n for (var i = 0; i < len; i++) {\n _loop_1(i);\n }\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n if (ready) {\n var values = __spreadArray([value], __read(otherValues));\n subscriber.next(project ? project.apply(void 0, __spreadArray([], __read(values))) : values);\n }\n }));\n });\n}\n//# sourceMappingURL=withLatestFrom.js.map","import { __read, __spreadArray } from \"tslib\";\nimport { Observable } from '../Observable';\nimport { innerFrom } from './innerFrom';\nimport { argsOrArgArray } from '../util/argsOrArgArray';\nimport { EMPTY } from './empty';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { popResultSelector } from '../util/args';\nexport function zip() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var resultSelector = popResultSelector(args);\n var sources = argsOrArgArray(args);\n return sources.length\n ? new Observable(function (subscriber) {\n var buffers = sources.map(function () { return []; });\n var completed = sources.map(function () { return false; });\n subscriber.add(function () {\n buffers = completed = null;\n });\n var _loop_1 = function (sourceIndex) {\n innerFrom(sources[sourceIndex]).subscribe(createOperatorSubscriber(subscriber, function (value) {\n buffers[sourceIndex].push(value);\n if (buffers.every(function (buffer) { return buffer.length; })) {\n var result = buffers.map(function (buffer) { return buffer.shift(); });\n subscriber.next(resultSelector ? resultSelector.apply(void 0, __spreadArray([], __read(result))) : result);\n if (buffers.some(function (buffer, i) { return !buffer.length && completed[i]; })) {\n subscriber.complete();\n }\n }\n }, function () {\n completed[sourceIndex] = true;\n !buffers[sourceIndex].length && subscriber.complete();\n }));\n };\n for (var sourceIndex = 0; !subscriber.closed && sourceIndex < sources.length; sourceIndex++) {\n _loop_1(sourceIndex);\n }\n return function () {\n buffers = completed = null;\n };\n })\n : EMPTY;\n}\n//# sourceMappingURL=zip.js.map","import { __extends } from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nvar VirtualTimeScheduler = (function (_super) {\n __extends(VirtualTimeScheduler, _super);\n function VirtualTimeScheduler(schedulerActionCtor, maxFrames) {\n if (schedulerActionCtor === void 0) { schedulerActionCtor = VirtualAction; }\n if (maxFrames === void 0) { maxFrames = Infinity; }\n var _this = _super.call(this, schedulerActionCtor, function () { return _this.frame; }) || this;\n _this.maxFrames = maxFrames;\n _this.frame = 0;\n _this.index = -1;\n return _this;\n }\n VirtualTimeScheduler.prototype.flush = function () {\n var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;\n var error;\n var action;\n while ((action = actions[0]) && action.delay <= maxFrames) {\n actions.shift();\n this.frame = action.delay;\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n }\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n VirtualTimeScheduler.frameTimeFactor = 10;\n return VirtualTimeScheduler;\n}(AsyncScheduler));\nexport { VirtualTimeScheduler };\nvar VirtualAction = (function (_super) {\n __extends(VirtualAction, _super);\n function VirtualAction(scheduler, work, index) {\n if (index === void 0) { index = (scheduler.index += 1); }\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.index = index;\n _this.active = true;\n _this.index = scheduler.index = index;\n return _this;\n }\n VirtualAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (Number.isFinite(delay)) {\n if (!this.id) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.active = false;\n var action = new VirtualAction(this.scheduler, this.work);\n this.add(action);\n return action.schedule(state, delay);\n }\n else {\n return Subscription.EMPTY;\n }\n };\n VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n this.delay = scheduler.frame + delay;\n var actions = scheduler.actions;\n actions.push(this);\n actions.sort(VirtualAction.sortActions);\n return 1;\n };\n VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return undefined;\n };\n VirtualAction.prototype._execute = function (state, delay) {\n if (this.active === true) {\n return _super.prototype._execute.call(this, state, delay);\n }\n };\n VirtualAction.sortActions = function (a, b) {\n if (a.delay === b.delay) {\n if (a.index === b.index) {\n return 0;\n }\n else if (a.index > b.index) {\n return 1;\n }\n else {\n return -1;\n }\n }\n else if (a.delay > b.delay) {\n return 1;\n }\n else {\n return -1;\n }\n };\n return VirtualAction;\n}(AsyncAction));\nexport { VirtualAction };\n//# sourceMappingURL=VirtualTimeScheduler.js.map","import { Observable } from '../Observable';\nimport { innerFrom } from './innerFrom';\nexport function defer(observableFactory) {\n return new Observable(function (subscriber) {\n innerFrom(observableFactory()).subscribe(subscriber);\n });\n}\n//# sourceMappingURL=defer.js.map","import { Observable } from '../Observable';\nimport { argsArgArrayOrObject } from '../util/argsArgArrayOrObject';\nimport { innerFrom } from './innerFrom';\nimport { popResultSelector } from '../util/args';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { createObject } from '../util/createObject';\nexport function forkJoin() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var resultSelector = popResultSelector(args);\n var _a = argsArgArrayOrObject(args), sources = _a.args, keys = _a.keys;\n var result = new Observable(function (subscriber) {\n var length = sources.length;\n if (!length) {\n subscriber.complete();\n return;\n }\n var values = new Array(length);\n var remainingCompletions = length;\n var remainingEmissions = length;\n var _loop_1 = function (sourceIndex) {\n var hasValue = false;\n innerFrom(sources[sourceIndex]).subscribe(createOperatorSubscriber(subscriber, function (value) {\n if (!hasValue) {\n hasValue = true;\n remainingEmissions--;\n }\n values[sourceIndex] = value;\n }, function () { return remainingCompletions--; }, undefined, function () {\n if (!remainingCompletions || !hasValue) {\n if (!remainingEmissions) {\n subscriber.next(keys ? createObject(keys, values) : values);\n }\n subscriber.complete();\n }\n }));\n };\n for (var sourceIndex = 0; sourceIndex < length; sourceIndex++) {\n _loop_1(sourceIndex);\n }\n });\n return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result;\n}\n//# sourceMappingURL=forkJoin.js.map","import { __generator } from \"tslib\";\nimport { identity } from '../util/identity';\nimport { isScheduler } from '../util/isScheduler';\nimport { defer } from './defer';\nimport { scheduleIterable } from '../scheduled/scheduleIterable';\nexport function generate(initialStateOrOptions, condition, iterate, resultSelectorOrScheduler, scheduler) {\n var _a, _b;\n var resultSelector;\n var initialState;\n if (arguments.length === 1) {\n (_a = initialStateOrOptions, initialState = _a.initialState, condition = _a.condition, iterate = _a.iterate, _b = _a.resultSelector, resultSelector = _b === void 0 ? identity : _b, scheduler = _a.scheduler);\n }\n else {\n initialState = initialStateOrOptions;\n if (!resultSelectorOrScheduler || isScheduler(resultSelectorOrScheduler)) {\n resultSelector = identity;\n scheduler = resultSelectorOrScheduler;\n }\n else {\n resultSelector = resultSelectorOrScheduler;\n }\n }\n function gen() {\n var state;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n state = initialState;\n _a.label = 1;\n case 1:\n if (!(!condition || condition(state))) return [3, 4];\n return [4, resultSelector(state)];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3:\n state = iterate(state);\n return [3, 1];\n case 4: return [2];\n }\n });\n }\n return defer((scheduler\n ?\n function () { return scheduleIterable(gen(), scheduler); }\n :\n gen));\n}\n//# sourceMappingURL=generate.js.map","import { defer } from './defer';\nexport function iif(condition, trueResult, falseResult) {\n return defer(function () { return (condition() ? trueResult : falseResult); });\n}\n//# sourceMappingURL=iif.js.map","import { mergeAll } from '../operators/mergeAll';\nimport { innerFrom } from './innerFrom';\nimport { EMPTY } from './empty';\nimport { popNumber, popScheduler } from '../util/args';\nimport { from } from './from';\nexport function merge() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = popScheduler(args);\n var concurrent = popNumber(args, Infinity);\n var sources = args;\n return !sources.length\n ?\n EMPTY\n : sources.length === 1\n ?\n innerFrom(sources[0])\n :\n mergeAll(concurrent)(from(sources, scheduler));\n}\n//# sourceMappingURL=merge.js.map","import { Observable } from '../Observable';\nimport { EMPTY } from './empty';\nexport function range(start, count, scheduler) {\n if (count == null) {\n count = start;\n start = 0;\n }\n if (count <= 0) {\n return EMPTY;\n }\n var end = count + start;\n return new Observable(scheduler\n ?\n function (subscriber) {\n var n = start;\n return scheduler.schedule(function () {\n if (n < end) {\n subscriber.next(n++);\n this.schedule();\n }\n else {\n subscriber.complete();\n }\n });\n }\n :\n function (subscriber) {\n var n = start;\n while (n < end && !subscriber.closed) {\n subscriber.next(n++);\n }\n subscriber.complete();\n });\n}\n//# sourceMappingURL=range.js.map","import {\n bindCallback,\n bindNodeCallback,\n defer,\n EMPTY,\n fromEvent,\n fromEventPattern,\n from,\n generate,\n iif,\n interval,\n of,\n range,\n throwError,\n timer\n} from \"rxjs\";\nimport { delayWhen } from \"rxjs/operators\";\n\nexport const creationExamples = {\n // Creates the Observable lazily, that is, only when it is subscribed.\n defer: {\n label: \"defer(() => of(10, 20, 30))\",\n inputs: [],\n apply: function (inputs, scheduler) {\n return defer(() =>\n of(10, 20, 30).pipe(delayWhen((x) => timer(x, scheduler)))\n );\n }\n },\n\n // Just emits 'complete', and nothing else.\n EMPTY: {\n label: \"EMPTY\",\n inputs: [],\n apply: function (inputs, scheduler) {\n return EMPTY;\n }\n },\n\n from: {\n label: \"from([10, 20, 30])\",\n inputs: [],\n apply: function (inputs, scheduler) {\n return from([10, 20, 30]).pipe(delayWhen((x) => timer(x, scheduler)));\n }\n },\n\n fromEvent: {\n label: \"fromEvent(document, 'click')\",\n inputs: [],\n apply: function (inputs, scheduler) {\n let t = 30;\n return from([\"ev\", \"ev\"]).pipe(\n delayWhen((ev) => timer((t += 20), scheduler))\n );\n }\n },\n\n fromEventPattern: {\n label: \"fromEventPattern(addHandler, removeHandler)\",\n inputs: [],\n apply: function (inputs, scheduler) {\n let t = 30;\n return from([\"ev\", \"ev\"]).pipe(\n delayWhen((ev) => timer((t += 20), scheduler))\n );\n }\n },\n\n generate: {\n label:\n \"generate({initialState: 0,condition: (x) => x < 3,iterate: (x) => x + 1,resultSelector: (x) => x})\",\n inputs: [],\n apply: function (inputs, scheduler) {\n return generate({\n initialState: 0,\n condition: (x) => x < 3,\n iterate: (x) => x + 1,\n resultSelector: (x) => x\n }).pipe(delayWhen((x) => timer(x * 10, scheduler)));\n }\n },\n\n iif: {\n label: \"iif(() => boolean, trueObservable, falseObservable)\",\n inputs: [],\n apply: function (inputs, scheduler) {\n return iif(() => true, of(\"true\"), of(\"false\"));\n }\n },\n\n interval: {\n label: \"interval(10, scheduler)\",\n inputs: [],\n apply: function (inputs, scheduler) {\n return interval(10, scheduler);\n }\n },\n\n of: {\n label: \"of(1,2,3)\",\n inputs: [],\n apply: function (inputs, scheduler) {\n return of(1, 2, 3).pipe(delayWhen((x) => timer(x * 10, scheduler)));\n }\n },\n\n range: {\n label: \"range(1, 10)\",\n inputs: [],\n apply: function (inputs, scheduler) {\n return range(1, 10).pipe(delayWhen((x) => timer(x * 10, scheduler)));\n }\n },\n\n timer: {\n label: \"timer(start: 30, interval: 10)\",\n inputs: [],\n apply: function (inputs, scheduler) {\n return timer(30, 10, scheduler);\n }\n }\n};\n","import { combineLatest, concat, forkJoin, merge, race, zip } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\n\nexport const combinationExamples = {\n combineLatest: {\n label: \"combineLatest([$0, $1])\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 20, c: 2 },\n { t: 65, c: 3 },\n { t: 75, c: 4 },\n { t: 92, c: 5 }\n ],\n [\n { t: 10, c: \"A\" },\n { t: 25, c: \"B\" },\n { t: 50, c: \"C\" },\n { t: 57, c: \"D\" }\n ]\n ],\n apply: function (inputs) {\n return combineLatest([inputs[0], inputs[1]]).pipe(\n map(([x, y]) => `[${x.content},${y.content}]`)\n );\n }\n },\n\n concat: {\n label: \"concat\",\n inputs: [\n [{ t: 0, c: 1 }, { t: 15, c: 1 }, { t: 50, c: 1 }, 57],\n [{ t: 0, c: 2 }, { t: 8, c: 2 }, 12]\n ],\n apply: function (inputs) {\n return concat(...inputs);\n }\n },\n\n forkJoin: {\n label: \"forkJoin\",\n inputs: [\n [{ t: 0, c: \"A\" }, { t: 15, c: \"B\" }, { t: 30, c: \"C\" }, 50],\n [{ t: 37, c: \"D\" }, { t: 68, c: \"E\" }, 80]\n ],\n apply: function (inputs) {\n return forkJoin(inputs).pipe(\n map(([x, y]) => `[${x.content},${y.content}]`)\n );\n }\n },\n\n merge: {\n label: \"merge\",\n inputs: [\n [{ t: 0, c: 1 }, { t: 15, c: 1 }, { t: 50, c: 1 }, 57],\n [{ t: 0, c: 2 }, { t: 8, c: 2 }, 12]\n ],\n apply: function (inputs) {\n return merge(...inputs);\n }\n },\n\n race: {\n label: \"race\",\n inputs: [\n [\n { t: 10, c: 20 },\n { t: 20, c: 40 },\n { t: 30, c: 60 }\n ],\n [\n { t: 5, c: 1 },\n { t: 15, c: 2 },\n { t: 25, c: 3 }\n ],\n [\n { t: 20, c: 0 },\n { t: 32, c: 0 },\n { t: 44, c: 0 }\n ]\n ],\n apply: function (inputs) {\n return race(inputs);\n }\n },\n\n zip: {\n label: \"zip\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 20, c: 2 },\n { t: 65, c: 3 },\n { t: 75, c: 4 },\n { t: 92, c: 5 }\n ],\n [\n { t: 10, c: \"A\" },\n { t: 25, c: \"B\" },\n { t: 50, c: \"C\" },\n { t: 57, c: \"D\" }\n ]\n ],\n apply: function (inputs) {\n return zip(inputs[0], inputs[1], (x, y) => \"\" + x.content + y.content);\n }\n }\n};\n","import { defaultIfEmpty, every, isEmpty, sequenceEqual } from \"rxjs/operators\";\n\nexport const conditionalExamples = {\n defaultIfEmpty: {\n label: \"defaultIfEmpty(true)\",\n inputs: [[99]],\n apply: function (inputs) {\n return inputs[0].pipe(defaultIfEmpty(true));\n }\n },\n\n every: {\n label: \"every(x => x < 10)\",\n inputs: [\n [\n { t: 5, c: 1 },\n { t: 15, c: 2 },\n { t: 25, c: 3 },\n { t: 35, c: 4 },\n { t: 65, c: 5 },\n 80\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(every(({ content }) => content < 10));\n }\n },\n\n isEmpty: {\n label: \"isEmpty(true)\",\n inputs: [[99]],\n apply: function (inputs) {\n return inputs[0].pipe(isEmpty(true));\n }\n },\n\n sequenceEqual: {\n label: \"sequenceEqual\",\n inputs: [\n [\n { t: 5, c: 1 },\n { t: 15, c: 2 },\n { t: 25, c: 3 },\n { t: 35, c: 4 },\n { t: 65, c: 5 },\n 85\n ],\n [\n { t: 2, c: 1 },\n { t: 20, c: 2 },\n { t: 40, c: 3 },\n { t: 70, c: 4 },\n { t: 77, c: 5 },\n 85\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(\n sequenceEqual(inputs[1], (x, y) => x.content === y.content)\n );\n }\n }\n};\n","import { timer } from \"rxjs\";\nimport {\n tap,\n /////////////////\n audit,\n auditTime,\n debounce,\n debounceTime,\n distinct,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n elementAt,\n filter,\n find,\n findIndex,\n first,\n ignoreElements,\n last,\n sample,\n sampleTime,\n single,\n skip,\n skipLast,\n skipUntil,\n skipWhile,\n take,\n takeLast,\n takeUntil,\n takeWhile,\n throttle,\n throttleTime\n} from \"rxjs/operators\";\n\nexport const filteringExamples = {\n audit: {\n label: \"audit\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 26, c: 2 },\n { t: 34, c: 3 },\n { t: 40, c: 4 },\n { t: 45, c: 5 },\n { t: 79, c: 6 }\n ],\n [\n { t: 30, c: \"A\" },\n { t: 60, c: \"B\" }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n audit(() => inputs[1].pipe(tap(console.log)), scheduler)\n );\n }\n },\n\n auditTime: {\n label: \"auditTime(30)\",\n inputs: [\n [\n { t: 0, c: 0 },\n { t: 26, c: 26 },\n { t: 34, c: 34 },\n { t: 40, c: 40 },\n { t: 45, c: 45 },\n { t: 79, c: 79 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(auditTime(30, scheduler));\n }\n },\n\n debounce: {\n label: \"debounce\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 26, c: 2 },\n { t: 34, c: 1 },\n { t: 40, c: 1 },\n { t: 45, c: 2 },\n { t: 79, c: 1 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n // debounce((x) => timer(x.content * 10, 1000, scheduler))\n debounce((x) => timer(x.content * 10, scheduler))\n );\n }\n },\n\n debounceTime: {\n label: \"debounceTime(10)\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 26, c: 2 },\n { t: 34, c: 3 },\n { t: 40, c: 4 },\n { t: 45, c: 5 },\n { t: 79, c: 6 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(debounceTime(10, scheduler));\n }\n },\n\n distinct: {\n label: \"distinct\",\n inputs: [\n [\n { t: 5, c: 1 },\n { t: 20, c: 2 },\n { t: 35, c: 2 },\n { t: 60, c: 1 },\n { t: 70, c: 3 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(distinct((x) => x.content));\n }\n },\n\n distinctUntilChanged: {\n label: \"distinctUntilChanged\",\n inputs: [\n [\n { t: 5, c: 1 },\n { t: 20, c: 2 },\n { t: 35, c: 2 },\n { t: 60, c: 1 },\n { t: 70, c: 3 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(distinctUntilChanged(undefined, (x) => x.content));\n }\n },\n\n elementAt: {\n label: \"elementAt(2)\",\n inputs: [\n [\n { t: 30, c: 1 },\n { t: 40, c: 2 },\n { t: 65, c: 3 },\n { t: 75, c: 4 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(elementAt(2));\n }\n },\n\n filter: {\n label: \"filter(x => x > 10)\",\n inputs: [\n [\n { t: 5, c: 2 },\n { t: 15, c: 30 },\n { t: 25, c: 22 },\n { t: 35, c: 5 },\n { t: 45, c: 60 },\n { t: 55, c: 1 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(filter((x) => x.content > 10));\n }\n },\n\n find: {\n label: \"find(x => x > 10)\",\n inputs: [\n [\n { t: 5, c: 2 },\n { t: 15, c: 30 },\n { t: 25, c: 22 },\n { t: 35, c: 5 },\n { t: 45, c: 60 },\n { t: 55, c: 1 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(find((x) => x.content > 10));\n }\n },\n\n findIndex: {\n label: \"findIndex(x => x > 10)\",\n inputs: [\n [\n { t: 5, c: 2 },\n { t: 15, c: 30 },\n { t: 25, c: 22 },\n { t: 35, c: 5 },\n { t: 45, c: 60 },\n { t: 55, c: 1 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(findIndex(({ content }) => content > 10));\n }\n },\n\n first: {\n label: \"first\",\n inputs: [\n [{ t: 30, c: 1 }, { t: 40, c: 2 }, { t: 65, c: 3 }, { t: 75, c: 4 }, 85]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(first());\n }\n },\n\n ignoreElements: {\n label: \"ignoreElements\",\n inputs: [\n [\n { t: 20, c: \"A\" },\n { t: 40, c: \"B\" },\n { t: 50, c: \"C\" },\n { t: 75, c: \"D\" },\n 90\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(ignoreElements());\n }\n },\n\n last: {\n label: \"last\",\n inputs: [\n [{ t: 30, c: 1 }, { t: 40, c: 2 }, { t: 65, c: 3 }, { t: 75, c: 4 }, 85]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(last());\n }\n },\n\n // Emits the most recently emitted value from the source Observable whenever another Observable, the notifier, emits.\n sample: {\n label: \"sample\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 20, c: 2 },\n { t: 40, c: 3 },\n { t: 60, c: 4 },\n { t: 80, c: 5 }\n ],\n [\n { t: 10, c: \"A\" },\n { t: 25, c: \"B\" },\n { t: 33, c: \"C\" },\n { t: 70, c: \"D\" },\n 90\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(sample(inputs[1]));\n }\n },\n\n sampleTime: {\n label: \"sampleTime(10)\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 20, c: 2 },\n { t: 40, c: 3 },\n { t: 60, c: 4 },\n { t: 80, c: 5 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(sampleTime(10, scheduler));\n }\n },\n\n single: {\n label: \"single\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 20, c: 2 },\n { t: 40, c: 3 },\n { t: 60, c: 4 },\n { t: 80, c: 5 },\n 100\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(single((x) => x.content == 3));\n }\n },\n\n skip: {\n label: \"skip(2)\",\n inputs: [\n [\n { t: 30, c: 1 },\n { t: 40, c: 2 },\n { t: 65, c: 3 },\n { t: 75, c: 4 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(skip(2));\n }\n },\n\n skipLast: {\n label: \"skipLast(2)\",\n inputs: [\n [\n { t: 30, c: 1 },\n { t: 40, c: 2 },\n { t: 65, c: 3 },\n { t: 75, c: 4 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(skipLast(2));\n }\n },\n\n skipUntil: {\n label: \"skipUntil\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 10, c: 2 },\n { t: 20, c: 3 },\n { t: 30, c: 4 },\n { t: 40, c: 5 },\n { t: 50, c: 6 },\n { t: 60, c: 7 },\n { t: 70, c: 8 },\n { t: 80, c: 9 }\n ],\n [\n { t: 45, c: 0 },\n { t: 73, c: 0 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(skipUntil(inputs[1]));\n }\n },\n\n skipWhile: {\n label: \"skipWhile(x => x < 5)\",\n inputs: [\n [\n { t: 5, c: 1 },\n { t: 20, c: 3 },\n { t: 35, c: 6 },\n { t: 50, c: 4 },\n { t: 65, c: 7 },\n { t: 80, c: 2 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(skipWhile((x) => x.content < 5));\n }\n },\n\n take: {\n label: \"take(2)\",\n inputs: [\n [{ t: 30, c: 1 }, { t: 40, c: 2 }, { t: 65, c: 3 }, { t: 75, c: 4 }, 85]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(take(2, scheduler));\n }\n },\n\n takeLast: {\n label: \"takeLast(1)\",\n inputs: [\n [{ t: 30, c: 1 }, { t: 40, c: 2 }, { t: 65, c: 3 }, { t: 75, c: 4 }, 85]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(takeLast(1));\n }\n },\n\n takeUntil: {\n label: \"takeUntil\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 10, c: 2 },\n { t: 20, c: 3 },\n { t: 30, c: 4 },\n { t: 40, c: 5 },\n { t: 50, c: 6 },\n { t: 60, c: 7 },\n { t: 70, c: 8 },\n { t: 80, c: 9 }\n ],\n [\n { t: 45, c: 0 },\n { t: 73, c: 0 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(takeUntil(inputs[1]));\n }\n },\n\n takeWhile: {\n label: \"takeWhile(x => x < 5)\",\n inputs: [\n [\n { t: 5, c: 1 },\n { t: 20, c: 3 },\n { t: 35, c: 6 },\n { t: 50, c: 4 },\n { t: 65, c: 7 },\n { t: 80, c: 2 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(takeWhile((x) => x.content < 5));\n }\n },\n\n throttle: {\n label: \"throttle\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 26, c: 2 },\n { t: 34, c: 1 },\n { t: 40, c: 1 },\n { t: 45, c: 2 },\n { t: 79, c: 1 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n throttle((x) => timer(x.content * 10, 1000, scheduler))\n );\n }\n },\n\n throttleTime: {\n label: \"throttleTime(25)\",\n inputs: [\n [\n { t: 0, c: \"A\" },\n { t: 8, c: \"B\" },\n { t: 16, c: \"C\" },\n { t: 40, c: \"D\" },\n { t: 55, c: \"E\" },\n { t: 60, c: \"F\" },\n { t: 70, c: \"G\" }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(throttleTime(25, scheduler));\n }\n }\n};\n","import { count, max, min, reduce } from \"rxjs/operators\";\n\nexport const mathExamples = {\n count: {\n label: \"count(x => x > 10)\",\n inputs: [\n [\n { t: 5, c: 2 },\n { t: 15, c: 30 },\n { t: 25, c: 22 },\n { t: 35, c: 5 },\n { t: 45, c: 60 },\n { t: 55, c: 1 },\n 80\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(count(({ content }) => content > 10));\n }\n },\n\n max: {\n label: \"max\",\n inputs: [\n [\n { t: 5, c: 2 },\n { t: 15, c: 30 },\n { t: 25, c: 22 },\n { t: 35, c: 5 },\n { t: 45, c: 60 },\n { t: 55, c: 1 },\n 80\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(\n max((x, y) => {\n if (x.content > y.content) {\n return 1;\n }\n if (x.content < y.content) {\n return -1;\n }\n return 0;\n })\n );\n }\n },\n\n min: {\n label: \"min\",\n inputs: [\n [\n { t: 5, c: 2 },\n { t: 15, c: 30 },\n { t: 25, c: 22 },\n { t: 35, c: 5 },\n { t: 45, c: 60 },\n { t: 55, c: 1 },\n 80\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(\n min((x, y) => {\n if (x.content > y.content) {\n return 1;\n }\n if (x.content < y.content) {\n return -1;\n }\n return 0;\n })\n );\n }\n },\n\n reduce: {\n label: \"reduce((x, y) => x + y)\",\n inputs: [\n [\n { t: 5, c: 1 },\n { t: 15, c: 2 },\n { t: 25, c: 3 },\n { t: 35, c: 4 },\n { t: 65, c: 5 },\n 80\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(\n reduce((x, y) =>\n Object.assign(x, { content: x.content + y.content, id: x.id + y.id })\n )\n );\n }\n }\n};\n","import { timer, EMPTY, of } from \"rxjs\";\nimport {\n reduce,\n tap,\n delayWhen,\n /////////////////\n buffer,\n bufferCount,\n bufferTime,\n bufferToggle,\n bufferWhen,\n concatMap,\n exhaustMap,\n expand,\n groupBy,\n map,\n mergeMap,\n mergeScan,\n pairwise,\n partition,\n repeat,\n scan,\n startWith,\n switchMap,\n switchScan,\n window,\n windowCount,\n windowTime,\n windowToggle,\n windowWhen,\n withLatestFrom\n} from \"rxjs/operators\";\n\nexport const transformationExamples = {\n buffer: {\n label: \"buffer\",\n inputs: [\n [\n { t: 9, c: \"A\" },\n { t: 23, c: \"B\" },\n { t: 40, c: \"C\" },\n { t: 54, c: \"D\" },\n { t: 60, c: \"E\" },\n { t: 85, c: \"F\" }\n ],\n [\n { t: 33, c: 0 },\n { t: 66, c: 0 },\n { t: 90, c: 0 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(\n map((i) => i.content),\n buffer(inputs[1]),\n map((x) => `[${x}]`)\n );\n }\n },\n\n bufferCount: {\n label: \"bufferCount(3, 2)\",\n inputs: [\n [\n { t: 9, c: \"A\" },\n { t: 23, c: \"B\" },\n { t: 40, c: \"C\" },\n { t: 54, c: \"D\" },\n { t: 71, c: \"E\" },\n { t: 85, c: \"F\" },\n 90\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(\n map((i) => i.content),\n bufferCount(3, 2),\n map((arr) => `[${arr}]`),\n tap(console.log)\n );\n }\n },\n\n bufferTime: {\n label: \"bufferTime(30)\",\n inputs: [\n [\n { t: 0, c: \"A\" },\n { t: 10, c: \"B\" },\n { t: 22, c: \"C\" },\n { t: 61, c: \"D\" },\n { t: 71, c: \"E\" },\n { t: 95, c: \"F\" }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n map((i) => i.content),\n bufferTime(30, scheduler),\n map((x) => `[${x}]`)\n );\n }\n },\n\n bufferToggle: {\n label: \"bufferToggle(open$, x => timer(x))\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 10, c: 2 },\n { t: 20, c: 3 },\n { t: 30, c: 4 },\n { t: 40, c: 5 },\n { t: 50, c: 6 },\n { t: 60, c: 7 },\n { t: 70, c: 8 },\n { t: 80, c: 9 }\n ],\n [\n { t: 15, c: 10 },\n { t: 45, c: 30 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n map((i) => i.content),\n bufferToggle(inputs[1], (x) => timer(x.content, scheduler)),\n map((x) => `[${x}]`)\n );\n }\n },\n\n bufferWhen: {\n label: \"bufferWhen\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 10, c: 2 },\n { t: 20, c: 3 },\n { t: 30, c: 4 },\n { t: 40, c: 5 },\n { t: 50, c: 6 },\n { t: 60, c: 7 },\n { t: 70, c: 8 },\n { t: 80, c: 9 }\n ],\n [\n { t: 35, c: 0 },\n { t: 50, c: 0 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(\n map((i) => i.content),\n bufferWhen(() => inputs[1]),\n map((x) => `[${x}]`)\n );\n }\n },\n\n concatMap: {\n label: \"concatMap\",\n inputs: [\n [\n { t: 0, c: \"A\" },\n { t: 42, c: \"B\" },\n { t: 55, c: \"C\" }\n ],\n [{ t: 0, c: 1 }, { t: 10, c: 2 }, { t: 20, c: 3 }, 20]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n concatMap((x) => inputs[1].pipe(map((y) => \"\" + x.content + y.content)))\n );\n }\n },\n\n exhaustMap: {\n label: \"exhaustMap\",\n inputs: [\n [\n { t: 0, c: \"A\" },\n { t: 42, c: \"B\" },\n { t: 55, c: \"C\" }\n ],\n [{ t: 0, c: 1 }, { t: 10, c: 2 }, { t: 20, c: 3 }, 20]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n exhaustMap((x) =>\n inputs[1].pipe(map((y) => \"\" + x.content + y.content))\n )\n );\n }\n },\n\n // // It's similar to mergeMap, but applies the projection function to every source value as well as every output value. It's recursive.\n // expand: {\n // label: \"expand:recursive\",\n // inputs: [\n // [{ t: 0, c: 2 }, 30],\n // [{ t: 0, c: 3 }, 10]\n // ],\n // apply: function (inputs, scheduler) {\n // return inputs[0].pipe(\n // expand((x) =>\n // x >= 18 ? EMPTY : inputs[1].pipe(map((y) => x.content * y.content))\n // )\n // );\n // }\n // },\n\n groupBy: {\n label: \"groupBy(i => i.content)【结果3,4重合】\",\n inputs: [\n [\n { t: 10, c: 1 },\n { t: 20, c: 2 },\n { t: 30, c: 1 },\n { t: 40, c: 2 },\n { t: 50, c: 1 },\n 60\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n groupBy((i) => i.content),\n mergeMap((group$) =>\n group$.pipe(reduce((acc, cur) => acc + cur.content, 0))\n ),\n tap(console.log)\n );\n }\n },\n\n map: {\n label: \"map(x => 10 * x)\",\n inputs: [\n [\n { t: 10, c: 1 },\n { t: 20, c: 2 },\n { t: 50, c: 3 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(map((i) => i.content * 10));\n }\n },\n\n mergeMap: {\n label: \"mergeMap\",\n inputs: [\n [\n { t: 0, c: \"A\" },\n { t: 42, c: \"B\" },\n { t: 55, c: \"C\" }\n ],\n [{ t: 0, c: 1 }, { t: 10, c: 2 }, { t: 20, c: 3 }, 20]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n mergeMap((x) => inputs[1].pipe(map((y) => \"\" + x.content + y.content)))\n );\n }\n },\n\n // It's like scan, but the Observables returned by the accumulator are merged into the outer Observable.\n mergeScan: {\n label: \"mergeScan\",\n inputs: [\n [\n { t: 5, c: 1 },\n { t: 15, c: 2 },\n { t: 25, c: 3 },\n { t: 35, c: 4 },\n { t: 65, c: 5 },\n 70\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(mergeScan((acc, x) => of(acc + x.content), 0));\n }\n },\n\n pairwise: {\n label: \"pairwise\",\n inputs: [\n [\n { t: 9, c: \"A\" },\n { t: 23, c: \"B\" },\n { t: 40, c: \"C\" },\n { t: 54, c: \"D\" },\n { t: 71, c: \"E\" },\n { t: 85, c: \"F\" }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(\n map((x) => x.content),\n pairwise(),\n map((x) => `[${x}]`)\n );\n }\n },\n\n // partition\n // const observableValues = of(1, 2, 3, 4, 5, 6);\n // const [evens$, odds$] = partition(observableValues, value => value % 2 === 0);\n\n repeat: {\n label: \"repeat(3)\",\n inputs: [[{ t: 0, c: \"A\" }, { t: 12, c: \"B\" }, 26]],\n apply: function (inputs) {\n return inputs[0].pipe(repeat(3));\n }\n },\n\n scan: {\n label: \"scan\",\n inputs: [\n [\n { t: 5, c: 1 },\n { t: 15, c: 2 },\n { t: 25, c: 3 },\n { t: 35, c: 4 },\n { t: 65, c: 5 }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(scan((acc, x) => acc + x.content, 0));\n }\n },\n\n startWith: {\n label: \"startWith(1)\",\n inputs: [\n [\n { t: 30, c: 2 },\n { t: 40, c: 3 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(startWith(1, scheduler));\n }\n },\n\n switchMap: {\n label: \"switchMap\",\n inputs: [\n [\n { t: 0, c: \"A\" },\n { t: 42, c: \"B\" },\n { t: 55, c: \"C\" }\n ],\n [{ t: 0, c: 1 }, { t: 10, c: 2 }, { t: 20, c: 3 }, 25]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n map((x) => x.content),\n switchMap(\n () => inputs[1].pipe(map((x) => x.content)),\n (x, y) => \"\" + x + y\n )\n );\n }\n },\n\n // It's like mergeScan, but only the most recent Observable returned by the accumulator is merged into the outer Observable.\n switchScan: {\n label: \"switchScan\",\n inputs: [\n [\n { t: 5, c: 1 },\n { t: 15, c: 2 },\n { t: 25, c: 3 },\n { t: 35, c: 4 },\n { t: 65, c: 5 },\n 70\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(switchScan((acc, x) => of(acc + x.content), 0));\n }\n },\n\n withLatestFrom: {\n label: 'withLatestFrom(input, (x, y) => \"\" + x + y)',\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 20, c: 2 },\n { t: 65, c: 3 },\n { t: 75, c: 4 },\n { t: 92, c: 5 }\n ],\n [\n { t: 10, c: \"A\" },\n { t: 25, c: \"B\" },\n { t: 50, c: \"C\" },\n { t: 57, c: \"D\" }\n ]\n ],\n apply: function (inputs) {\n return inputs[0].pipe(\n withLatestFrom(inputs[1], (x, y) => \"\" + x.content + y.content)\n );\n }\n }\n};\n","import { timer } from \"rxjs\";\nimport {\n map,\n /////////////////\n catchError,\n delay,\n delayWhen,\n dematerialize,\n finalize,\n materialize,\n observeOn,\n repeat,\n retry,\n subscribeOn,\n tap,\n timeInterval,\n timeout,\n timestamp,\n toArray\n} from \"rxjs/operators\";\n\nexport const utilityExamples = {\n delay: {\n label: \"delay(20)\",\n inputs: [\n [\n { t: 10, c: \"1\" },\n { t: 20, c: \"2\" },\n { t: 70, c: \"1\" }\n ]\n ],\n apply: (inputs, scheduler) =>\n inputs[0].pipe(\n map((x) => x.content),\n delay(20, scheduler)\n )\n },\n\n delayWhen: {\n label: \"delayWhen(x => timer(20 * x))\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 10, c: 2 },\n { t: 20, c: 1 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n delayWhen(({ content }) => timer(content * 20, 1000, scheduler))\n );\n }\n },\n\n finalize: {\n label: \"finalize\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 10, c: 2 },\n { t: 20, c: 3 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(finalize(() => console.log(\"finalize\")));\n }\n },\n\n tap: {\n label: \"tap\",\n inputs: [\n [\n { t: 0, c: 1 },\n { t: 10, c: 2 },\n { t: 20, c: 1 }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(tap((x) => x.content));\n }\n },\n\n timeInterval: {\n label: \"timeInterval\",\n inputs: [\n [\n { t: 10, c: \"A\" },\n { t: 20, c: \"B\" },\n { t: 60, c: \"C\" },\n { t: 90, c: \"D\" }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n timeInterval(scheduler),\n map(({ value, interval }) => parseInt(interval))\n );\n }\n },\n\n timestamp: {\n label: \"timestamp\",\n inputs: [\n [\n { t: 10, c: \"A\" },\n { t: 20, c: \"B\" },\n { t: 60, c: \"C\" },\n { t: 90, c: \"D\" }\n ]\n ],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n timestamp(scheduler),\n map(({ value, timestamp }) => parseInt(timestamp))\n );\n }\n },\n\n toArray: {\n label: \"toArray\",\n inputs: [[{ t: 10, c: \"A\" }, { t: 20, c: \"B\" }, { t: 60, c: \"C\" }, 70]],\n apply: function (inputs, scheduler) {\n return inputs[0].pipe(\n map((x) => x.content),\n toArray(),\n map((arr) => `[${arr}]`)\n );\n }\n }\n};\n","import { range, timer } from \"rxjs\";\nimport {\n map,\n delayWhen,\n combineLatestAll,\n concatAll,\n exhaustAll,\n mergeAll,\n switchAll\n} from \"rxjs/operators\";\nimport { Examples } from \"./index\";\n\nexport const flatternExamples = {\n combineLatestAll: {\n label: \"combineLatestAll\",\n inputs: [\n [{ t: 0, c: \"A\" }, { t: 10, c: \"B\" }, { t: 20, c: \"C\" }, 25],\n [{ t: 0, c: \"D\" }, { t: 10, c: \"E\" }, { t: 20, c: \"F\" }, 25]\n ],\n apply: function (inputs, scheduler) {\n const highOrder$ = range(0, inputs.length).pipe(\n delayWhen((i) => timer(i * 20, scheduler)),\n map((i) => inputs[i])\n );\n return highOrder$.pipe(\n combineLatestAll(),\n map(([x, y]) => `[${x.content},${y.content}]`)\n );\n }\n },\n\n concatAll: {\n label: \"concatAll\",\n inputs: [\n [{ t: 0, c: \"A\" }, { t: 10, c: \"B\" }, { t: 20, c: \"C\" }, 25],\n [{ t: 0, c: \"D\" }, { t: 10, c: \"E\" }, { t: 20, c: \"F\" }, 25],\n [{ t: 0, c: \"G\" }, { t: 10, c: \"H\" }, { t: 20, c: \"I\" }, 25]\n ],\n apply: function (inputs, scheduler) {\n const highOrder$ = range(0, inputs.length).pipe(\n delayWhen((i) => timer(i * 20, scheduler)),\n map((i) => inputs[i])\n );\n return highOrder$.pipe(concatAll());\n }\n },\n\n exhaustAll: {\n label: \"exhaustAll\",\n inputs: [\n [{ t: 0, c: \"A\" }, { t: 10, c: \"B\" }, { t: 20, c: \"C\" }, 25],\n [{ t: 0, c: \"D\" }, { t: 10, c: \"E\" }, { t: 20, c: \"F\" }, 25],\n [{ t: 0, c: \"G\" }, { t: 10, c: \"H\" }, { t: 20, c: \"I\" }, 25]\n ],\n apply: function (inputs, scheduler) {\n const highOrder$ = range(0, inputs.length).pipe(\n delayWhen((i) => timer(i * 20, scheduler)),\n map((i) => inputs[i])\n );\n return highOrder$.pipe(exhaustAll());\n }\n },\n\n mergeAll: {\n label: \"mergeAll\",\n inputs: [\n [{ t: 0, c: \"A\" }, { t: 5, c: \"B\" }, { t: 15, c: \"C\" }, 25],\n [{ t: 0, c: \"D\" }, { t: 8, c: \"E\" }, { t: 18, c: \"F\" }, 25],\n [{ t: 0, c: \"G\" }, { t: 10, c: \"H\" }, { t: 20, c: \"I\" }, 25]\n ],\n apply: function (inputs, scheduler) {\n const highOrder$ = range(0, inputs.length).pipe(\n delayWhen((i) => timer(i * 20, scheduler)),\n map((i) => inputs[i])\n );\n return highOrder$.pipe(mergeAll());\n }\n },\n\n switchAll: {\n label: \"switchAll\",\n inputs: [\n [{ t: 0, c: \"A\" }, { t: 10, c: \"B\" }, { t: 20, c: \"C\" }, 25],\n [{ t: 0, c: \"D\" }, { t: 10, c: \"E\" }, { t: 20, c: \"F\" }, 25],\n [{ t: 0, c: \"G\" }, { t: 10, c: \"H\" }, { t: 20, c: \"I\" }, 25]\n ],\n apply: function (inputs, scheduler) {\n const highOrder$ = range(0, inputs.length).pipe(\n delayWhen((i) => timer(i * 20, scheduler)),\n map((i) => inputs[i])\n );\n return highOrder$.pipe(switchAll());\n }\n }\n} as Examples;\n","import {\n map,\n /////////////////\n share\n} from \"rxjs/operators\";\n\nexport const multicastingExamples = {\n share: {\n label: \"share\",\n inputs: [\n [\n { t: 10, c: \"1\" },\n { t: 20, c: \"2\" },\n { t: 70, c: \"1\" }\n ]\n ],\n apply: (inputs, scheduler) =>\n inputs[0].pipe(\n map((x) => x.content),\n share()\n )\n }\n};\n","import { creationExamples } from \"./creation-examples\";\nimport { combinationExamples } from \"./combination-examples\";\nimport { conditionalExamples } from \"./conditional-examples\";\nimport { filteringExamples } from \"./filtering-examples\";\nimport { mathExamples } from \"./math-examples\";\nimport { transformationExamples } from \"./transformation-examples\";\nimport { utilityExamples } from \"./utility-examples\";\nimport { flatternExamples } from \"./flattern-examples\";\nimport { multicastingExamples } from \"./multicasting-examples\";\n\n// https://rxjs.dev/api/operators/merge\nexport const categories = {\n \"Creation Observables\": creationExamples,\n \"Combination Operators\": combinationExamples,\n \"Flattern Operators\": flatternExamples,\n \"Multicasting Operators\": multicastingExamples,\n \"Transformation Operators\": transformationExamples,\n \"Filtering Operators\": filteringExamples,\n \"Conditional Operators\": conditionalExamples,\n \"Utility Operators\": utilityExamples,\n \"Mathematical Operators\": mathExamples\n};\n","import { Observable, SchedulerLike } from \"rxjs\";\nimport { categories } from \"./categories\";\n\nexport type MarbleInput = {\n t: number; // time: 0 ~ 100\n c: number | string; // 显示字符\n};\n\nexport type MarbleInputArray = MarbleInput[];\n// export type MultiMarbleInputArray = MarbleInputArray[];\n\nexport type TimelineInput = (MarbleInput | number)[]; // last of array 如果是 number = EndMarkerTime\nexport type TimelineInputArray = TimelineInput[];\n\nexport type Props = { minTime: number; maxTime: number; isTall?: boolean };\n\nexport type Marble = {\n marbleID: number;\n time: number; // time: 0 ~ 100\n content: string | number; // 显示字符\n};\n\nexport type EndMarker = Pick<Marble, \"time\">;\nexport type ErrorMarker = Pick<Marble, \"time\">;\n\nexport type Timeline = {\n timelineID: number;\n marbles: Marble[];\n end: EndMarker;\n error?: ErrorMarker;\n interactive: boolean;\n};\n\nexport type Example = {\n label: string;\n inputs: TimelineInputArray;\n apply: (\n inputs: Observable<Marble>[],\n scheduler: SchedulerLike\n ) => Observable<any>;\n};\n\nexport type Examples = {\n [index: string]: Example;\n};\n\nexport const examples: Examples = Object.values<Examples>(categories).reduce(\n (acc, o) => Object.assign(acc, o),\n {}\n);\n\nexport { categories };\n","export const MAX_TIME = 100;\nexport const MARBLE_SIZE = 2.3;\nexport const STROKE_WIDTH = 0.3;\n\nexport const containerWidth = { width: \"1060px\" };\n\nexport const userSelectNone = {\n userSelect: \"none\"\n};\n\nexport const COLORS = {\n blue: \"#3EA1CB\",\n yellow: \"#FFCB46\",\n red: \"#FF6946\",\n green: \"#82D736\",\n white: \"#FFFFFF\",\n almostWhite: \"#ECECEC\",\n greyLight: \"#D4D4D4\",\n grey: \"#A7A7A7\",\n greyDark: \"#7C7C7C\",\n black: \"#323232\"\n};\nexport const blue = { color: COLORS.blue };\nexport const yellow = { color: COLORS.yellow };\nexport const red = { color: COLORS.red };\nexport const green = { color: COLORS.green };\nexport const white = { color: COLORS.white };\nexport const almostWhite = { color: COLORS.almostWhite };\nexport const greyLight = { color: COLORS.greyLight };\nexport const grey = { color: COLORS.grey };\nexport const greyDark = { color: COLORS.greyDark };\nexport const black = { color: COLORS.black };\nexport const bgWhite = { backgroundColor: COLORS.white };\n\nexport const DIMENS = {\n spaceTiny: \"5px\",\n spaceSmall: \"10px\",\n spaceMedium: \"22px\",\n spaceLarge: \"32px\",\n spaceHuge: \"42px\",\n\n animationDurationQuick: \"100ms\",\n animationDurationNormal: \"200ms\",\n animationDurationSlow: \"400ms\"\n};\n\nexport const FONTS = {\n base: \"'Source Sans Pro', sans-serif\",\n code: \"'Source Code Pro', monospace\",\n special: \"'Signika', Helvetica, serif\"\n};\nexport const fontBase = { fontFamily: FONTS.base };\nexport const fontCode = { fontFamily: FONTS.code };\nexport const fontSpecial = { fontFamily: FONTS.special };\n\nexport const elevation1 = {\n \"box-shadow\": \"0px 1px 2px 1px rgba(0,0,0,0.17)\"\n};\n\nexport const timelineStyle = {\n padding: `${DIMENS.spaceSmall} ${DIMENS.spaceMedium}`\n};\n\nexport const POSSIBLE_COLORS = [\n COLORS.blue,\n COLORS.green,\n COLORS.yellow,\n COLORS.red\n];\n\nexport const operatorsMenuItemStyle = Object.assign(\n {\n fontSize: \"1rem\",\n lineHeight: \"1.6rem\"\n },\n greyDark\n);\n\nexport const operatorsMenuStyle = {\n marginRight: DIMENS.spaceLarge,\n boxSizing: \"border-box\",\n overflowY: \"scroll\",\n height: \"calc(100vh - 150px)\"\n};\n\nexport const sandboxStyle = Object.assign(bgWhite, elevation1, {\n borderRadius: \"2px\"\n});\n\nexport function getElevationPseudoElementStyle(\n dy: string,\n blur: string,\n opacity: string\n) {\n return `\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n -webkit-box-shadow: 0 ${dy} ${blur} 0 rgba(0,0,0,${opacity});\n -moz-box-shadow: 0 ${dy} ${blur} 0 rgba(0,0,0,${opacity});\n box-shadow: 0 ${dy} ${blur} 0 rgba(0,0,0,${opacity});\n `;\n}\n","import {\n Observable,\n Subject,\n ReplaySubject,\n BehaviorSubject,\n of,\n VirtualTimeScheduler,\n timer,\n combineLatest\n} from \"rxjs\";\nimport {\n observeOn,\n map,\n reduce,\n mergeAll,\n distinctUntilChanged,\n switchMap,\n share,\n takeUntil,\n debounceTime,\n timestamp\n} from \"rxjs/operators\";\nimport { curry, last, assoc, clamp } from \"@zyzgroup/core-common\";\nimport { useHashChange$ } from \"@zyzgroup/core-web\";\nimport {\n examples,\n TimelineInputArray,\n TimelineInput,\n MarbleInputArray,\n Example,\n Props,\n Timeline,\n Marble,\n EndMarker\n} from \"./data\";\nimport { MAX_TIME } from \"./styles\";\n\n// operator name\nexport const store$: Observable<string> = useHashChange$().pipe(\n map((route) => {\n let r = \"merge\";\n if (route && route.split(\"/rx/\")[1]) {\n r = route.split(\"/rx/\")[1];\n }\n return r;\n })\n);\n\n// operator 示例\nexport const example$: Observable<Example> = store$.pipe(\n map((route) => examples[route]),\n share({\n connector: () => new ReplaySubject(1),\n resetOnError: false,\n resetOnComplete: false,\n resetOnRefCountZero: false\n })\n);\n\n// input timelines\nexport const inputTimelines$: Observable<Timeline[]> = example$.pipe(\n switchMap((example) => of(inputsToTimelines(example.inputs))),\n share({\n connector: () => new ReplaySubject(1),\n resetOnError: false,\n resetOnComplete: false,\n resetOnRefCountZero: false\n })\n);\n\n// 移动的 Marble Subject\nexport const changedMarbleSubject$ = new BehaviorSubject<{\n marbleID?: number;\n time?: number;\n}>({});\n\n// 移动的 Marble\nconst changedMarble$ = changedMarbleSubject$.pipe(\n debounceTime(100),\n distinctUntilChanged()\n);\n\n// 移动的 EndMarker Subject\nexport const changedEndMarkerSubject$ = new BehaviorSubject<{\n timelineID?: number;\n time?: number;\n}>({});\n\n// 移动的 EndMarker\nconst changedEndMarker$ = changedEndMarkerSubject$.pipe(\n debounceTime(100),\n distinctUntilChanged()\n);\n\n// EndMarker 的最终time\nexport const endMarkerMinTime$ = combineLatest([\n inputTimelines$,\n changedEndMarker$\n]).pipe(\n map(([inputTimelines, changedEndMarker]) => {\n let time = changedEndMarker.time ?? 0;\n for (const tl of inputTimelines) {\n time = Math.max(time, tl.end.time);\n }\n return time;\n })\n);\n\nexport const outputTimeline$: Observable<Timeline> = combineLatest([\n inputTimelines$,\n example$,\n changedMarble$,\n changedEndMarker$,\n endMarkerMinTime$\n]).pipe(\n debounceTime(100),\n map(\n ([\n inputTimelines,\n example,\n changedMarble,\n changedEndMarker,\n endMarkerMinTime\n ]) => {\n for (const tl of inputTimelines) {\n const marbleIndex = tl.marbles.findIndex(\n (m) => m.marbleID == changedMarble.marbleID\n );\n // 更改 移动的 marble 的 time\n if (marbleIndex >= 0 && changedMarble.time) {\n tl.marbles[marbleIndex].time = changedMarble.time;\n }\n // 更改 EndMarker 的 time\n if (\n tl.timelineID == changedEndMarker.timelineID &&\n changedEndMarker.time\n ) {\n tl.end.time = changedEndMarker.time;\n }\n }\n // 生成 scheduler\n const vtScheduler = new VirtualTimeScheduler(undefined, MAX_TIME);\n const inputTimelineMarbles$Array: Observable<Marble>[] =\n inputTimelines.map((tl) => toVTStream(vtScheduler, tl));\n const outputline$: Observable<any> = example\n .apply(inputTimelineMarbles$Array, vtScheduler)\n .pipe(\n // add 0.01 or else things at exactly MAX_TIME will cut off\n takeUntil(timer(MAX_TIME + 0.01, vtScheduler))\n );\n return formatOutputTimeline$(vtScheduler, outputline$, endMarkerMinTime);\n }\n ),\n mergeAll(),\n share({\n connector: () => new ReplaySubject(1),\n resetOnError: false,\n resetOnComplete: false,\n resetOnRefCountZero: false\n })\n);\n\nfunction formatOutputTimeline$(\n scheduler: VirtualTimeScheduler,\n stream: Observable<any>,\n endMarkerMinTime: number\n): Observable<Timeline> {\n const subject$ = new ReplaySubject<Marble[]>(1);\n const stop$ = new Subject<void>();\n let endTime: number;\n stream\n .pipe(\n observeOn(scheduler),\n timestamp(scheduler),\n map(({ value, timestamp }) => {\n const marble =\n typeof value !== \"object\"\n ? {\n marbleID: calculateNotificationContentHash(value),\n content: value\n }\n : value;\n return assoc(\"time\", (timestamp / MAX_TIME) * 100, marble);\n }),\n takeUntil(stop$),\n reduce((a, b) => a.concat(b), [])\n // map((items) =>\n // items.map(\n // (item, i) =>\n // Object.assign(item, {\n // // itemId: i\n // }) as Marble\n // )\n // )\n )\n .subscribe({\n next: (items) => {\n subject$.next(items);\n },\n error: undefined,\n complete: () => {\n endTime = scheduler.now();\n }\n });\n scheduler.flush();\n stop$.next();\n return subject$.pipe(\n map((marbles) => ({\n timelineID: 0,\n marbles,\n end: { time: clamp(endTime, endMarkerMinTime, 100) },\n interactive: false\n }))\n );\n}\n\nconst toVTStream = curry(function (scheduler, data: Timeline) {\n return new Observable<Marble>((observer) => {\n data.marbles.forEach((item) =>\n scheduler.schedule(() => observer.next(item), item.time)\n );\n }).pipe(takeUntil(timer(data.end.time + 1, scheduler)));\n});\n\nfunction inputsToTimelines(inputs: TimelineInputArray): Timeline[] {\n return inputs.map((input, index) => ({\n timelineID: index,\n marbles: inputToMarbles(getInput(input)),\n end: { time: getTime(input) },\n interactive: true\n }));\n}\n\nfunction getInput(input: TimelineInput): MarbleInputArray {\n const lastInput = last(input);\n return (\n typeof lastInput === \"number\" ? input.slice(0, -1) : input\n ) as MarbleInputArray;\n}\n\nfunction getTime(input: TimelineInput) {\n const lastInput = last(input);\n return typeof lastInput === \"number\" ? lastInput : 100;\n}\n\nfunction inputToMarbles(stream: MarbleInputArray): Marble[] {\n return stream.map(({ t: time, c: content }) => ({\n marbleID: calculateNotificationHash({ time, content }),\n time,\n content\n }));\n}\n\nfunction calculateNotificationContentHash(content: string | number | boolean) {\n const SMALL_PRIME_1 = 59;\n const SMALL_PRIME_2 = 97;\n const SOME_PRIME_NUMBER = 877;\n if (typeof content === \"string\") {\n return content\n .split(\"\")\n .map((x) => x.charCodeAt(0))\n .reduce((x, y) => x * SMALL_PRIME_1 + y * SMALL_PRIME_2);\n } else if (typeof content === \"number\") {\n return content * SOME_PRIME_NUMBER;\n } else {\n return content ? SOME_PRIME_NUMBER : SOME_PRIME_NUMBER * 3;\n }\n}\n\nfunction calculateNotificationHash({\n time,\n content\n}: {\n time: number;\n content: string | number | boolean;\n}) {\n const SMALL_PRIME = 7;\n const LARGE_PRIME = 1046527;\n const MAX = 100000;\n const contentHash = calculateNotificationContentHash(content);\n return ((time + contentHash + SMALL_PRIME) * LARGE_PRIME) % MAX;\n}\n\nexport function getPercentageFn(parentElement: HTMLElement) {\n const { width, left } = parentElement.getBoundingClientRect();\n const ratio = 100 / width || 0.15;\n const elementLeft = left + window.scrollX;\n return (x: number) => (x - elementLeft) * ratio;\n}\n\n// export function getTimeChange$(element: HTMLElement) {\n// const timeChange$: Observable<number> = mouseDown$(element).pipe(\n// map((e) => (e.currentTarget as HTMLElement)!.parentElement!),\n// map(getPercentageFn),\n// switchMap((getPercentage: (x: number) => number) =>\n// documentMouseMove$.pipe(\n// takeUntil(documentMouseUp$),\n// map((e) => e.pageX),\n// map(getPercentage),\n// distinctUntilChanged()\n// )\n// )\n// );\n// return timeChange$;\n// }\n\n// export function getTime$(\n// props$: Observable<Props>,\n// timeSource$: Observable<number>,\n// timeChange$: Observable<number>,\n// isDraggable$: Observable<boolean>\n// ): Observable<number> {\n// const restrictedTimeChange$: Observable<number> = pausable$<number>(\n// isDraggable$,\n// timeChange$\n// ).pipe(map((n) => (n >= 100 ? 100 : n <= 0 ? 0 : n)));\n// const minChange$: Observable<number> = props$.pipe(\n// map((p) => p.minTime),\n// distinctUntilChanged(),\n// withLatestFrom(timeSource$),\n// map(([propsMinTime, sourceTime]) => Math.max(propsMinTime, sourceTime))\n// );\n// const maxChange$: Observable<number> = props$.pipe(\n// map((p) => p.maxTime),\n// distinctUntilChanged(),\n// withLatestFrom(timeSource$),\n// map(([propsMaxTime, sourceTime]) => Math.min(propsMaxTime, sourceTime))\n// );\n// return merge(\n// // order matters\n// timeSource$,\n// restrictedTimeChange$,\n// minChange$,\n// maxChange$\n// ).pipe(\n// distinctUntilChanged(),\n// share({\n// connector: () => new ReplaySubject(1),\n// resetOnError: false,\n// resetOnComplete: false,\n// resetOnRefCountZero: false\n// })\n// );\n// }\n","<template>\n <svg\n style=\"overflow: visible\"\n @mouseenter=\"mouseenter\"\n @mouseleave=\"mouseleave\"\n @mousedown=\"mousedown\"\n >\n <g\n class=\"marble\"\n :transform=\"`translate(${time}, 5)`\"\n :style=\"{\n cursor: isHighlighted ? 'ew-resize' : 'default'\n }\"\n >\n <circle\n r=\"2.3\"\n :style=\"circleStyle\"\n ></circle>\n <text\n text-anchor=\"middle\"\n y=\"0.8\"\n :style=\"textStyle\"\n >\n {{ props.content }}\n </text>\n </g>\n\n <filter\n id=\"#dropshadow\"\n height=\"130%\"\n >\n <feGaussianBlur\n in=\"SourceAlpha\"\n stdDeviation=\"0.3\"\n ></feGaussianBlur>\n <feOffset\n dx=\"0\"\n dy=\"0.25\"\n result=\"offsetblur\"\n ></feOffset>\n <feFlood flood-color=\"rgba(0,0,0,0.4)\"></feFlood>\n <feComposite\n in2=\"offsetblur\"\n operator=\"in\"\n ></feComposite>\n <feMerge>\n <feMergeNode></feMergeNode>\n <feMergeNode in=\"SourceGraphic\"></feMergeNode>\n </feMerge>\n </filter>\n </svg>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, onUnmounted, onMounted } from \"vue\";\nimport { getPercentageFn, changedMarbleSubject$ } from \"./rxMarble\";\nimport { POSSIBLE_COLORS, STROKE_WIDTH, fontBase } from \"./styles\";\n\nconst props = defineProps<{\n marbleID: number;\n time: number;\n isInteractive: boolean;\n content: number | string;\n}>();\n\nconst time = ref<number>(props.time);\n\nwatch(\n () => props.time,\n (t) => {\n time.value = t;\n }\n);\n\nconst isHighlighted = ref<boolean>(false);\nconst isDraggable = ref<boolean>(false);\n\nconst mouseenter = () => {\n if (!props.isInteractive) return;\n isHighlighted.value = true;\n};\n\nconst mouseleave = () => {\n if (!props.isInteractive) return;\n isHighlighted.value = false;\n};\n\nlet parentElement: HTMLElement;\nconst mousedown = (e: MouseEvent) => {\n if (!props.isInteractive) return;\n\n isDraggable.value = true;\n parentElement = (e.currentTarget as HTMLElement).parentElement!;\n};\n\nfunction moveMarble(e: MouseEvent) {\n if (!props.isInteractive) return;\n if (isDraggable.value) {\n time.value = getPercentageFn(parentElement)(e.pageX);\n changedMarbleSubject$.next({ marbleID: props.marbleID, time: time.value });\n }\n}\n\nfunction mouseUp(e: MouseEvent) {\n if (!props.isInteractive) return;\n isDraggable.value = false;\n}\n\nconst circleStyle = ref<Record<string, any>>();\nwatch(\n isHighlighted,\n () => {\n circleStyle.value = Object.assign(\n {\n fill: POSSIBLE_COLORS[props.marbleID % POSSIBLE_COLORS.length],\n stroke: \"black\",\n strokeWidth: STROKE_WIDTH\n },\n isHighlighted.value ? { filter: \"url(#dropshadow)\" } : {}\n );\n console.log(circleStyle.value);\n },\n { immediate: true }\n);\n\nconst textStyle = Object.assign({ fontSize: \"2.5px\" }, fontBase);\n\nonMounted(() => {\n document.addEventListener(\"mousemove\", moveMarble);\n document.addEventListener(\"mouseup\", mouseUp);\n});\n\nonUnmounted(() => {\n document.removeEventListener(\"mousemove\", moveMarble);\n document.removeEventListener(\"mouseup\", mouseUp);\n});\n</script>\n","<template>\n <svg\n style=\"overflow: visible\"\n @mouseenter=\"mouseenter\"\n @mouseleave=\"mouseleave\"\n @mousedown=\"mousedown\"\n >\n <line\n class=\"end-marker\"\n :x1=\"time\"\n :x2=\"time\"\n :y1=\"5 - height\"\n :y2=\"5 + height\"\n :style=\"{\n stroke: 'black',\n strokeWidth: '0.3',\n cursor: isHighlighted ? 'ew-resize' : 'default'\n }\"\n ></line>\n </svg>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, onUnmounted, onMounted } from \"vue\";\nimport { getPercentageFn, changedEndMarkerSubject$ } from \"./rxMarble\";\n\nconst props = defineProps<{\n timelineID: number;\n time: number;\n isInteractive: boolean;\n}>();\n\nconst height = ref(1.8);\n\nconst time = ref<number>(props.time);\n\nwatch(\n () => props.time,\n (t) => {\n time.value = t;\n }\n);\n\nconst isHighlighted = ref<boolean>(false);\nconst isDraggable = ref<boolean>(false);\n\nconst mouseenter = () => {\n if (!props.isInteractive) return;\n isHighlighted.value = true;\n height.value = 3.2;\n};\n\nconst mouseleave = () => {\n if (!props.isInteractive) return;\n isHighlighted.value = false;\n height.value = 1.8;\n};\n\nlet parentElement: HTMLElement;\nconst mousedown = (e: MouseEvent) => {\n if (!props.isInteractive) return;\n isDraggable.value = true;\n parentElement = (e.currentTarget as HTMLElement).parentElement!;\n};\n\nfunction moveMarble(e: MouseEvent) {\n if (!props.isInteractive) return;\n if (isDraggable.value) {\n time.value = getPercentageFn(parentElement)(e.pageX);\n changedEndMarkerSubject$.next({\n timelineID: props.timelineID,\n time: time.value\n });\n }\n}\nfunction mouseUp(e: MouseEvent) {\n if (!props.isInteractive) return;\n isDraggable.value = false;\n}\n\nonMounted(() => {\n document.addEventListener(\"mousemove\", moveMarble);\n document.addEventListener(\"mouseup\", mouseUp);\n});\n\nonUnmounted(() => {\n document.removeEventListener(\"mousemove\", moveMarble);\n document.removeEventListener(\"mouseup\", mouseUp);\n});\n</script>\n","<template>\n <div :style=\"sandboxStyle\">\n <!-- MULTI INPUT -->\n <TimelineComponent\n v-for=\"(input, inputKey) in inputtls\"\n :key=\"input.timelineID\"\n >\n <EndMarkerComponent\n :timelineID=\"input.timelineID\"\n :time=\"input.end.time\"\n :isInteractive=\"true\"\n ></EndMarkerComponent>\n <MarbleComponent\n v-for=\"(marble, marbleKey) in input.marbles\"\n :key=\"marble.marbleID\"\n :marbleID=\"marble.marbleID\"\n :time=\"marble.time\"\n :isInteractive=\"true\"\n :content=\"marble.content\"\n ></MarbleComponent>\n </TimelineComponent>\n <!-- OPERATOR -->\n <div class=\"operatorBox\">\n <div :style=\"before\"></div>\n <span style=\"font-size: 1.5em; font-weight: 400\">{{ label }}</span>\n <div :style=\"after\"></div>\n </div>\n <!-- SINGLE OUTPUT -->\n <TimelineComponent>\n <EndMarkerComponent\n :timelineID=\"outputtl.timelineID\"\n :time=\"outputtl.end.time\"\n :isInteractive=\"false\"\n ></EndMarkerComponent>\n <MarbleComponent\n v-for=\"(marble, marbleKey) in outputtl.marbles\"\n :key=\"marble.marbleID\"\n :marbleID=\"marble.marbleID\"\n :time=\"marble.time\"\n :isInteractive=\"false\"\n :content=\"marble.content\"\n ></MarbleComponent>\n </TimelineComponent>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, reactive } from \"vue\";\nimport { map, tap } from \"rxjs/operators\";\nimport { Timeline } from \"./data\";\nimport { example$, inputTimelines$, outputTimeline$ } from \"./rxMarble\";\nimport { DIMENS, sandboxStyle, getElevationPseudoElementStyle } from \"./styles\";\nimport TimelineComponent from \"./Timeline.vue\";\nimport MarbleComponent from \"./Marble.vue\";\nimport EndMarkerComponent from \"./EndMarker.vue\";\n\nconst before = getElevationPseudoElementStyle(\"2px\", \"10px\", \"0.17\");\nconst after = getElevationPseudoElementStyle(\"2px\", \"5px\", \"0.26\");\n\nconst label = ref<string>(\"\");\nconst inputtls = reactive<Timeline[]>([]);\nlet outputtl = reactive<Timeline>({\n timelineID: 0,\n marbles: [],\n end: { time: 0 },\n interactive: false\n});\n\nexample$.pipe(tap((example) => (label.value = example.label))).subscribe();\n\ninputTimelines$\n .pipe(\n map((timelines) => {\n inputtls.length = 0;\n timelines.forEach((timeline) => {\n inputtls.push(timeline);\n });\n })\n )\n .subscribe();\n\noutputTimeline$\n .pipe(\n tap((timeline) => {\n Object.assign(outputtl, timeline);\n })\n )\n .subscribe();\n</script>\n\n<style>\n.operatorBox {\n border: 1px solid rgba(0, 0, 0, 0.06);\n padding: v-bind(\"DIMENS.spaceMedium\");\n text-align: center;\n position: relative;\n}\nsvg {\n display: inline-block;\n}\n</style>\n","<template>\n <div\n class=\"wrap\"\n :style=\"{ width: '1060px', margin: '0 auto' }\"\n >\n <div style=\"display: flex\">\n <div\n :ref=\"(el) => (nav = (el as HTMLAnchorElement))\"\n style=\"\n flex: 1;\n margin-right: 32px;\n box-sizing: border-box;\n overflow-y: scroll;\n height: 100vh;\n \"\n >\n <ul\n style=\"margin: 0; padding: 0; list-style-type: none\"\n v-for=\"(items, key) in categories\"\n >\n <li\n class=\"li\"\n :key=\"key\"\n >\n {{ key }}\n </li>\n <a\n v-for=\"(item, itemname) in items\"\n :key=\"itemname\"\n :href=\"`#${base}${itemname}`\"\n class=\"link\"\n :ref=\"(el) => (links.push(el as HTMLAnchorElement))\"\n :style=\"{\n position: 'relative',\n display: 'block',\n color: '#666666'\n }\"\n >\n {{ itemname }}\n </a>\n </ul>\n </div>\n <div style=\"flex: 0 0 820px; padding-top: 10px\"><Sandbox></Sandbox></div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted } from \"vue\";\nimport { take, tap } from \"rxjs/operators\";\nimport { getElementPositionInPage } from \"@zyzgroup/core-web\";\nimport Sandbox from \"../components/rxmarbles/Sandbox.vue\";\nimport { categories } from \"../components/rxmarbles/data\";\nimport { store$ } from \"../components/rxmarbles/rxMarble\";\n\nconst base = \"/rx/\";\n\nconst nav = ref<HTMLElement>();\nconst links = ref<HTMLAnchorElement[]>([]);\n\nonMounted(() => {\n store$\n .pipe(\n take(1),\n tap((route) => {\n const link = links.value.find(\n (link) => link.href.indexOf(`#${base}${route}`) >= 0\n );\n if (link && nav.value) {\n (nav.value as HTMLElement).scrollTo({\n top: getElementPositionInPage(link as HTMLElement).y\n });\n }\n })\n )\n .subscribe();\n});\n</script>\n\n<style scoped>\n.wrap {\n position: relative;\n background: #ececec;\n font-family: \"Source Sans Pro\", sans-serif;\n color: #323232;\n margin: 0;\n padding-left: 0.4em;\n}\n\na {\n color: #3ea1cb;\n text-decoration: underline;\n font-size: 1em;\n padding-left: 0.4em;\n}\n\na.link:hover {\n color: #000000 !important;\n}\n\na.link:hover::after {\n display: inline-block;\n position: absolute;\n right: 10px;\n content: \"❯\";\n}\n\n.li {\n text-transform: uppercase;\n font-size: 0.8em;\n color: #000000;\n font-weight: bold;\n margin-top: 20px;\n}\n</style>\n","import { ref } from \"vue\";\nimport {\n createRouter,\n createWebHistory,\n createWebHashHistory,\n type Router,\n type RouteRecordRaw,\n type RouteRecordNormalized,\n type RouteLocationNormalized,\n type NavigationGuardNext,\n type RouteLocationRaw,\n RouteLocationNormalizedLoaded,\n NavigationFailure\n} from \"vue-router\";\nexport {\n RouterLink,\n RouterView,\n useRouter,\n useRoute,\n type Router\n} from \"vue-router\";\nimport ViewDocument from \"../components/form/ViewDocument.vue\";\nimport Lot from \"../components/xg/Lot.vue\";\nimport Park from \"../components/xg/Park.vue\";\nimport Index from \"../pages/Index.vue\";\nimport ShapeShowCase from \"../pages/ShapeShowCase.vue\";\n// import WebComponentShowCase from \"../pages/WebComponentShowCase.vue\";\nimport RxMarbles from \"../pages/RxMarbles.vue\";\n\nconst router = createRouter({\n // history: createWebHistory(import.meta.env.BASE_URL),\n history: createWebHashHistory(import.meta.env.BASE_URL),\n routes: [\n // {\n // path: \"/\",\n // name: \"index\",\n // component: Index\n // },\n {\n path: \"/\",\n name: \"xg\",\n redirect: \"/lot\" // for <yz-xg /> WebComponent\n },\n {\n path: \"/shape\",\n name: \"shape\",\n component: ShapeShowCase\n },\n // {\n // path: \"/wc\",\n // name: \"wc\",\n // component: WebComponentShowCase\n // },\n {\n path: \"/lot\",\n name: \"lot\",\n component: Lot\n },\n {\n path: \"/park\",\n name: \"park\",\n component: Park\n },\n {\n path: \"/rx/:operator?\",\n name: \"rx\",\n component: RxMarbles\n },\n {\n path: \"/view-document/:title/:src\",\n name: \"view-document\",\n component: ViewDocument\n // props: true // error : https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22\n }\n ],\n // [\n // {\n // path: \"/\",\n // redirect: \"/showcase\"\n // },\n // {\n // path: \"/\",\n // path: \"/demo/:demoid\",\n // name: \"home\",\n // component: HomeView,\n // // router level code-splitting\n // // this generates a separate chunk (About.[hash].js) for this router\n // // which is lazy-loaded when the router is visited.\n // component: () => import(\"../views/AboutView.vue\"),\n // meta: {},\n // children: [\n // { path: \"\", name: \"default\", redirect: \"/demo/sub1\" },\n // {\n // path: \"sub1\",\n // name: \"sub1\",\n // component: () => import(\"@/src/views/sub1.vue\")\n // }\n // ]\n // },\n // {\n // path: \"/:pathMatch(.*)*\",\n // name: \"404\",\n // component: Page404\n // }\n // ]\n scrollBehavior: (_to, _from, savedPosition) => {\n // 这个功能只在支持 history.pushState 的浏览器中可用\n if (savedPosition) {\n return savedPosition;\n } else {\n return { left: 0, top: 0 };\n }\n }\n});\n\nexport default router;\n\n// <RouterLink to=\"/\">Home</RouterLink>\n// <RouterLink to=\"/about\">About</RouterLink>\n// <RouterView />\n\n// import { useRouter, useRoute } from \"../hooks\";\n// const router: Router = useRouter();\n// router.push(\"/wc\");\n// const route = useRoute();\n// route.query\n// route.params\n\n// next: 前进 prev: 返回\nexport const routeDirection = ref<\"next\" | \"prev\">(\"next\");\nconst routeList = [];\n\n// 路由导航守卫\nrouter.beforeEach(\n (\n to: RouteLocationNormalized,\n from: RouteLocationNormalized,\n next: NavigationGuardNext\n ) => {\n // console.log(to, from);\n // console.log(...routeList, \" : \", to.name);\n const length = routeList.length;\n const index = routeList.findIndex((r) => r == to.name);\n if (length > 1 && index >= 0 && index < length - 1) {\n routeDirection.value = \"prev\";\n routeList.splice(index + 1);\n } else {\n routeDirection.value = \"next\";\n routeList.push(to.name);\n }\n // console.log(routeDirection.value);\n next();\n }\n);\n\n// router.afterEach(\n// (\n// to: RouteLocationNormalized,\n// from: RouteLocationNormalizedLoaded,\n// failure?: NavigationFailure | void\n// ) => {}\n// );\n\n// export async function push(location: RouteLocationRaw) {\n// const router: Router = useRouter();\n// await router.push(location);\n// }\n\n// {\n// name: Name;\n// path: Path;\n// paramsRaw: ParamsRaw;\n// params: Params;\n// meta: Meta;\n// }\n// export async function to(this: any, path: string) {\n// await push({ path });\n// }\n\n// 动态注册路由\n// const remove = addRoute(\"demo\", {\n// path: \"sub2\",\n// name: \"sub2\",\n// component: () => import(\"@/src/views/sub2.vue\")\n// });\n// remove();\n// export function addRoute(route: RouteRecordRaw): () => void {\n// const router: Router = useRouter();\n// return router.addRoute(route);\n// }\n\n// export function removeRoute(name: string) {\n// const router: Router = useRouter();\n// router.removeRoute(name);\n// }\n\n// export function hasRoute(name: string): boolean {\n// const router: Router = useRouter();\n// return router.hasRoute(name);\n// }\n\n// export function getRoutes(): RouteRecordNormalized[] {\n// const router: Router = useRouter();\n// return router.getRoutes();\n// }\n\n// export function getCurrentRoute() {\n// const router: Router = useRouter();\n// return {\n// params: router.currentRoute.value.params,\n// query: router.currentRoute.value.query\n// };\n// }\n","import { computed } from \"vue\";\nimport {\n useStore,\n createNamespacedHelpers,\n mapState,\n mapGetters,\n mapMutations,\n mapActions\n} from \"vuex\";\n\n/// STATE TYPES\nexport type VuexState = VuexRootState & {\n demo: VuexDemoState;\n};\nexport interface VuexRootState {\n count: number;\n}\nexport interface VuexDemoState {\n name: string;\n}\n/// MUTATION TYPES\nexport const INCREMENT = \"increment\";\nexport const DECREMENT = \"decrement\";\n/// ACTION TYPES\nexport const INCREMENTACTION = \"incrementAction\";\n\nexport function useVuex() {\n const store = useStore<VuexState>();\n return {\n store\n // state: store.state\n\n // ...useVuexStates([\"count\"]),\n // ...useVuexStates(\"demo\", [\"name\"]),\n\n // ...useVuexGetters({ totaln: \"totaln\" }),\n // ...useVuexGetters(\"demo\", [\"nameFormat\"]),\n\n // ...useVuexMutations({\n // [INCREMENT]: INCREMENT,\n // [DECREMENT]: DECREMENT\n // }),\n // ...useVuexMutations(\"demo\", [\"changeName\"]),\n\n // ...useVuexActions({\n // [INCREMENTACTION]: INCREMENTACTION\n // }),\n // ...useVuexActions(\"demo\", [\"changeNameAction\"])\n\n // {{ state.count }}\n // {{ state.demo.name }}\n // {{ store.getters.totalCount }}\n // {{ store.getters.totaln(2) }}\n // {{ totaln(3) }}\n // {{ store.getters[\"demo/nameFormat\"] }}\n };\n}\n\n// ...mapState([\"count\"]);\n// ...mapState({ count: state => state.count });\nexport function useVuexStates(\n keyMaps: Record<string, string> | string[]\n): Record<string, any>;\nexport function useVuexStates(\n moduleName: string,\n keyMaps: Record<string, string> | string[]\n): Record<string, any>;\nexport function useVuexStates(\n moduleName: string | Record<string, string> | string[],\n keyMaps?: Record<string, string> | string[]\n): Record<string, any> {\n let mapFn = mapState;\n if (typeof moduleName == \"string\" && moduleName.length > 0) {\n mapFn = createNamespacedHelpers(moduleName).mapState;\n } else {\n keyMaps = moduleName as Record<string, string> | string[];\n }\n return useVuexMap(keyMaps!, mapFn);\n}\n\n// ...mapGetters([\"totaln\"]);\n// ...mapGetters({ totalnAnother: \"totaln\" });\nexport function useVuexGetters(\n keyMaps: Record<string, string> | string[]\n): Record<string, any>;\nexport function useVuexGetters(\n moduleName: string,\n keyMaps: Record<string, string> | string[]\n): Record<string, any>;\nexport function useVuexGetters(\n moduleName: string | Record<string, string> | string[],\n keyMaps?: Record<string, string> | string[]\n): Record<string, any> {\n let mapFn = mapGetters;\n if (typeof moduleName == \"string\" && moduleName.length > 0) {\n mapFn = createNamespacedHelpers(moduleName).mapGetters;\n } else {\n keyMaps = moduleName as Record<string, string> | string[];\n }\n return useVuexMap(keyMaps!, mapFn);\n}\n\n// ...mapMutations([INCREMENT]);\n// ...mapMutations({ inc: INCREMENT });\nexport function useVuexMutations(\n keyMaps: Record<string, string> | string[]\n): Record<string, any>;\nexport function useVuexMutations(\n moduleName: string,\n keyMaps: Record<string, string> | string[]\n): Record<string, any>;\nexport function useVuexMutations(\n moduleName: string | Record<string, string> | string[],\n keyMaps?: Record<string, string> | string[]\n): Record<string, any> {\n let mapFn = mapMutations;\n if (typeof moduleName == \"string\" && moduleName.length > 0) {\n mapFn = createNamespacedHelpers(moduleName).mapMutations;\n } else {\n keyMaps = moduleName as Record<string, string> | string[];\n }\n if (Array.isArray(keyMaps)) {\n return mapFn(keyMaps!);\n } else {\n return mapFn(keyMaps!);\n }\n}\n\n// ...mapActions([INCREMENTACTION]);\n// ...mapActions({ inca: INCREMENTACTION });\nexport function useVuexActions(\n keyMaps: Record<string, string> | string[]\n): Record<string, any>;\nexport function useVuexActions(\n moduleName: string,\n keyMaps: Record<string, string> | string[]\n): Record<string, any>;\nexport function useVuexActions(\n moduleName: string | Record<string, string> | string[],\n keyMaps?: Record<string, string> | string[]\n): Record<string, any> {\n let mapFn = mapActions;\n if (typeof moduleName == \"string\" && moduleName.length > 0) {\n mapFn = createNamespacedHelpers(moduleName).mapActions;\n } else {\n keyMaps = moduleName as Record<string, string> | string[];\n }\n if (Array.isArray(keyMaps)) {\n return mapFn(keyMaps!);\n } else {\n return mapFn(keyMaps!);\n }\n}\n\nfunction useVuexMap(\n keys: Record<string, string> | string[],\n mapFn: any\n): Record<string, any> {\n const store = useStore();\n const maps: Record<string, any> = {};\n const mappedKeyFns = mapFn(keys);\n Object.keys(mappedKeyFns).forEach((key) => {\n const fn = mappedKeyFns[key].bind({ $store: store });\n maps[key] = computed(fn);\n });\n return maps;\n}\n"],"names":["getInstance","getCurrentInstance","getVNode","component","props","createVNode","renderComponent","options","vNode","render","useVueEffect","effect","remove","onMounted","onUnmounted","__expose","__props","route","useRoute","setWindowTitle","src","matchIconName","stringToIcon","value","validate","allowSimpleName","provider","colonSeparated","name2","prefix","result","validateIconName","name","dashSeparated","icon","defaultIconDimensions","defaultIconTransformations","defaultIconProps","defaultExtendedIconProps","mergeIconTransformations","obj1","obj2","rotate","mergeIconData","parent","child","key","getIconsTree","data","names","icons","aliases","resolved","resolve","internalGetIconData","tree","currentProps","parse","parseIconSet","callback","item","optionalPropertyDefaults","checkOptionalProps","defaults","prop","quicklyValidateIconSet","obj","dataStorage","newStorage","getStorage","providerStorage","addIconSet","storage","addIconToStorage","simpleNames","allowSimpleNames","allow","getIconData","iconName","addIcon","addCollection","added","defaultIconSizeCustomisations","defaultIconCustomisations","unitsSplit","unitsTest","calculateSize","size","ratio","precision","oldParts","newParts","code","isNumber","num","splitSVGDefs","content","tag","defs","index","start","end","endEnd","mergeDefsAndContent","wrapSVGContent","body","split","isUnsetKeyword","iconToSVG","customisations","fullIcon","fullCustomisations","box","transformations","hFlip","vFlip","rotation","tempValue","customisationsWidth","customisationsHeight","boxWidth","boxHeight","width","height","attributes","setAttr","viewBox","regex","randomPrefix","counter","replaceIDs","ids","match","suffix","id","newID","escapedID","setAPIModule","getAPIModule","createAPIConfig","source","resources","configStorage","fallBackAPISources","fallBackAPI","addAPIProvider","customConfig","config","getAPIConfig","detectFetch","fetchModule","calculateMaxLength","maxHostLength","url","shouldAbort","status","prepare","results","maxLength","type","length","getPath","send","host","params","path","iconsList","urlParams","uri","defaultError","response","fetchAPIModule","sortIcons","a","b","lastIcon","localStorage","list","removeCallback","storages","items","row","updateCallbacks","hasPending","oldLength","idCounter","storeCallback","pendingSources","abort","listToIcons","defaultConfig","sendQuery","payload","query","done","resourcesCount","startIndex","nextIndex","startTime","queriesSent","lastError","timer","queue","doneCallbacks","resetTimer","subscribe","overwrite","getQueryStatus","failQuery","clearQueue","moduleResponse","isError","queued","execNext","resource","status2","initRedundancy","cfg","queries","cleanup","queryCallback","doneCallback","query2","error","find","emptyCallback$1","redundancyCache","getRedundancyCache","redundancy","cachedReundancy","sendAPIQuery","target","api","cached","moduleKey","emptyCallback","loadedNewIcons","checkIconNamesForAPI","valid","invalid","parseLoaderResponse","checkMissing","pending","err","parsePossiblyAsyncResponse","loadNewIcons","icons2","customIconLoader","iconSet","loadIcons","cleanedIcons","sortedIcons","callCallback","newIcons","sources","lastProvider","lastPrefix","providerNewIcons","pendingQueue","mergeCustomisations","valueType","separator","flipFromString","custom","flip","str","rotateFromString","defaultValue","units","value2","iconToHTML","renderAttribsHTML","attr","encodeSVGforURL","svg","svgToData","svgToURL","defaultExtendedIconCustomisations","svgDefaults","commonProps","monotoneProps","coloredProps","propsToAdd","propsToAddTo","customisationAliases","fixSize","componentProps","mode","style","propsStyle","customStyle","alias","renderAttribs","localCounter","h","useMask","html","_window","preload","providers","emptyIcon","Icon","defineComponent","onload","customise","customised","classes","newProps","darkenOver","darkenClick","emits","__emit","el","ref","xgBlue","getCSSVar","fontColor","borderColor","bgColor","baseFontColor","baseBorderColor","baseBgColor","baseBgColorStart","baseBgColorEnd","isBgColorGradient","setStylePattern","stylePattern","__color","watch","opacity","cursor","isMouseOver","mouseover","mouseleave","asyncClickPending","throttleClick","throttle","computed","initDocumentOverflow","atomReadStyle","initParentOverflow","atomWriteStyle","effectStatus","next","r","controller","getControllerResolve","isEmitReady","watchEffect","useElementEventBus","text","getInnerText","useClipboard","tl","Timeline","popStyle","reactive","visible","popType","isShrink","popValue","popUnit","Easing","onComplete","resize","action","open","close","clickOverlay","e","className","hasClass","opposite","ready","popRef","title","showClose","cancelText","confirmText","cancelButtonStylePattern","confirmButtonStylePattern","showTopIcon","colorStart","colorEnd","isBtnsVertical","s","onCancel","onConfirm","popOpen","popClose","confirm","teleport","dialog","div","vnode","Dialog","context","inject","useRouter","gotoPay","safeAreaBottom","subcription","useSafeArea$","PLATE_TYPES","getPlateType","plateType","dotSize","getEmSize","parentStyle","animationName","duration","timingFunction","delay","repeat","direction","changeEffect","newAnimationName","animationRef","resetAnimation","trigger","triggerReverse","clear","pageRef","update","cssAnimationRef","cssAnimationName","runDependOnEffectType","cssAnimationTask","jsAnimationTask","isClose","triggerTimeline","triggerFrom","triggerTo","attrs","cssanimationstart","cssanimationend","clearStyle","newEffect","currentPageIndex","nextPageIndex","onRenderComplete","onRouteCompletes","pages","pageActions","pageElements","isValidPageIndex","pageIndex","isForward","_getPageEffect","currentPageEffect","nextPageEffect","getPageEffect","routeEffect","_getPageDuration","currentDuration","nextDuration","getPageDuration","_getPageEaseFunction","getPageEaseFunction","_getPageDelay","getPageDelay","currentZIndex","nextZIndex","sameOnTop","nextOnTop","currentOnTop","setRunningStyle","emitsEnd","routesRef","renderPages","appendCount","isReset","renderCount","page","pageEffect","Page","reset","resetPages","p","generateUUID","goto","push","pop","forward","back","routeTaskQueue","AsyncTaskQueue","cb","onRouteComplete","popX","popY","popWidth","popHeight","finalX","finalY","finalWidth","finalHeight","isCORS","sourceWidth","sourceHeight","useLoadImage","info","setImageWidthHeight","wrapWidth","wrapHeight","outter","showWidth","showHeight","wrapImageRect","computeImageDisplayRect","viewportWidth","viewportHeight","getViewportSize","viewportImageRect","inner","isOpenPop","imageRef","clickSourceImage","showSize","currentIndex","routeChangeEnd","_","toPageIndex","Image","checkClose","billsn","fee","popTelEl","call","imageViewEl","_sfc_main","object","isIE","_openBlock","_createElementBlock","_hoisted_1","Stats","container","event","showPanel","addPanel","panel","i","beginTime","prevTime","frames","fpsPanel","msPanel","memPanel","time","memory","fg","bg","min","max","round","PR","WIDTH","HEIGHT","TEXT_X","TEXT_Y","GRAPH_X","GRAPH_Y","GRAPH_WIDTH","GRAPH_HEIGHT","canvas","maxValue","containerRef","stats","requestAnimationFrameCycle","contentMaxHeight","nextTick","toggleOpen","barPercent","toValue","bar","subscription","useScroll$","percent","getVerticalScrollPercentInPage","isDrawType","drawContext","isEmitInit","isEmitFrameInit","resizeSubscription","tapSubscription","cancelAnimationFrame","useResize$","rect","useDraw","tap$","sizeChange","_size","SVGShapes","svgFrameInit","d","svgFrame","CanvasShapes","canvasFrameInit","canvasFrame","currentType","boxCases","marker","BallShape","markerClone","line","LineShape","Color","lineClone","lineDegree","lineDegreeClone","p2","TreeShapeCombo","treeClone","treeRotate","treeRotateClone","RectShape","rectClone","heart","HeartShape","heartClone","heartVariant","HeartVariantShape","heartVariantClone","star","StarShape","starClone","fox","FoxShape","foxClone","rabbit","RabbitShape","rabbitClone","cross","CrossShape","crossClone","ship","ShipShapeCombo","shipClone","segment","SegmentShapeCombo","segmentRotate","segmentClone","segmentRotateClone","slider","SliderShapeCombo","v","sliderClone","ball1","ball1Clone","ball2","ball2Clone","isSetCommonFrameInit","frameInit","centerY","arrow","ArrowShape","arrowClone","arrowLine","arrowLineClone","centerX","dragBall","dragBallClone","springMassBalls","springMassLines","color0","numParticles","particle","springMassBallsClone","springMassLinesClone","y","frame","animateSpringMassShapes","fromX","fromY","toX","toY","alpha","l","numBalls","balls","radius","ball","ballsClone","x","gravitateShapes","isFunction","hasLift","operate","init","liftedSource","extendStatics","__extends","__","__awaiter","thisArg","_arguments","P","generator","adopt","reject","fulfilled","step","rejected","__generator","t","f","g","verb","n","op","__values","o","m","__read","ar","__spreadArray","to","from","pack","__await","__asyncGenerator","q","awaitReturn","resume","settle","fulfill","__asyncValues","isArrayLike","isPromise","createErrorClass","createImpl","_super","instance","ctorFunc","UnsubscriptionError","errors","arrRemove","arr","Subscription","initialTeardown","e_1","_a","e_2","_b","_parentage","_parentage_1","_parentage_1_1","parent_1","e_1_1","initialFinalizer","_finalizers","_finalizers_1","_finalizers_1_1","finalizer","execFinalizer","e_2_1","teardown","empty","EMPTY_SUBSCRIPTION","isSubscription","timeoutProvider","handler","timeout","args","_i","delegate","handle","reportUnhandledError","noop","errorContext","Subscriber","destination","_this","EMPTY_OBSERVER","complete","SafeSubscriber","_bind","bind","fn","ConsumerObserver","partialObserver","handleUnhandledError","observerOrNext","context_1","defaultErrorHandler","observable","identity","pipe","fns","pipeFromArray","input","prev","Observable","operator","subscriber","isSubscriber","sink","promiseCtor","getPromiseCtor","Symbol_observable","operations","isObserver","isInteropObservable","isAsyncIterable","createInvalidObservableTypeError","getSymbolIterator","iterator","isIterable","Symbol_iterator","readableStreamLikeToAsyncGenerator","readableStream","reader","isReadableStreamLike","innerFrom","fromInteropObservable","fromArrayLike","fromPromise","fromAsyncIterable","fromIterable","fromReadableStreamLike","obs","array","promise","iterable","iterable_1","iterable_1_1","asyncIterable","process","asyncIterable_1","asyncIterable_1_1","createOperatorSubscriber","onNext","onError","onFinalize","OperatorSubscriber","shouldUnsubscribe","closed_1","audit","durationSelector","hasValue","lastValue","durationSubscriber","isComplete","endDuration","cleanupDuration","Action","scheduler","work","state","intervalProvider","AsyncAction","_id","_scheduler","_delay","errored","errorValue","actions","dateTimestampProvider","Scheduler","schedulerActionCtor","now","AsyncScheduler","SchedulerAction","asyncScheduler","async","isScheduler","isValidDate","dueTime","intervalOrScheduler","intervalDuration","due","auditTime","buffer","closingNotifier","currentBuffer","bufferCount","bufferSize","startBufferEvery","buffers","count","toEmit","buffers_1","buffers_1_1","toEmit_1","toEmit_1_1","e_3","buffers_2","buffers_2_1","e_3_1","last","popResultSelector","popScheduler","popNumber","executeSchedule","parentSubscription","scheduleSubscription","bufferTime","bufferTimeSpan","otherArgs","bufferCreationInterval","maxBufferSize","bufferRecords","restartOnEmit","emit","record","subs","startBuffer","record_1","bufferTimeSubscriber","recordsCopy","recordsCopy_1","recordsCopy_1_1","bufferToggle","openings","closingSelector","openValue","closingSubscription","emitBuffer","bufferWhen","closingSubscriber","openBuffer","isArray","getPrototypeOf","objectProto","getKeys","argsArgArrayOrObject","first_1","isPOJO","keys","observeOn","subscribeOn","scheduleObservable","schedulePromise","scheduleArray","scheduleIterable","scheduleAsyncIterable","scheduleReadableStreamLike","scheduled","map","project","callOrApply","mapOneOrManyArgs","createObject","values","combineLatest","resultSelector","observables","combineLatestInit","valueTransform","maybeSchedule","active","remainingFirstValues","_loop_1","hasFirstValue","execute","mergeInternals","concurrent","onBeforeNext","expand","innerSubScheduler","additionalFinalizer","checkComplete","outerNext","doInnerSub","innerComplete","innerValue","bufferedValue","mergeMap","ii","scanInternals","accumulator","seed","hasSeed","emitOnNext","emitBeforeComplete","hasState","reduce","arrReducer","toArray","joinAllInternals","joinFn","combineLatestAll","argsOrArgArray","mergeAll","concatAll","concatMap","ObjectUnsubscribedError","Subject","subject","AnonymousSubject","_c","observer","observers","hasError","isStopped","thrownError","predicate","total","debounce","debounceTime","activeTask","lastTime","emitWhenIdle","targetTime","defaultIfEmpty","concat","EMPTY","take","seen","ignoreElements","mapTo","delayWhen","delayDurationSelector","subscriptionDelay","of","distinct","keySelector","flushes","distinctKeys","distinctUntilChanged","comparator","defaultCompare","previousKey","first","currentKey","ArgumentOutOfRangeError","filter","EmptyError","throwIfEmpty","errorFactory","defaultErrorFactory","elementAt","hasDefaultValue","every","exhaustMap","innerSub","outerValue","exhaustAll","finalize","createFind","findIndex","groupBy","elementOrOptions","connector","element","groups","notify","handleError","consumer","activeGroups","teardownAttempted","groupBySourceSubscriber","key_1","group_1","grouped","createGroupedObservable","durationSubscriber_1","groupSubject","groupSubscriber","isEmpty","takeLast","buffer_1","buffer_1_1","comparer","mergeScan","pairwise","hasPrev","BehaviorSubject","_value","ReplaySubject","_bufferSize","_windowTime","_timestampProvider","_buffer","_infiniteTimeWindow","copy","adjustedBufferSize","race","raceInit","subscriptions","countOrConfig","soFar","sourceSub","resubscribe","notifier","notifierSubscriber_1","subscribeToSource","syncUnsub","sample","interval","period","sampleTime","scan","sequenceEqual","compareTo","aState","createState","bState","isEqual","createSubscriber","selfState","otherState","sequenceEqualSubscriber","share","resetOnError","resetOnComplete","_d","resetOnRefCountZero","wrapperSource","connection","resetConnection","refCount","hasCompleted","hasErrored","cancelReset","resetAndUnsubscribe","conn","dest","handleReset","on","onSubscriber","SequenceError","message","NotFoundError","single","singleValue","seenValue","skip","skipLast","skipCount","ring","valueIndex","oldValue","skipUntil","taking","skipSubscriber","skipWhile","startWith","switchMap","innerSubscriber","innerIndex","outerIndex","switchAll","switchScan","takeUntil","takeWhile","inclusive","tap","tapObserver","isUnsub","leading","trailing","sendValue","throttled","endThrottling","cleanupThrottling","startThrottle","throttleTime","duration$","timeInterval","TimeInterval","timestamp","timestampProvider","withLatestFrom","inputs","len","otherValues","zip","completed","sourceIndex","VirtualTimeScheduler","maxFrames","VirtualAction","defer","observableFactory","forkJoin","remainingCompletions","remainingEmissions","generate","initialStateOrOptions","condition","iterate","resultSelectorOrScheduler","initialState","gen","iif","trueResult","falseResult","merge","range","creationExamples","ev","combinationExamples","conditionalExamples","filteringExamples","mathExamples","transformationExamples","group$","acc","cur","utilityExamples","flatternExamples","multicastingExamples","categories","examples","MAX_TIME","STROKE_WIDTH","COLORS","greyDark","bgWhite","DIMENS","FONTS","fontBase","elevation1","timelineStyle","POSSIBLE_COLORS","sandboxStyle","getElevationPseudoElementStyle","dy","blur","store$","useHashChange$","example$","inputTimelines$","example","inputsToTimelines","changedMarbleSubject$","changedMarble$","changedEndMarkerSubject$","changedEndMarker$","endMarkerMinTime$","inputTimelines","changedEndMarker","outputTimeline$","changedMarble","endMarkerMinTime","marbleIndex","vtScheduler","inputTimelineMarbles$Array","toVTStream","outputline$","formatOutputTimeline$","stream","subject$","stop$","endTime","marble","calculateNotificationContentHash","assoc","marbles","clamp","curry","inputToMarbles","getInput","getTime","lastInput","calculateNotificationHash","contentHash","getPercentageFn","parentElement","left","elementLeft","isHighlighted","isDraggable","mouseenter","mousedown","moveMarble","mouseUp","circleStyle","textStyle","before","after","label","inputtls","outputtl","timelines","timeline","base","nav","links","link","getElementPositionInPage","router","createRouter","createWebHashHistory","ShapeShowCase","Lot","Park","RxMarbles","ViewDocument","_to","_from","savedPosition","routeDirection","routeList","INCREMENT","DECREMENT","INCREMENTACTION","useVuex","useStore","useVuexStates","moduleName","keyMaps","mapFn","mapState","createNamespacedHelpers","useVuexMap","useVuexGetters","mapGetters","useVuexMutations","mapMutations","useVuexActions","mapActions","store","maps","mappedKeyFns"],"mappings":"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","x_google_ignoreList":[4,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178]}
|