@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.
@@ -1 +1 @@
1
- {"version":3,"file":"zyzgroup_core_vue.umd.cjs","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/categories.js","../src/components/rxmarbles/data/creation-examples.js","../src/components/rxmarbles/data/combination-examples.js","../src/components/rxmarbles/data/flattern-examples.ts","../src/components/rxmarbles/data/multicasting-examples.js","../src/components/rxmarbles/data/transformation-examples.js","../src/components/rxmarbles/data/filtering-examples.js","../src/components/rxmarbles/data/conditional-examples.js","../src/components/rxmarbles/data/utility-examples.js","../src/components/rxmarbles/data/math-examples.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 { 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 {\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 { 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 { 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 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 { 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 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 { 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 { 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","fetchModule","calculateMaxLength","maxHostLength","url","shouldAbort","status","prepare","results","maxLength","type","length","getPath","fetchAPIModule","host","params","path","iconsList","urlParams","uri","defaultError","response","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","send","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","click","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","categories","ev","group$","acc","cur","examples","MAX_TIME","STROKE_WIDTH","COLORS","greyDark","bgWhite","DIMENS","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.umd.cjs","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/categories.js","../src/components/rxmarbles/data/creation-examples.js","../src/components/rxmarbles/data/combination-examples.js","../src/components/rxmarbles/data/flattern-examples.ts","../src/components/rxmarbles/data/multicasting-examples.js","../src/components/rxmarbles/data/transformation-examples.js","../src/components/rxmarbles/data/filtering-examples.js","../src/components/rxmarbles/data/conditional-examples.js","../src/components/rxmarbles/data/utility-examples.js","../src/components/rxmarbles/data/math-examples.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 { 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 {\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 { 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 { 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 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 { 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 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 { 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 { 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","fetchModule","calculateMaxLength","maxHostLength","url","shouldAbort","status","prepare","results","maxLength","type","length","getPath","fetchAPIModule","host","params","path","iconsList","urlParams","uri","defaultError","response","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","send","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","click","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","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","categories","ev","group$","acc","cur","examples","MAX_TIME","STROKE_WIDTH","COLORS","greyDark","bgWhite","DIMENS","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]}